hv_netvsc: Fix a bug in netvsc_start_xmit()
authorKY Srinivasan <kys@microsoft.com>
Wed, 29 Apr 2015 00:59:48 +0000 (17:59 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 29 Apr 2015 19:20:39 +0000 (15:20 -0400)
commitb56fc3c536541c8081cd5f1f1d101a16c002a365
tree4d887b0f261c23862d847c435c7bf94b671ad91c
parent48734994ac268eb391a66dca4cde7d08a08aba08
hv_netvsc: Fix a bug in netvsc_start_xmit()

Commit b08cc79155fc26d0d112b1470d1ece5034651a4b eliminated memory
allocation in the packet send path:

    "hv_netvsc: Eliminate memory allocation in the packet send path

    The network protocol used to communicate with the host is the remote ndis (rndis)
    protocol. We need to decorate each outgoing packet with a rndis header and
    additional rndis state (rndis per-packet state). To manage this state, we
    currently allocate memory in the transmit path. Eliminate this allocation by
    requesting additional head room in the skb."

This commit introduced a bug since it did not account for the case if the skb
was cloned. Fix this bug.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Tested-by: Dexuan Cui <decui@microsoft.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/hyperv/hyperv_net.h
drivers/net/hyperv/netvsc.c
drivers/net/hyperv/netvsc_drv.c