Parsing of vendor strings may be broken in 2.6.16
Pavel Roskin
proski at gnu.org
Wed Mar 29 04:33:41 EST 2006
Hello!
I have received a report from somebody whose D-Link card is no longer
supported by hostap_cs after upgrading to the 2.6.16 kernel.
That's what "pccardctl ident" shows:
Socket 0:
product info: "", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", ""
manfid: 0x0156, 0x0002
function: 6 (network)
And that's the output of dump_cs (I'm removing the parts after the
version data so that I don't expose the MAC address publicly):
Socket 0
offset 0x02, tuple 0x01, link 0x03
00 00 ff
dev_info
NULL 0ns, 512b
offset 0x07, tuple 0x17, link 0x04
67 5a 08 ff
attr_dev_info
SRAM 500ns, 1kb
offset 0x0d, tuple 0x1d, link 0x05
03 67 5a 08 ff
invalid tuple
offset 0x14, tuple 0x15, link 0x32
05 00 44 00 4c 69 6e 6b 20 44 57 4c 2d 36 35 30
20 31 31 4d 62 70 73 20 57 4c 41 4e 20 43 61 72
64 00 56 65 72 73 69 6f 6e 20 30 31 2e 30 32 00
00 ff
vers_1 5.0, "D", "Link DWL-650 11Mbps WLAN Card", "Version 01.02", ""
offset 0x48, tuple 0x20, link 0x04
56 01 02 00
manfid 0x0156, 0x0002
.............
Notice the first vendor string being empty in pccardctl output and "D"
in the dump_cis output.
The preceding tuple is reported as invalid, but the reason is probably
because its type is 0x1d (CISTPL_DEVICE_OA), which is not expected by
pccard_parse_tuple() in debug/parse_cis.c.
pccardctl takes vendor strings from the kernel. It's also consistent
with the fact that if the kernel parsed the first vendor string as "D",
the card would have been supported by hostap_cs.
I wish I could debug it myself, but I'm quite busy now, and the bug
seems to be pretty bad. If it's a kernel bug indeed, the fix may be a
good candidate for 2.6.16.y. I'll appreciate if somebody could check
the kernel CIS parsing code.
--
Regards,
Pavel Roskin
More information about the linux-pcmcia
mailing list