On 07/02, Jarek Poplawski wrote:
quoted hunk ↗ jump to hunk
diff -Nurp 2.6.22-rc7-/net/core/netpoll.c 2.6.22-rc7/net/core/netpoll.c
--- 2.6.22-rc7-/net/core/netpoll.c 2007-07-02 09:03:27.000000000 +0200
+++ 2.6.22-rc7/net/core/netpoll.c 2007-07-02 09:32:34.000000000 +0200
@@ -72,8 +72,7 @@ static void queue_process(struct work_st
netif_tx_unlock(dev);
local_irq_restore(flags);
- if (atomic_read(&npinfo->refcnt))
- schedule_delayed_work(&npinfo->tx_work, HZ/10);
+ schedule_delayed_work(&npinfo->tx_work, HZ/10);
return;
}
netif_tx_unlock(dev);
@@ -786,7 +785,7 @@ void netpoll_cleanup(struct netpoll *np)
if (atomic_dec_and_test(&npinfo->refcnt)) {
skb_queue_purge(&npinfo->arp_tx);
skb_queue_purge(&npinfo->txq);
- cancel_delayed_work(&npinfo->tx_work);
+ cancel_rearming_delayed_work(&npinfo->tx_work);
flush_scheduled_work();
While you are here, could you also delete this flush_scheduled_work() ?
It is not needed any longer.
Oleg.