summaryrefslogtreecommitdiffstats
path: root/drivers/net/hyperv
diff options
context:
space:
mode:
authorKY Srinivasan <kys@microsoft.com>2015-12-01 16:43:04 -0800
committerDavid S. Miller <davem@davemloft.net>2015-12-02 23:43:23 -0500
commit934d202255ecd03d1f48b1031a2e03cb647e73d9 (patch)
tree82dd97b90a42195f8016a577787246ef28a16523 /drivers/net/hyperv
parent22e9dd249bd4bcf338c282d90df08ccf5dbfbee2 (diff)
downloadop-kernel-dev-934d202255ecd03d1f48b1031a2e03cb647e73d9.zip
op-kernel-dev-934d202255ecd03d1f48b1031a2e03cb647e73d9.tar.gz
hv_netvsc: Rearrange the hv_negtvsc_packet to be space efficient
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>
Diffstat (limited to 'drivers/net/hyperv')
-rw-r--r--drivers/net/hyperv/hyperv_net.h18
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
index 5f0a21f..3f66a23 100644
--- a/drivers/net/hyperv/hyperv_net.h
+++ b/drivers/net/hyperv/hyperv_net.h
@@ -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;
};
OpenPOWER on IntegriCloud