diff mbox

[1/1] Drivers: net-next: hyperv: Fix a bug in netvsc_start_xmit()

Message ID 1411958991-28049-1-git-send-email-kys@microsoft.com
State Changes Requested, archived
Delegated to: David Miller
Headers show

Commit Message

KY Srinivasan Sept. 29, 2014, 2:49 a.m. UTC
After the packet is successfully sent, we should not touch the skb as it may
have been freed. This patch is based on the work done by
Long Li <longli@microsoft.com>. 

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Tested-by: Long Li <longli@microsoft.com>
Cc: <stable@vger.kernel.org>
---
 drivers/net/hyperv/netvsc_drv.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

Comments

David Miller Sept. 29, 2014, 3:16 a.m. UTC | #1
From: "K. Y. Srinivasan" <kys@microsoft.com>
Date: Sun, 28 Sep 2014 19:49:51 -0700

> After the packet is successfully sent, we should not touch the skb as it may
> have been freed. This patch is based on the work done by
> Long Li <longli@microsoft.com>. 
> 
> Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> Tested-by: Long Li <longli@microsoft.com>
> Cc: <stable@vger.kernel.org>

You hyperv guys really have to get your act together.  This is not
properly submitted.

Most importantly, this is a serious reference to free memory bug.
Therefore it should be targetted at 'net' not 'net-next'.

Secondly, you do not CC: stable for networking changes, you instead
ask me to queue it up for my next batch of -stable networking changes.

Thirdly, your Subject line is malformed.  You should not use
"Drivers: " as a prefix.  Just the driver name is sufficient.
You should also not mentionen the target GIT tree outside of the
[PATCH ...] bracketed area.

Also, please be cognizant of how much of my time you unnecessarily
consume when you make a malformed submission like this.  That is
time I could spend reviewing other patches.

Thank you.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
KY Srinivasan Sept. 29, 2014, 3:51 a.m. UTC | #2
> -----Original Message-----
> From: David Miller [mailto:davem@davemloft.net]
> Sent: Sunday, September 28, 2014 8:17 PM
> To: KY Srinivasan
> Cc: netdev@vger.kernel.org; linux-kernel@vger.kernel.org;
> devel@linuxdriverproject.org; olaf@aepfle.de; apw@canonical.com;
> jasowang@redhat.com; stable@vger.kernel.org
> Subject: Re: [PATCH 1/1] Drivers: net-next: hyperv: Fix a bug in
> netvsc_start_xmit()
> 
> From: "K. Y. Srinivasan" <kys@microsoft.com>
> Date: Sun, 28 Sep 2014 19:49:51 -0700
> 
> > After the packet is successfully sent, we should not touch the skb as
> > it may have been freed. This patch is based on the work done by Long
> > Li <longli@microsoft.com>.
> >
> > Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
> > Tested-by: Long Li <longli@microsoft.com>
> > Cc: <stable@vger.kernel.org>
> 
> You hyperv guys really have to get your act together.  This is not properly
> submitted.
> 
> Most importantly, this is a serious reference to free memory bug.
> Therefore it should be targetted at 'net' not 'net-next'.
> 
> Secondly, you do not CC: stable for networking changes, you instead ask me
> to queue it up for my next batch of -stable networking changes.
> 
> Thirdly, your Subject line is malformed.  You should not use
> "Drivers: " as a prefix.  Just the driver name is sufficient.
> You should also not mentionen the target GIT tree outside of the [PATCH ...]
> bracketed area.
> 
> Also, please be cognizant of how much of my time you unnecessarily
> consume when you make a malformed submission like this.  That is time I
> could spend reviewing other patches.

Sorry about that; I will resubmit this patch after addressing all the issues you have raised.

Regards,

K. Y
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/net/hyperv/netvsc_drv.c b/drivers/net/hyperv/netvsc_drv.c
index a9c5eaa..0fcb5e7 100644
--- a/drivers/net/hyperv/netvsc_drv.c
+++ b/drivers/net/hyperv/netvsc_drv.c
@@ -387,6 +387,7 @@  static int netvsc_start_xmit(struct sk_buff *skb, struct net_device *net)
 	int  hdr_offset;
 	u32 net_trans_info;
 	u32 hash;
+	u32 skb_length = skb->len;
 
 
 	/* We will atmost need two pages to describe the rndis
@@ -562,7 +563,7 @@  do_send:
 
 drop:
 	if (ret == 0) {
-		net->stats.tx_bytes += skb->len;
+		net->stats.tx_bytes += skb_length;
 		net->stats.tx_packets++;
 	} else {
 		kfree(packet);