Skip to content

Commit 1e0b6ea

Browse files
annie-lidavem330
authored andcommitted
xen/netback: only non-freed SKB is queued into tx_queue
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> Acked-by: Ian Campbell <ian.campbell@citrix.com> Signed-off-by: David S. Miller <davem@davemloft.net>
1 parent 7fa8ad6 commit 1e0b6ea

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/net/xen-netback/netback.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1363,8 +1363,6 @@ static unsigned xen_netbk_tx_build_gops(struct xen_netbk *netbk)
13631363
INVALID_PENDING_IDX);
13641364
}
13651365

1366-
__skb_queue_tail(&netbk->tx_queue, skb);
1367-
13681366
netbk->pending_cons++;
13691367

13701368
request_gop = xen_netbk_get_requests(netbk, vif,
@@ -1376,6 +1374,8 @@ static unsigned xen_netbk_tx_build_gops(struct xen_netbk *netbk)
13761374
}
13771375
gop = request_gop;
13781376

1377+
__skb_queue_tail(&netbk->tx_queue, skb);
1378+
13791379
vif->tx.req_cons = idx;
13801380
xen_netbk_check_rx_xenvif(vif);
13811381

0 commit comments

Comments
 (0)