driver bug - prism2_transmit() called when previous TX was pending

Teichman Čestmír - cestovní připojení teichman.road at nsys.cz
Sat Mar 22 16:32:36 EST 2003


Hi,
    PCMCIA card is very often scheduled reseting. I's seems be depending on
utilization of AP per one client.
If utilization is per user low - OK, but if user load about 400kbps I still
have this message in log:
"driver bug - prism2_transmit() called when previous TX was pending" an
after this message is PC card scheduled reset.
Client have good signal and minimal noise - link quality is good, using
ORINOCO PC card in ISA reduction and OS Win2000.
I've this HW
- Intel Celeron P4 - 1.7 GHz, MB MSI i845chipset, DDR 128MB KINGMAX
- PCI-PCMCIA reduction AVAYA with TexasInstrumnets chiset
- Z-Commax PCMCIA card with Intersil Prism 2.5 chipset
my SW
- Slackware 9.0 -beta and PCMCIA 2.4.20

AP is servicing 30 clients.

I looked into source code and in "hostap_hw.c" in function "prism2_transmit"
is this:

                              /* The driver tries to stop netif queue so
that there would not be
                               * more than one attempt to transmit frames
going on; check that this
                               * is really the case */

 if (test_and_set_bit(HOSTAP_BITS_TRANSMIT, &local->bits)) {
      printk(KERN_DEBUG "%s: driver bug - prism2_transmit() called "
      "when previous TX was pending\n", dev->name);
  return -1;
 }

QUESTION IS:
Is not possible another way to succesfully completed this situation except
scheduled card reset???
I..e. loop 20x if "test_and_set_bit" is OK and if not then reset card....
or some other way ...???

Oh ... on slow PC may HostAP due this problem frozen, on new speed P4 is
stable and never frozen (but still reseting).

Thanks  Cestmir

My log:
Mar 22 21:06:28 fwaup001 kernel: wlan1: driver bug - prism2_transmit()
called when previous TX was pending
Mar 22 21:06:28 fwaup001 kernel: wlan1: prism2_tx - to BAP0 failed
Mar 22 21:06:28 fwaup001 kernel: wlan1: scheduled card reset

Mar 22 21:06:28 fwaup001 kernel: prism2_pccard_cor_sreset: original COR 41
Mar 22 21:06:28 fwaup001 kernel: wlan1: removed pending cmd_queue entry
(type=1, cmd=0x010b, param0=0x0128)
Mar 22 21:06:28 fwaup001 kernel: prism2_hw_init()
Mar 22 21:06:28 fwaup001 kernel: prism2_hw_config: initialized in 15754
iterations
Mar 22 21:06:28 fwaup001 kernel: prism2_tx_timeout: wake up queue
Mar 22 21:06:43 fwaup001 kernel: wlan1: driver bug - prism2_transmit()
called when previous TX was pending
Mar 22 21:06:43 fwaup001 kernel: wlan1: prism2_tx - to BAP0 failed
Mar 22 21:06:43 fwaup001 kernel: wlan1: scheduled card reset
Mar 22 21:06:43 fwaup001 kernel: prism2_pccard_cor_sreset: original COR 41
Mar 22 21:06:43 fwaup001 kernel: wlan1: removed pending cmd_queue entry
(type=1, cmd=0x010b, param0=0x01a6)
Mar 22 21:06:43 fwaup001 kernel: prism2_hw_init()
Mar 22 21:06:43 fwaup001 kernel: prism2_hw_config: initialized in 16148
iterations
Mar 22 21:06:43 fwaup001 kernel: prism2_tx_timeout: wake up queue
Mar 22 21:06:48 fwaup001 kernel: wlan1: driver bug - prism2_transmit()
called when previous TX was pending
Mar 22 21:06:48 fwaup001 kernel: wlan1: prism2_tx - to BAP0 failed
Mar 22 21:06:48 fwaup001 kernel: wlan1: scheduled card reset
Mar 22 21:06:48 fwaup001 kernel: prism2_pccard_cor_sreset: original COR 41
Mar 22 21:06:48 fwaup001 kernel: prism2_hw_init()
Mar 22 21:06:48 fwaup001 kernel: wlan1: prism2_tx: hw not ready - skipping
Mar 22 21:06:48 fwaup001 last message repeated 8 times
Mar 22 21:06:48 fwaup001 kernel: prism2_hw_config: initialized in 15954
iterations
Mar 22 21:06:48 fwaup001 kernel: wlan1: prism2_tx: hw not ready - skipping
....
....




More information about the HostAP mailing list