lkml.org 
[lkml]   [2006]   [Sep]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectHELP - NETDEV WATCHDOG tx timeouts
In the bcm43xx driver, the code snippet shown below has a problem. When the synchronize_net 
statement is included, once every 200-300 passes through the code, the system will report a NETDEV
WATCHDOG tx timeout for bcm43xx, even when the watchdog timeout is set to 30 sec. When the
synchronize statement is removed, there are no errors, Except for lo, this is the only active
network device on the system.

Is there something wrong with this structure? How can synchronize_net take that long?

Thanks, Larry

==============

mutex_lock(...);
netif_stop_queue(net_device);
synchronize_net(); <================ problem ?
spin_lock_irqsave(.....);
...... do some stuff on the hardware
disable interrupts on device
spin_unlock_irqrestore(.......);
synchronize irq top/bottom halves
...... lengthy processing here
spin_lock_irqsave(.....);
tasklet_enable(.....);
enable interrupts
...... more stuff with the hardware
netif_wake_queue(net_device);
spin_unlock_irqrestore(...);
mutex_unlock(...);
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2006-09-09 05:07    [W:0.023 / U:2.320 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site