Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=a1a98b72dbd17e53cd92b8e78f404525ebcfd981
Commit:     a1a98b72dbd17e53cd92b8e78f404525ebcfd981
Parent:     4a75834644ae32ded9bed14db39834d6d3bc4793
Author:     Chuck Ebbert <[EMAIL PROTECTED]>
AuthorDate: Wed Feb 13 19:47:11 2008 -0500
Committer:  Jeff Garzik <[EMAIL PROTECTED]>
CommitDate: Fri Feb 15 10:51:37 2008 -0500

    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: Chuck Ebbert <[EMAIL PROTECTED]>
    Signed-off-by: Jeff Garzik <[EMAIL PROTECTED]>
---
 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 f18eca9..250eb19 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;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to