diff options
Diffstat (limited to 'drivers/net/hyperv/netvsc_drv.c')
-rw-r--r-- | drivers/net/hyperv/netvsc_drv.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c index c76b66515e92..939e3af60ec4 100644 --- a/drivers/net/hyperv/netvsc_drv.c +++ b/drivers/net/hyperv/netvsc_drv.c | |||
@@ -236,10 +236,11 @@ static void netvsc_xmit_completion(void *context) | |||
236 | struct hv_netvsc_packet *packet = (struct hv_netvsc_packet *)context; | 236 | struct hv_netvsc_packet *packet = (struct hv_netvsc_packet *)context; |
237 | struct sk_buff *skb = (struct sk_buff *) | 237 | struct sk_buff *skb = (struct sk_buff *) |
238 | (unsigned long)packet->send_completion_tid; | 238 | (unsigned long)packet->send_completion_tid; |
239 | u32 index = packet->send_buf_index; | ||
239 | 240 | ||
240 | kfree(packet); | 241 | kfree(packet); |
241 | 242 | ||
242 | if (skb) | 243 | if (skb && (index == NETVSC_INVALID_INDEX)) |
243 | dev_kfree_skb_any(skb); | 244 | dev_kfree_skb_any(skb); |
244 | } | 245 | } |
245 | 246 | ||