|
@@ -662,7 +662,7 @@ static void xen_netbk_rx_action(struct xen_netbk *netbk)
|
|
|
{
|
|
|
struct xenvif *vif = NULL, *tmp;
|
|
|
s8 status;
|
|
|
- u16 irq, flags;
|
|
|
+ u16 flags;
|
|
|
struct xen_netif_rx_response *resp;
|
|
|
struct sk_buff_head rxq;
|
|
|
struct sk_buff *skb;
|
|
@@ -771,13 +771,13 @@ static void xen_netbk_rx_action(struct xen_netbk *netbk)
|
|
|
sco->meta_slots_used);
|
|
|
|
|
|
RING_PUSH_RESPONSES_AND_CHECK_NOTIFY(&vif->rx, ret);
|
|
|
- irq = vif->irq;
|
|
|
- if (ret && list_empty(&vif->notify_list))
|
|
|
- list_add_tail(&vif->notify_list, ¬ify);
|
|
|
|
|
|
xenvif_notify_tx_completion(vif);
|
|
|
|
|
|
- xenvif_put(vif);
|
|
|
+ if (ret && list_empty(&vif->notify_list))
|
|
|
+ list_add_tail(&vif->notify_list, ¬ify);
|
|
|
+ else
|
|
|
+ xenvif_put(vif);
|
|
|
npo.meta_cons += sco->meta_slots_used;
|
|
|
dev_kfree_skb(skb);
|
|
|
}
|
|
@@ -785,6 +785,7 @@ static void xen_netbk_rx_action(struct xen_netbk *netbk)
|
|
|
list_for_each_entry_safe(vif, tmp, ¬ify, notify_list) {
|
|
|
notify_remote_via_irq(vif->irq);
|
|
|
list_del_init(&vif->notify_list);
|
|
|
+ xenvif_put(vif);
|
|
|
}
|
|
|
|
|
|
/* More work to do? */
|