Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1a98b72 authored by Chuck Ebbert's avatar Chuck Ebbert Committed by Jeff Garzik
Browse files

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.

Signed-off-by: default avatarChuck Ebbert <cebbert@redhat.com>
Signed-off-by: default avatarJeff Garzik <jeff@garzik.org>
parent 4a758346
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -559,8 +559,16 @@ static int mhz_setup(struct pcmcia_device *link)

    /* Read the station address from the CIS.  It is stored as the last
       (fourth) string in the Version 1 Version/ID tuple. */
    if (link->prod_id[3]) {
	station_addr = link->prod_id[3];
    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 (cvt_ascii_address(dev, station_addr) == 0) {
		rc = 0;
		goto free_cfg_mem;