Michael Buesch <[EMAIL PROTECTED]> writes:

> I hopefully found out why we get a watchdog timeout now
> and then.
...
> I think the correct solution for this is to fake a TX start
> on every periodic work execution. This fake is harmless and
> prevents the watchdog from triggering. At least here in my testsuite. :)
> 
> Please test this guys.
> 
> This patch is against 2.6.18.1 (and not 2.6.18, as the diff prolog suggests)

My laptop is running 2.6.19-rc2+ (latest git from Linus), so I tested
the patch below instead. I hope the test is useful anyway.

So far it looks good. The computer has been up for 7 hours and the
network is still working. With an unpatched 2.6.19-rc2 driver, I
usually get a TX timeout after 2-3 hours, which makes the network stop
working.

---

 drivers/net/wireless/bcm43xx/bcm43xx_main.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c 
b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
index a94c6d8..4eccda8 100644
--- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c
+++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c
@@ -3173,6 +3173,12 @@ static void bcm43xx_periodic_work_handle
                /* Periodic work will take a long time, so we want it to
                 * be preemtible.
                 */
+               /* We must fake a started transmission here, as we are going to
+                * disable TX. If we wouldn't fake a TX, it would be possible to
+                * trigger the netdev watchdog, if the last real TX is already
+                * some time on the past (slightly less than 5secs)
+                */
+               bcm->net_dev->trans_start = jiffies;
                netif_tx_disable(bcm->net_dev);
                spin_lock_irqsave(&bcm->irq_lock, flags);
                bcm43xx_mac_suspend(bcm);

-- 
Peter Osterlund - [EMAIL PROTECTED]
http://web.telia.com/~u89404340
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev

Reply via email to