xen/netback: only non-freed SKB is queued into tx_queue
[linux-2.6-block.git] / drivers / net / xen-netback / netback.c
index f4a6fcaeffb1db381ef9fd007a72578d984a3b4c..682633bfe00ff7fc35c7be97c427a6cf5d9dde45 100644 (file)
@@ -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);