aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/net/xen-netback/netback.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
index a773f2016bad..8cbf60d4689e 100644
--- a/drivers/net/xen-netback/netback.c
+++ b/drivers/net/xen-netback/netback.c
@@ -1521,7 +1521,16 @@ static int xenvif_tx_submit(struct xenvif_queue *queue)
1521 1521
1522 /* Check the remap error code. */ 1522 /* Check the remap error code. */
1523 if (unlikely(xenvif_tx_check_gop(queue, skb, &gop_map, &gop_copy))) { 1523 if (unlikely(xenvif_tx_check_gop(queue, skb, &gop_map, &gop_copy))) {
1524 /* If there was an error, xenvif_tx_check_gop is
1525 * expected to release all the frags which were mapped,
1526 * so kfree_skb shouldn't do it again
1527 */
1524 skb_shinfo(skb)->nr_frags = 0; 1528 skb_shinfo(skb)->nr_frags = 0;
1529 if (skb_has_frag_list(skb)) {
1530 struct sk_buff *nskb =
1531 skb_shinfo(skb)->frag_list;
1532 skb_shinfo(nskb)->nr_frags = 0;
1533 }
1525 kfree_skb(skb); 1534 kfree_skb(skb);
1526 continue; 1535 continue;
1527 } 1536 }