Fix station address detection in smc
Subsystems (2)
PATCH 1/1 Fix station address detection in smc
Megahertz EM1144 PCMCIA ethernet adapter needs special handling because it has two VERS_1 tuples and the station address is in the second one. Conversion to generic handling of these fields broke it. Reverting that fixes the device.
https://bugzilla.redhat.com/show_bug.cgi?id=233255
Thanks go to Jon Stanley for not giving up on this one until the problem was found.
---
This was broken for over a year before the problem was found...
drivers/net/pcmcia/smc91c92_cs.c +10 -2
@@ -560,8 +560,16 @@/* Read the station address from the CIS. It is stored as the last (fourth) string in the Version 1 Version/ID tuple. */ + tuple->DesiredTuple =CISTPL_VERS_1 ; +if (first_tuple (link, tuple, parse) !=CS_SUCCESS ) { + rc =-1 ; + goto free_cfg_mem; + } +/* Ugh -- the EM1144 card has two VERS_1 tuples!?! */ +if (next_tuple (link, tuple, parse) !=CS_SUCCESS ) +first_tuple (link, tuple, parse); +if (parse->version_1.ns >3 ) { + station_addr = parse->version_1.str + parse->version_1.ofs[3 ]; -if (link->prod_id[3 ]) { - station_addr = link->prod_id[3 ];if (cvt_ascii_address (dev, station_addr) ==0 ) { rc =0 ; goto free_cfg_mem;
Jeff Garzik
AppliedQuoted 7 lines · Chuck Ebbert
Megahertz EM1144 PCMCIA ethernet adapter needs special handling because it has two
VERS_1tuples and the station address is in the second one. Conversion to generic handling of these fields broke it. Reverting that fixes the device.
Quoted 8 lines
Thanks go to Jon Stanley for not giving up on this one until the problem was found.
Signed-off-by Chuck Ebbert <[email protected]>---
This was broken for over a year before the problem was found...
applied