hv_netvsc: Rearrange the hv_negtvsc_packet to be space efficient
authorKY Srinivasan <kys@microsoft.com>
Wed, 2 Dec 2015 00:43:04 +0000 (16:43 -0800)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Dec 2015 04:43:23 +0000 (23:43 -0500)
Rearrange the elements of struct hv_negtvsc_packet for optimal layout -
eliminate unnecessary padding.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/hyperv_net.h

index 5f0a21f..3f66a23 100644 (file)
@@ -128,32 +128,34 @@ struct ndis_tcp_ip_checksum_info;
 struct hv_netvsc_packet {
        /* Bookkeeping stuff */
        u8 status;
-
        u8 is_data_pkt;
        u8 xmit_more; /* from skb */
        u8 cp_partial; /* partial copy into send buffer */
 
-       u16 vlan_tci;
+       u8 rmsg_size; /* RNDIS header and PPI size */
+       u8 rmsg_pgcnt; /* page count of RNDIS header and PPI */
+       u8 page_buf_cnt;
+       u8 pad0;
 
+       u16 vlan_tci;
        u16 q_idx;
+       u32 send_buf_index;
+
+       u32 total_data_buflen;
+       u32 pad1;
+
        struct vmbus_channel *channel;
 
        u64 send_completion_tid;
        void *send_completion_ctx;
        void (*send_completion)(void *context);
 
-       u32 send_buf_index;
 
        /* This points to the memory after page_buf */
        struct rndis_message *rndis_msg;
 
-       u8 rmsg_size; /* RNDIS header and PPI size */
-       u8 rmsg_pgcnt; /* page count of RNDIS header and PPI */
-
-       u32 total_data_buflen;
        /* Points to the send/receive buffer where the ethernet frame is */
        void *data;
-       u8 page_buf_cnt;
        struct hv_page_buffer *page_buf;
 };