Bug 5711

Summary: ipw2200: NETDEV_TX_BUSY returned; driver should report queue full via ieee_device->is_queue_full.
Product: Drivers Reporter: David Schmitt (david)
Component: NetworkAssignee: Jeff Garzik (jgarzik)
Status: CLOSED CODE_FIX    
Severity: normal CC: jketreno, romieu
Priority: P2    
Hardware: i386   
OS: Linux   
Kernel Version: 2.6.15-rc4-686 (Debians -0experimental.1 build) Subsystem:
Regression: --- Bisected commit-id:
Attachments: The error log from my ipw2200 from /sys/class/net/eth0/device/error
The error log from my ipw2200 from /sys/class/net/eth0/device/error
stop queueing when there is no more room available

Description David Schmitt 2005-12-08 01:54:10 UTC
Most recent ipw2200 where this bug did not occur: using 2.6.14 and the external
ipw2200-source (1.0.8-1) and ieee80211-source (1.1.6-2) from Debian, the card
worked without problems.

Distribution: Debian

Hardware Environment: Samsung M40+ laptop

0000:02:07.0 0280: 8086:4220 (rev 05)
0000:02:07.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)

Software Environment:

from dmesg:

ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.7
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, git-1.0.8
ipw2200: Copyright(c) 2003-2005 Intel Corporation
ACPI: PCI Interrupt Link [LNKE] enabled at IRQ 5
ACPI: PCI Interrupt 0000:02:07.0[A] -> Link [LNKE] -> GSI 5 (level, low) -> IRQ 
5
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection

I have the ipw-2.4 firmware installed in /lib/firmware:

$ md5sum ipw-2.4-*
bb9b6e2e5522ac13518330d954387f05  ipw-2.4-boot.fw
7ef54b582a45da44cfe8604a5d7a4e6d  ipw-2.4-bss.fw
99fdbf6d98a9bc3a2084583fe13f07df  ipw-2.4-bss_ucode.fw
907d750e7f277088cb7f6169c1c00813  ipw-2.4-ibss.fw
07a7d1d4c87e04036845ef6f6fb1b193  ipw-2.4-ibss_ucode.fw
b62bdbbf640ede966c8d58e6432d196b  ipw-2.4-sniffer.fw
bd1c3ea4da25b64085fc618c5107ed75  ipw-2.4-sniffer_ucode.fw

Problem Description: After displaying the message 

"eth0: NETDEV_TX_BUSY returned; driver should report queue full via
ieee_device->is_queue_full."

in dmesg, the networks stopped working. ifdown/ifup restored the card to a
working state.


Steps to reproduce:

iwconfig eth0:

eth0      IEEE 802.11b  ESSID:"tunet"  
          Mode:Ad-Hoc  Frequency:2.422 GHz  Cell: 02:00:EE:5F:23:00   
          Bit Rate=11 Mb/s   Tx-Power=20 dBm   
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:XXXX-XXXX-XXXX-XXXX-XXXX-XXXX-XX   Security mode:restricted
          Power Management:off
          Link Quality=95/100  Signal level=-31 dBm  Noise level=-256 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

After short time (several minutes) and a bit traffic, the interface stopped
working. After reconfiguring the interface dmesg said:

ipw2200: Firmware error detected.  Restarting.
ipw2200: Sysfs 'error' log captured.
ipw2200: Firmware error detected.  Restarting.
ipw2200: Sysfs 'error' log already exists.

I'll attach the error log to the bug.
Comment 1 David Schmitt 2005-12-08 02:05:03 UTC
Created attachment 6782 [details]
The error log from my ipw2200 from /sys/class/net/eth0/device/error
Comment 2 David Schmitt 2005-12-08 02:05:39 UTC
Created attachment 6783 [details]
The error log from my ipw2200 from /sys/class/net/eth0/device/error
Comment 3 Francois Romieu 2005-12-28 15:32:25 UTC
Created attachment 6899 [details]
stop queueing when there is no more room available

Patch applies against 2.6.15-rc7. Please test.
Comment 4 David Schmitt 2005-12-31 02:16:25 UTC
I tried this patch against the same kernel version I reported the problem
against (2.6.15-rc4-0experimental.1 from debian) and while the driver still
reports firmware errors, it doesn't lock up anymore. Neither in managed nor in
ad-hoc mode.


Thanks for your time and work!
Comment 5 David Schmitt 2006-01-29 09:16:14 UTC
I'm now running Debians 2.6.15-3 and have never again felt this problem.
Therefore I thankfully close the report.