cnic: Fix bnx2x ring shutdown.
authorMichael Chan <mchan@broadcom.com>
Wed, 2 Dec 2009 15:15:36 +0000 (15:15 +0000)
committerDavid S. Miller <davem@davemloft.net>
Thu, 3 Dec 2009 03:57:20 +0000 (19:57 -0800)
Need to send a HALT command to the firmware to fully shutdown the bnx2x
rings.

Signed-off-by: Michael Chan <mchan@broadcom.com>
Signed-off-by: Benjamin Li <benli@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/cnic.c

index 10c5cc3563051e1ced151081b4a05cae9c8b050a..fb1cadb0e1f512c47ad87cb3f0c8c658db363f43 100644 (file)
@@ -4164,8 +4164,15 @@ static void cnic_shutdown_rings(struct cnic_dev *dev)
        } else if (test_bit(CNIC_F_BNX2X_CLASS, &dev->flags)) {
                struct cnic_local *cp = dev->cnic_priv;
                u32 cli = BNX2X_ISCSI_CL_ID(CNIC_E1HVN(cp));
+               union l5cm_specific_data l5_data;
 
                cnic_ring_ctl(dev, BNX2X_ISCSI_L2_CID, cli, 0);
+
+               l5_data.phy_address.lo = cli;
+               l5_data.phy_address.hi = 0;
+               cnic_submit_kwqe_16(dev, RAMROD_CMD_ID_ETH_HALT,
+                       BNX2X_ISCSI_L2_CID, ETH_CONNECTION_TYPE, &l5_data);
+               msleep(10);
        }
 }