hostap driver hangs "hard"

Holger Schurig hs4233 at mail.mn-solutions.de
Tue Dec 27 09:02:48 EST 2005


On Thursday 22 December 2005 19:59, Pavel Roskin wrote:
> I think the version of HostAP driver in CVS is broken.  I've seen such
> problems.  The version included with the kernels starting with 2.6.14
> should be fine though.

Thanks for this info.

I actually think that we have some hardware incompatibility here.

The card did not only refuse to work with hostap, but it didn't work with 
orinoco_cs either. To rule out problems with the old 2.6.13-rc2 I upgraded to 
the kernel to 2.6.15-rc7 and still it didn't work.

But in the same hardware (with Linux 2.6.15-rc7) an Intel WCF2011B card 
worked. That card uses the spectrum24t_cs driver and therefore hermes.c. So, 
with one card hermes.c worked, but with another card not. Sounds quite fishy.

My current assumption is that either we have some hardware problem here ... or 
that this card has a different way to specify internal state and that 
therefore then numberous

  while (some_test_failed) {
	usleep(X);
  }

kind loops in hermes.c and hostap_hw.c won't work as expected and give me the 
a feeling of "this rotten piece of code hangs!".


BTW, here's a log of a hermes.c with lots of debug printk's:

pccard: PCMCIA card inserted into slot 1
pcmcia: registering new device pcmcia1.0
orinoco 0.15rc3 (David Gibson <hermes at gibson.dropbear.id.au>, Pavel Roskin 
<proski at gnu.org>, et al)
orinoco_cs 0.15rc3 (David Gibson <hermes at gibson.dropbear.id.au>, Pavel Roskin 
<proski at gnu.org>, et al)
hermes_struct_init()
eth1: -> orinoco_init()
hermes_init()
hermes_write_reg(0032, 0000)
hermes_write_reg(0034, ffff)
hermes_read_reg(0000) 0000
orinoco_lock() called with hw_unavailable (dev=c3d8c800)
end of unbusy loop, k 100
hermes_read_reg(0030) ffff
hermes_write_reg(0034, ffff)
cleared EVSTAT
hermes_issue_cmd(0000, 0000)
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
orinoco_lock() called with hw_unavailable (dev=c3d8c800)
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_read_reg(0000) ffff
hermes_issue_cmd return -BUSY
hermes_init return err -16
eth1: failed to initialize firmware (err = -16)
eth1: <- orinoco_init()
orinoco_cs: register_netdev() failed
pccard: card ejected from slot 1
orinoco_cs: detach: link=c3d8cd04 link->dev=00000000



More information about the HostAP mailing list