diff options
author | Stephen Hemminger <stephen@networkplumber.org> | 2017-12-01 11:01:46 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-12-03 10:10:02 -0500 |
commit | b85e06f7bb1a25dd2e7755d55a2ca313d24ae7ad (patch) | |
tree | 96a06d5e05d762625396fb22a797f4c7188e6f61 /drivers/net/hyperv/netvsc.c | |
parent | 200a569990e1d54b8eed2fa817cbf4ba66fe9350 (diff) | |
download | linux-stable-b85e06f7bb1a25dd2e7755d55a2ca313d24ae7ad.tar.gz linux-stable-b85e06f7bb1a25dd2e7755d55a2ca313d24ae7ad.tar.bz2 linux-stable-b85e06f7bb1a25dd2e7755d55a2ca313d24ae7ad.zip |
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>
Diffstat (limited to 'drivers/net/hyperv/netvsc.c')
-rw-r--r-- | drivers/net/hyperv/netvsc.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/hyperv/netvsc.c b/drivers/net/hyperv/netvsc.c index ee31faa67cad..4b931f017a25 100644 --- a/drivers/net/hyperv/netvsc.c +++ b/drivers/net/hyperv/netvsc.c @@ -712,11 +712,12 @@ static u32 netvsc_copy_to_send_buf(struct netvsc_device *net_device, int i; u32 msg_size = 0; u32 padding = 0; - u32 remain = packet->total_data_buflen % net_device->pkt_align; u32 page_count = packet->cp_partial ? packet->rmsg_pgcnt : packet->page_buf_cnt; + u32 remain; /* Add padding */ + remain = packet->total_data_buflen & (net_device->pkt_align - 1); if (skb->xmit_more && remain && !packet->cp_partial) { padding = net_device->pkt_align - remain; rndis_msg->msg_len += padding; |