Fragmentation code cacheline adjusting of struct inet_frag_queue.
Take advantage of the size of struct timer_list, and move all but
spinlock_t lock, below the timer struct.  On 64-bit 'lru_list',
'list' and 'refcnt', fits exactly into the next cacheline, and a
new cacheline starts at 'fragments'.
The netns_frags *net pointer is moved to the end of the struct,
because its used in a compare, with "next/close-by" elements of
which this struct is embedded into.
Signed-off-by: Jesper Dangaard Brouer <brouer@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
 };
 
 struct inet_frag_queue {
-       struct hlist_node       list;
-       struct netns_frags      *net;
-       struct list_head        lru_list;   /* lru list member */
        spinlock_t              lock;
-       atomic_t                refcnt;
        struct timer_list       timer;      /* when will this queue expire? */
+       struct list_head        lru_list;   /* lru list member */
+       struct hlist_node       list;
+       atomic_t                refcnt;
        struct sk_buff          *fragments; /* list of received fragments */
        struct sk_buff          *fragments_tail;
        ktime_t                 stamp;
 #define INET_FRAG_LAST_IN      1
 
        u16                     max_size;
+
+       struct netns_frags      *net;
 };
 
 #define INETFRAGS_HASHSZ               64