qlge: bugfix: Add flash offset for second port.
authorRon Mercer <ron.mercer@qlogic.com>
Mon, 2 Feb 2009 21:54:15 +0000 (13:54 -0800)
committerDavid S. Miller <davem@davemloft.net>
Mon, 2 Feb 2009 21:54:15 +0000 (13:54 -0800)
Without this the 2nd port gets first ports MAC addr.

Signed-off-by: Ron Mercer <ron.mercer@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/qlge/qlge_main.c

index 17d02eb6c8beebf7b52b5818acb68b8959910184..c6c070475f070d8528393370525df92dedb1efbb 100644 (file)
@@ -670,12 +670,19 @@ static int ql_get_flash_params(struct ql_adapter *qdev)
        int i;
        int status;
        __le32 *p = (__le32 *)&qdev->flash;
+       u32 offset = 0;
+
+       /* Second function's parameters follow the first
+        * function's.
+        */
+       if (qdev->func)
+               offset = sizeof(qdev->flash) / sizeof(u32);
 
        if (ql_sem_spinlock(qdev, SEM_FLASH_MASK))
                return -ETIMEDOUT;
 
        for (i = 0; i < sizeof(qdev->flash) / sizeof(u32); i++, p++) {
-               status = ql_read_flash_word(qdev, i, p);
+               status = ql_read_flash_word(qdev, i+offset, p);
                if (status) {
                        QPRINTK(qdev, IFUP, ERR, "Error reading flash.\n");
                        goto exit;