bnx2x: Prevent false warning for lack of FC NPIV
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Tue, 15 Mar 2016 17:52:04 +0000 (19:52 +0200)
committerDavid S. Miller <davem@davemloft.net>
Fri, 18 Mar 2016 23:17:16 +0000 (19:17 -0400)
Not all adapters have FC-NPIV configured. If bnx2fc is used with such an
adapter, driver would read irrelevant data from the the nvram and log
"FC-NPIV table with bad length..." In system logs.

Simply accept that reading '0' as the feature offset in nvram indicates
the feature isn't there and return.

Reported-by: Andrew Patterson <andrew.patterson@hpe.com>
Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index b597c32275aa05797d3e9604a214577d623671d5..d465bd72114630ca2505c57e0c9f8f23ae7fcccc 100644 (file)
@@ -14885,6 +14885,10 @@ static int bnx2x_get_fc_npiv(struct net_device *dev,
        }
 
        offset = SHMEM2_RD(bp, fc_npiv_nvram_tbl_addr[BP_PORT(bp)]);
+       if (!offset) {
+               DP(BNX2X_MSG_MCP, "No FC-NPIV in NVRAM\n");
+               goto out;
+       }
        DP(BNX2X_MSG_MCP, "Offset of FC-NPIV in NVRAM: %08x\n", offset);
 
        /* Read the table contents from nvram */