2003-08-31 14:07:48

by Sebastian Reichelt

[permalink] [raw]
Subject: [PATCH][2.4.21] orinoco_cs card reinsertion

Hello!

After switching from 2.4.20 to 2.4.21 (Debian unstable package
kernel-source-2.4.21-5), my wireless LAN PCMCIA card stopped working
when I hot-removed and reinserted it. I got these messages in
/var/log/syslog, plus a high beep on removal and a high and then a low
beep on reinsertion:

Upon removal:
Aug 29 16:00:41 SebastianL2 kernel: orinoco_lock() called with
hw_unavailable (dev=cf34b800)

Upon reinsertion:
Aug 29 16:00:44 SebastianL2 cardmgr[192]: socket 0: ZCOMAX
AirRunner/XI-300
Aug 29 16:00:44 SebastianL2 kernel: GetNextTuple(). No matching CIS
configuration, maybe you need the ignore_cis_vcc=1 parameter.
Aug 29 16:00:44 SebastianL2 kernel: orinoco_cs: GetFirstTuple: No more
items
Aug 29 16:00:45 SebastianL2 cardmgr[192]: get dev info on socket 0
failed: Resource temporarily unavailable

I looked at the changes between the two kernels, in orinoco.c,
orinoco_cs.c, and hermes.c, and it seems that quite a bit of code was
restructured. So unfortunately, I cannot narrow it down to a single
change that caused this. The attached patch fixes the problem for me,
but it is NOT a simple copy from the old driver, and it may not be
correct at all. However, it might give someone a hint about what went
wrong. Anyway, even with this patch, I still get the "orinoco_lock()
called with hw_unavailable" message when I remove the card.

Sorry if I'm posting a patch for a problem that has already been fixed
in 2.4.22. The Debian package is still at 2.4.21, and I don't know
anything about the Debian patches and why they are needed, etc. If I can
just install a kernel from kernel.org, I will do this, and try to see if
the problem is still there (I can see an item "orinoco driver update"
in the changelog, but it's not specific). Should I also install a 2.6
kernel and check?

I have attached the output of lspci -vvv and the parts of the syslog
that identify my card and show the problem. The controller is this entry
in lspci.txt:
00:08.0 CardBus bridge: O2 Micro, Inc. OZ6912 Cardbus Controller

Here is the output of ver_linux:

------------------------------------------------------------------------
Linux SebastianL2 2.4.21 #1 Sat Aug 30 00:22:04 CEST 2003 i686 GNU/Linux

Gnu C 3.3.2
Gnu make 3.80
binutils 2.14.90.0.5
util-linux 2.11z
mount 2.11z
modutils 0.9.13
e2fsprogs 1.35-WIP
pcmcia-cs 3.2.2
Linux C Library 2.3.2
Dynamic linker (ldd) 2.3.2
Procps 3.1.11
Net-tools 1.60
Console-tools 0.2.3
Sh-utils 5.0.90
------------------------------------------------------------------------

Hopefully someone can find the true cause of the problem. Good luck.

--
Sebastian Reichelt


Attachments:
orinoco_cs.diff (369.00 B)
lspci.txt (8.52 kB)
syslog.txt (3.35 kB)
Download all attachments

2003-09-03 17:21:16

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH][2.4.21] orinoco_cs card reinsertion



On Sun, 31 Aug 2003, Sebastian Reichelt wrote:

> Hello!
>
> After switching from 2.4.20 to 2.4.21 (Debian unstable package
> kernel-source-2.4.21-5), my wireless LAN PCMCIA card stopped working
> when I hot-removed and reinserted it. I got these messages in
> /var/log/syslog, plus a high beep on removal and a high and then a low
> beep on reinsertion:
>
> Upon removal:
> Aug 29 16:00:41 SebastianL2 kernel: orinoco_lock() called with
> hw_unavailable (dev=cf34b800)
>
> Upon reinsertion:
> Aug 29 16:00:44 SebastianL2 cardmgr[192]: socket 0: ZCOMAX
> AirRunner/XI-300
> Aug 29 16:00:44 SebastianL2 kernel: GetNextTuple(). No matching CIS
> configuration, maybe you need the ignore_cis_vcc=1 parameter.
> Aug 29 16:00:44 SebastianL2 kernel: orinoco_cs: GetFirstTuple: No more
> items
> Aug 29 16:00:45 SebastianL2 cardmgr[192]: get dev info on socket 0
> failed: Resource temporarily unavailable
>
> I looked at the changes between the two kernels, in orinoco.c,
> orinoco_cs.c, and hermes.c, and it seems that quite a bit of code was
> restructured. So unfortunately, I cannot narrow it down to a single
> change that caused this. The attached patch fixes the problem for me,
> but it is NOT a simple copy from the old driver, and it may not be
> correct at all. However, it might give someone a hint about what went
> wrong. Anyway, even with this patch, I still get the "orinoco_lock()
> called with hw_unavailable" message when I remove the card.
>
> Sorry if I'm posting a patch for a problem that has already been fixed
> in 2.4.22. The Debian package is still at 2.4.21, and I don't know
> anything about the Debian patches and why they are needed, etc. If I can
> just install a kernel from kernel.org, I will do this, and try to see if
> the problem is still there (I can see an item "orinoco driver update"
> in the changelog, but it's not specific). Should I also install a 2.6
> kernel and check?

Sebastian,

Can you please try 2.4.22? It contains orinoco changes including in the
area you changed.

2003-09-03 19:39:13

by Sebastian Reichelt

[permalink] [raw]
Subject: Re: [PATCH][2.4.21] orinoco_cs card reinsertion

> Can you please try 2.4.22? It contains orinoco changes including in
> the area you changed.

Sorry, 2.4.22 (from kernel.org) just hangs when I insert the card, after
the first of two beeps. Ctrl-Alt-Del doesn't work. No messages are
printed except the usual "cs: memory probe 0xa0000000-0xa0ffffff:
clean.", and syslog doesn't seem to have been flushed (it's cut off at
a higher position).

One thing I noticed from syslog is that the socket is assigned another
IRQ: 5 instead of 9.

--
Sebastian Reichelt

2003-09-03 19:44:52

by Marcelo Tosatti

[permalink] [raw]
Subject: Re: [PATCH][2.4.21] orinoco_cs card reinsertion



On Wed, 3 Sep 2003, Sebastian Reichelt wrote:

> > Can you please try 2.4.22? It contains orinoco changes including in
> > the area you changed.
>
> Sorry, 2.4.22 (from kernel.org) just hangs when I insert the card, after
> the first of two beeps. Ctrl-Alt-Del doesn't work. No messages are
> printed except the usual "cs: memory probe 0xa0000000-0xa0ffffff:
> clean.", and syslog doesn't seem to have been flushed (it's cut off at
> a higher position).
>
> One thing I noticed from syslog is that the socket is assigned another
> IRQ: 5 instead of 9.

Hum, are you using ACPI? There have a few IRQ assignment issues reported
with the new ACPI in 2.4.22.

Can you please try booting with "pci=noacpi" option ?


2003-09-03 20:01:15

by tonildg

[permalink] [raw]
Subject: Re: [PATCH][2.4.21] orinoco_cs card reinsertion

Not sure, but can this be related with the stuff commented before in
this list with the subjects "Airo Net 340 PCMCIA WiFi Card trouble" ?


Marcelo Tosatti wrote:
>
> On Wed, 3 Sep 2003, Sebastian Reichelt wrote:
>
>
>>>Can you please try 2.4.22? It contains orinoco changes including in
>>>the area you changed.
>>
>>Sorry, 2.4.22 (from kernel.org) just hangs when I insert the card, after
>>the first of two beeps. Ctrl-Alt-Del doesn't work. No messages are
>>printed except the usual "cs: memory probe 0xa0000000-0xa0ffffff:
>>clean.", and syslog doesn't seem to have been flushed (it's cut off at
>>a higher position).
>>
>>One thing I noticed from syslog is that the socket is assigned another
>>IRQ: 5 instead of 9.
>
>
> Hum, are you using ACPI? There have a few IRQ assignment issues reported
> with the new ACPI in 2.4.22.
>
> Can you please try booting with "pci=noacpi" option ?
>
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>


2003-09-03 20:11:55

by Sebastian Reichelt

[permalink] [raw]
Subject: Re: [PATCH][2.4.21] orinoco_cs card reinsertion

> Hum, are you using ACPI? There have a few IRQ assignment issues
> reported with the new ACPI in 2.4.22.
>
> Can you please try booting with "pci=noacpi" option ?

Yes, thanks. That solves both problems (the reinsertion detection and
the crash). I still get the message "orinoco_lock() called with
hw_unavailable" in syslog, just in case that means something.

Speaking about messages, ever since I've been using PCMCIA (the
SourceForge stuff for 2.2 and the kernel support in 2.4), I've been
getting the following message three times in a row after insertion:
eth1: Error -110 setting multicast list.

I was told on SourceForge that I should just ignore it. However, it
covered by login prompt, so I simply commented out everything about
"multicasting" in orinoco.c. Is there a correct way to handle this?

--
Sebastian Reichelt