Messages in this thread Patch in this message | | | From | "K. Y. Srinivasan" <> | Subject | [PATCH net 1/1] hv_netvsc: Fix a bug in netvsc_start_xmit() | Date | Mon, 27 Apr 2015 18:14:50 -0700 |
| |
Commit commit b08cc79155fc26d0d112b1470d1ece5034651a4b eliminated memory allocation in the packet send path. This commit introduced a bug since it did not account for the case if the skb was cloned. Fix this bug by using the pre-reserved head room only if the skb is not cloned.
Signed-off-by: K. Y. Srinivasan <kys@microsoft.com> --- drivers/net/hyperv/netvsc_drv.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index a3a9d38..7eb0251 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c @@ -421,7 +421,7 @@ check_size: pkt_sz = sizeof(struct hv_netvsc_packet) + RNDIS_AND_PPI_SIZE; - if (head_room < pkt_sz) { + if (skb->cloned || head_room < pkt_sz) { packet = kmalloc(pkt_sz, GFP_ATOMIC); if (!packet) { /* out of memory, drop packet */ -- 1.7.4.1
| |