diff options
author | Dmitry Kravkov <dmitry@broadcom.com> | 2011-03-31 20:04:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2011-03-31 20:04:22 -0400 |
commit | fab0dc89f0d98459c6ce7fa27422949ac15837fa (patch) | |
tree | cd7d169e81ff9028d746f2540302d677b17f30cf /drivers/net/bnx2x/bnx2x_dcb.c | |
parent | 3b7f817e47bb66ae4d82ed73689a521af70a5410 (diff) |
bnx2x, cnic: Disable iSCSI if DCBX negotiation is successful
With current bnx2x firmware 6.2.9, iSCSI is not supported in DCB
network, so we need to disable it. Add cnic command to disconnect
iSCSI connections and prevent future connections when DCBX negotiation
succeeds.
Signed-off-by: Dmitry Kravkov <dmitry@broadcom.com>
Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/bnx2x/bnx2x_dcb.c')
-rw-r--r-- | drivers/net/bnx2x/bnx2x_dcb.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/drivers/net/bnx2x/bnx2x_dcb.c b/drivers/net/bnx2x/bnx2x_dcb.c index 9a24d79c71d9..1214907d00d9 100644 --- a/drivers/net/bnx2x/bnx2x_dcb.c +++ b/drivers/net/bnx2x/bnx2x_dcb.c | |||
@@ -571,6 +571,28 @@ void bnx2x_dcbx_set_params(struct bnx2x *bp, u32 state) | |||
571 | { | 571 | { |
572 | switch (state) { | 572 | switch (state) { |
573 | case BNX2X_DCBX_STATE_NEG_RECEIVED: | 573 | case BNX2X_DCBX_STATE_NEG_RECEIVED: |
574 | #ifdef BCM_CNIC | ||
575 | if (bp->state != BNX2X_STATE_OPENING_WAIT4_LOAD) { | ||
576 | struct cnic_ops *c_ops; | ||
577 | struct cnic_eth_dev *cp = &bp->cnic_eth_dev; | ||
578 | bp->flags |= NO_ISCSI_OOO_FLAG | NO_ISCSI_FLAG; | ||
579 | cp->drv_state |= CNIC_DRV_STATE_NO_ISCSI_OOO; | ||
580 | cp->drv_state |= CNIC_DRV_STATE_NO_ISCSI; | ||
581 | |||
582 | rcu_read_lock(); | ||
583 | c_ops = rcu_dereference(bp->cnic_ops); | ||
584 | if (c_ops) { | ||
585 | bnx2x_cnic_notify(bp, CNIC_CTL_STOP_ISCSI_CMD); | ||
586 | rcu_read_unlock(); | ||
587 | return; | ||
588 | } | ||
589 | rcu_read_unlock(); | ||
590 | } | ||
591 | |||
592 | /* fall through if no CNIC initialized */ | ||
593 | case BNX2X_DCBX_STATE_ISCSI_STOPPED: | ||
594 | #endif | ||
595 | |||
574 | { | 596 | { |
575 | DP(NETIF_MSG_LINK, "BNX2X_DCBX_STATE_NEG_RECEIVED\n"); | 597 | DP(NETIF_MSG_LINK, "BNX2X_DCBX_STATE_NEG_RECEIVED\n"); |
576 | #ifdef BCM_DCBNL | 598 | #ifdef BCM_DCBNL |