hv_netvsc: replace divide with mask when computing padding

Packet alignment is always a power of 2 therefore modulus can
be replaced with a faster and operation

Signed-off-by: Stephen Hemminger <sthemmin@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Stephen Hemminger 2017-12-01 11:01:46 -08:00 committed by David S. Miller
parent 200a569990
commit b85e06f7bb
1 changed files with 2 additions and 1 deletions

View File

@ -712,11 +712,12 @@ static u32 netvsc_copy_to_send_buf(struct netvsc_device *net_device,
int i; int i;
u32 msg_size = 0; u32 msg_size = 0;
u32 padding = 0; u32 padding = 0;
u32 remain = packet->total_data_buflen % net_device->pkt_align;
u32 page_count = packet->cp_partial ? packet->rmsg_pgcnt : u32 page_count = packet->cp_partial ? packet->rmsg_pgcnt :
packet->page_buf_cnt; packet->page_buf_cnt;
u32 remain;
/* Add padding */ /* Add padding */
remain = packet->total_data_buflen & (net_device->pkt_align - 1);
if (skb->xmit_more && remain && !packet->cp_partial) { if (skb->xmit_more && remain && !packet->cp_partial) {
padding = net_device->pkt_align - remain; padding = net_device->pkt_align - remain;
rndis_msg->msg_len += padding; rndis_msg->msg_len += padding;