[SCSI] libfc: cache align struct fc_exch fields
Vasu Dev [Wed, 28 Sep 2011 04:38:02 +0000 (21:38 -0700)]
cache aligned xid and ex_lock beside
removing holes.

Signed-off-by: Vasu Dev <vasu.dev@intel.com>
Tested-by: Ross Brattain <ross.b.brattain@intel.com>
Signed-off-by: Yi Zou <yi.zou@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>

include/scsi/libfc.h

index 05e2583..5d1a758 100644 (file)
@@ -406,35 +406,32 @@ struct fc_seq {
  *     sequence allocation
  */
 struct fc_exch {
+       spinlock_t          ex_lock;
+       atomic_t            ex_refcnt;
+       enum fc_class       class;
        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;
        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)