Displaying 3 results from an estimated 3 matches for "rx_schedule".
Did you mean:
r_schedule
2008 Mar 03
0
[PATCH 1/3] Backward compat to replace napi in *rx_schedule*
...;;
+ print " no_work = vi->rvq->vq_ops->enable_cb(vi->rvq);";
print "";
print " if (!no_work && netif_rx_reschedule(vi->dev, received)) {";
print " skb = NULL;";
@@ -62,6 +62,32 @@
virtnet_poll = 1
}
+/\tnetif_rx_schedule\(/ {
+ print "#ifdef COMPAT_napi";
+ print " vi->rvq->vq_ops->enable_cb(vi->rvq);";
+ print " if (netif_rx_schedule_prep(vi->dev)) {";
+ print " vi->rvq->vq_ops->disable_cb(vi->rvq);";
+ print " __netif_rx_sche...
2008 Feb 05
1
[PATCH] virtio_net: Fix open <-> interrupt race
...el panic - not syncing: Fatal exception in interrupt
<4>
After looking at the code and the dump I think the following scenario
happened: Ifup was running on cpu2 and the interrupt arrived on cpu0.
Now virtnet_open on cpu 2 managed to execute napi_enable and disable_cb
but did not execute rx_schedule. Meanwhile on cpu 0 skb_recv_done was
called by vring_interrupt, executed netif_rx_schedule_prep, which
succeeded and therefore called disable_cb. This triggered the BUG_ON,
as interrupts were already disabled by cpu 2.
I think the proper solution is to make the call to disable_cb depend on
the at...
2008 Feb 05
1
[PATCH] virtio_net: Fix open <-> interrupt race
...el panic - not syncing: Fatal exception in interrupt
<4>
After looking at the code and the dump I think the following scenario
happened: Ifup was running on cpu2 and the interrupt arrived on cpu0.
Now virtnet_open on cpu 2 managed to execute napi_enable and disable_cb
but did not execute rx_schedule. Meanwhile on cpu 0 skb_recv_done was
called by vring_interrupt, executed netif_rx_schedule_prep, which
succeeded and therefore called disable_cb. This triggered the BUG_ON,
as interrupts were already disabled by cpu 2.
I think the proper solution is to make the call to disable_cb depend on
the at...