diff
--- a/drivers/net/hyperv/netvsc.c
+++ b/drivers/net/hyperv/netvsc.c
@@ -6,7 +6,10 @@
 6 
 7 	kfree(nvdev->extension);
 8 	vfree(nvdev->recv_buf);
-9 	vfree(nvdev->send_buf);
+9       if (atomic_dec_and_test(&nvdev->recv_buf_refcnt)) {
+10           vfree(nvdev->recv_buf); 
+11       }
+12 	vfree(nvdev->send_buf);
 13 	bitmap_free(nvdev->send_section_map);
 14 
 15 	for (i = 0; i < VRSS_CHANNEL_MAX; i++) {

