From 49a198898e889038c6601288cd2b0e037edada24 Mon Sep 17 00:00:00 2001 From: Vasu Dev Date: Tue, 27 Sep 2011 21:38:02 -0700 Subject: [PATCH] [SCSI] libfc: cache align struct fc_exch fields cache aligned xid and ex_lock beside removing holes. Signed-off-by: Vasu Dev Tested-by: Ross Brattain Signed-off-by: Yi Zou Signed-off-by: James Bottomley --- include/scsi/libfc.h | 29 +++++++++++++---------------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h index 05e2583d8fa6..5d1a758e0595 100644 --- a/include/scsi/libfc.h +++ b/include/scsi/libfc.h @@ -406,35 +406,32 @@ struct fc_seq { * sequence allocation */ struct fc_exch { - struct fc_exch_mgr *em; - struct fc_exch_pool *pool; - u32 state; - u16 xid; - struct list_head ex_list; spinlock_t ex_lock; atomic_t ex_refcnt; - struct delayed_work timeout_work; + enum fc_class class; + struct fc_exch_mgr *em; + struct fc_exch_pool *pool; + struct list_head ex_list; struct fc_lport *lp; + u32 esb_stat; + u8 state; + u8 fh_type; + u8 seq_id; + u8 encaps; + u16 xid; u16 oxid; u16 rxid; u32 oid; u32 sid; u32 did; - u32 esb_stat; u32 r_a_tov; - u8 seq_id; - u8 encaps; u32 f_ctl; - u8 fh_type; - enum fc_class class; - struct fc_seq seq; - + struct fc_seq seq; void (*resp)(struct fc_seq *, struct fc_frame *, void *); void *arg; - void (*destructor)(struct fc_seq *, void *); - -}; + struct delayed_work timeout_work; +} ____cacheline_aligned_in_smp; #define fc_seq_exch(sp) container_of(sp, struct fc_exch, seq)