Merge git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi-misc-2.6
[linux-2.6.git] / drivers / scsi / libfc / fc_exch.c
index d261e98..7c055fd 100644 (file)
@@ -65,16 +65,15 @@ static struct workqueue_struct *fc_exch_workqueue;
  * assigned range of exchanges to per cpu pool.
  */
 struct fc_exch_pool {
+       spinlock_t       lock;
+       struct list_head ex_list;
        u16              next_index;
        u16              total_exches;
 
        /* two cache of free slot in exch array */
        u16              left;
        u16              right;
-
-       spinlock_t       lock;
-       struct list_head ex_list;
-};
+} ____cacheline_aligned_in_smp;
 
 /**
  * struct fc_exch_mgr - The Exchange Manager (EM).
@@ -91,13 +90,13 @@ struct fc_exch_pool {
  * It manages the allocation of exchange IDs.
  */
 struct fc_exch_mgr {
+       struct fc_exch_pool *pool;
+       mempool_t       *ep_pool;
        enum fc_class   class;
        struct kref     kref;
        u16             min_xid;
        u16             max_xid;
-       mempool_t       *ep_pool;
        u16             pool_max_index;
-       struct fc_exch_pool *pool;
 
        /*
         * currently exchange mgr stats are updated but not used.