diff options
author | David S. Miller <davem@davemloft.net> | 2008-02-15 15:59:19 -0800 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-02-15 15:59:19 -0800 |
commit | b57dfbc4f7f8d394c5e96677d2b66ffca1b4e8a7 (patch) | |
tree | 4d37426789577fb1908fd5d052b3b30047800e7d /drivers/net/pcmcia/smc91c92_cs.c | |
parent | 42fe95cae50bbea4c83b15962b853d6d3b14db37 (diff) | |
parent | e8ef7f295b9f02c1522da405ac545318174239d5 (diff) |
Merge branch 'upstream-davem' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
Diffstat (limited to 'drivers/net/pcmcia/smc91c92_cs.c')
-rw-r--r-- | drivers/net/pcmcia/smc91c92_cs.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/net/pcmcia/smc91c92_cs.c b/drivers/net/pcmcia/smc91c92_cs.c index f18eca9831e..250eb1954c3 100644 --- a/drivers/net/pcmcia/smc91c92_cs.c +++ b/drivers/net/pcmcia/smc91c92_cs.c @@ -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; |