bnx2x: Add support for single-port DCBx
authorYuval Mintz <Yuval.Mintz@qlogic.com>
Tue, 16 Feb 2016 16:07:59 +0000 (18:07 +0200)
committerDavid S. Miller <davem@davemloft.net>
Wed, 17 Feb 2016 01:12:16 +0000 (20:12 -0500)
Driver is currently looking at shared information for determining whether
DCBx can be supported for a given port.
On 4-port devices, up-to-date management firmware can support DCBx on
each port of a given engine independently - but that would cause bnx2x to
misinterpert the support and assume DCBx is supported on both.

Signed-off-by: Yuval Mintz <Yuval.Mintz@qlogic.com>
Signed-off-by: Ariel Elior <Ariel.Elior@qlogic.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnx2x/bnx2x_main.c

index 5d6b2d9..c584525 100644 (file)
@@ -12429,8 +12429,10 @@ static int bnx2x_init_bp(struct bnx2x *bp)
 
        if (SHMEM2_HAS(bp, dcbx_lldp_params_offset) &&
            SHMEM2_HAS(bp, dcbx_lldp_dcbx_stat_offset) &&
+           SHMEM2_HAS(bp, dcbx_en) &&
            SHMEM2_RD(bp, dcbx_lldp_params_offset) &&
-           SHMEM2_RD(bp, dcbx_lldp_dcbx_stat_offset)) {
+           SHMEM2_RD(bp, dcbx_lldp_dcbx_stat_offset) &&
+           SHMEM2_RD(bp, dcbx_en[BP_PORT(bp)])) {
                bnx2x_dcbx_set_state(bp, true, BNX2X_DCBX_ENABLED_ON_NEG_ON);
                bnx2x_dcbx_init_params(bp);
        } else {