Because the number of available buffer slots doesn't decrease for failed
sends, we should not call netvsc_xmit_completion(), which increase the
count of available slots. In this failed case, just free the memory is
enough.

Signed-off-by: Haiyang Zhang <[email protected]>
Signed-off-by: K. Y. Srinivasan <[email protected]>
---
 drivers/staging/hv/netvsc_drv.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/drivers/staging/hv/netvsc_drv.c b/drivers/staging/hv/netvsc_drv.c
index 816e382..a15165e 100644
--- a/drivers/staging/hv/netvsc_drv.c
+++ b/drivers/staging/hv/netvsc_drv.c
@@ -192,7 +192,8 @@ static int netvsc_start_xmit(struct sk_buff *skb, struct 
net_device *net)
        } else {
                /* we are shutting down or bus overloaded, just drop packet */
                net->stats.tx_dropped++;
-               netvsc_xmit_completion(packet);
+               kfree(packet);
+               dev_kfree_skb_any(skb);
        }
 
        return NETDEV_TX_OK;
-- 
1.6.3.2

_______________________________________________
Virtualization mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/virtualization

Reply via email to