> Oh well, we also must make sure we held np->lock in TX completion when > doing our test to eventually call netif_wake_queue(), I missed it was > released too early. > > here is a more complete patch.
I applied the patch, recompiled the module, loaded it into the kernel and started testing traffic on the interface with the following result : [ 1124.008030] ------------[ cut here ]------------ [ 1124.008101] WARNING: at /build/buildd-linux-2.6_3.2.1-2-i386-4wAPNj/linux-2.6-3.2.1/debian/build/source_i386_none/net/sched/sch_generic.c:255 dev_watchdog+0xb1/0x104() [ 1124.008201] Hardware name: [ 1124.008252] NETDEV WATCHDOG: eth1 (sundance): transmit queue 0 timed out [ 1124.008309] Modules linked in: sundance(O) p4_clockmod cpufreq_powersave cpufreq_userspace cpufreq_conservative cpufreq_stats speedstep_lib mperf fuse w83627ehf hwmon_vid coretemp loop ohci_hcd snd_intel8x0 snd_ac97_codec ehci_hcd ac97_bus snd_pcm usbcore snd_seq snd_timer snd_seq_device shpchp psmouse snd sis900 pci_hotplug serio_raw pcspkr mii evdev soundcore parport_pc snd_page_alloc parport processor tpm_tis tpm tpm_bios thermal_sys button usb_common ext3 jbd mbcache sd_mod crc_t10dif ata_generic sata_sis pata_sis libata scsi_mod [last unloaded: sundance] [ 1124.010147] Pid: 5122, comm: gnome-terminal Tainted: G O 3.2.0-1-686-pae #1 [ 1124.010219] Call Trace: [ 1124.010286] [<c1038280>] ? warn_slowpath_common+0x68/0x79 [ 1124.010344] [<c1229e38>] ? dev_watchdog+0xb1/0x104 [ 1124.010399] [<c10382f9>] ? warn_slowpath_fmt+0x29/0x2d [ 1124.010455] [<c1229e38>] ? dev_watchdog+0xb1/0x104 [ 1124.010511] [<c103ccb5>] ? local_bh_enable+0x2/0x2 [ 1124.010567] [<c1041e78>] ? run_timer_softirq+0x150/0x1f3 [ 1124.010622] [<c1229d87>] ? netif_tx_unlock+0x3a/0x3a [ 1124.010678] [<c103ccb5>] ? local_bh_enable+0x2/0x2 [ 1124.010733] [<c103cd49>] ? __do_softirq+0x94/0x12f [ 1124.010788] [<c103ccb5>] ? local_bh_enable+0x2/0x2 [ 1124.010841] <IRQ> [<c103cf3a>] ? irq_exit+0x32/0x80 [ 1124.010931] [<c101e6f4>] ? smp_apic_timer_interrupt+0x5b/0x65 [ 1124.012339] [<c12b9b11>] ? apic_timer_interrupt+0x31/0x38 [ 1124.012397] [<c12b007b>] ? set_cpu_sibling_map+0x200/0x250 [ 1124.012452] ---[ end trace d55b57d11770d7d5 ]--- After this the same repeat of transmit timeouts (as posted earlier) in the log untill I down the interface. Mike.