Message ID | 1340794018-17274-1-git-send-email-annie.li@oracle.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: annie.li@oracle.com Date: Wed, 27 Jun 2012 18:46:58 +0800 > From: Annie Li <Annie.li@oracle.com> > > After SKB is queued into tx_queue, it will be freed if request_gop is NULL. > However, no dequeue action is called in this situation, it is likely that > tx_queue constains freed SKB. This patch should fix this issue, and it is > based on 3.5.0-rc4+. > > This issue is found through code inspection, no bug is seen with it currently. > I run netperf test for several hours, and no network regression was found. > > Signed-off-by: Annie Li <annie.li@oracle.com> I lack the expertiece necessary to properly review this, so I really need a Xen expert to look this over. -- 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
On Fri, 2012-06-29 at 00:55 +0100, David Miller wrote: > From: annie.li@oracle.com > Date: Wed, 27 Jun 2012 18:46:58 +0800 > > > From: Annie Li <Annie.li@oracle.com> > > > > After SKB is queued into tx_queue, it will be freed if request_gop is NULL. > > However, no dequeue action is called in this situation, it is likely that > > tx_queue constains freed SKB. This patch should fix this issue, and it is > > based on 3.5.0-rc4+. > > > > This issue is found through code inspection, no bug is seen with it currently. > > I run netperf test for several hours, and no network regression was found. > > > > Signed-off-by: Annie Li <annie.li@oracle.com> > > I lack the expertiece necessary to properly review this, so I really > need a Xen expert to look this over. Sorry, I put it to one side waiting for the repost to netdev and then forgot about it... Yes, this change looks good to me: Acked-by: Ian Campbell <ian.campbell@citrix.com> -- 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
From: Ian Campbell <Ian.Campbell@citrix.com> Date: Fri, 29 Jun 2012 08:23:09 +0100 > On Fri, 2012-06-29 at 00:55 +0100, David Miller wrote: >> From: annie.li@oracle.com >> Date: Wed, 27 Jun 2012 18:46:58 +0800 >> >> > From: Annie Li <Annie.li@oracle.com> >> > >> > After SKB is queued into tx_queue, it will be freed if request_gop is NULL. >> > However, no dequeue action is called in this situation, it is likely that >> > tx_queue constains freed SKB. This patch should fix this issue, and it is >> > based on 3.5.0-rc4+. >> > >> > This issue is found through code inspection, no bug is seen with it currently. >> > I run netperf test for several hours, and no network regression was found. >> > >> > Signed-off-by: Annie Li <annie.li@oracle.com> >> >> I lack the expertiece necessary to properly review this, so I really >> need a Xen expert to look this over. > > Sorry, I put it to one side waiting for the repost to netdev and then > forgot about it... > > Yes, this change looks good to me: > > Acked-by: Ian Campbell <ian.campbell@citrix.com> Thanks, applied to net-next. -- 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 --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c index f4a6fca..682633b 100644 --- a/drivers/net/xen-netback/netback.c +++ b/drivers/net/xen-netback/netback.c @@ -1363,8 +1363,6 @@ static unsigned xen_netbk_tx_build_gops(struct xen_netbk *netbk) INVALID_PENDING_IDX); } - __skb_queue_tail(&netbk->tx_queue, skb); - netbk->pending_cons++; request_gop = xen_netbk_get_requests(netbk, vif, @@ -1376,6 +1374,8 @@ static unsigned xen_netbk_tx_build_gops(struct xen_netbk *netbk) } gop = request_gop; + __skb_queue_tail(&netbk->tx_queue, skb); + vif->tx.req_cons = idx; xen_netbk_check_rx_xenvif(vif);