#include "bnx2_fw.h"
 
 #define DRV_MODULE_NAME                "bnx2"
-#define DRV_MODULE_VERSION     "2.1.6"
-#define DRV_MODULE_RELDATE     "Mar 7, 2011"
+#define DRV_MODULE_VERSION     "2.1.10"
+#define DRV_MODULE_RELDATE     "July 12, 2011"
 #define FW_MIPS_FILE_06                "bnx2/bnx2-mips-06-6.2.1.fw"
 #define FW_RV2P_FILE_06                "bnx2/bnx2-rv2p-06-6.0.15.fw"
 #define FW_MIPS_FILE_09                "bnx2/bnx2-mips-09-6.2.1a.fw"
        if (cp->drv_state & CNIC_DRV_STATE_REGD)
                return -EBUSY;
 
+       if (!bnx2_reg_rd_ind(bp, BNX2_FW_MAX_ISCSI_CONN))
+               return -ENODEV;
+
        bp->cnic_data = data;
        rcu_assign_pointer(bp->cnic_ops, ops);
 
        bp->timer.function = bnx2_timer;
 
 #ifdef BCM_CNIC
-       bp->cnic_eth_dev.max_iscsi_conn =
-               bnx2_reg_rd_ind(bp, BNX2_FW_MAX_ISCSI_CONN);
+       if (bnx2_shmem_rd(bp, BNX2_ISCSI_INITIATOR) & BNX2_ISCSI_INITIATOR_EN)
+               bp->cnic_eth_dev.max_iscsi_conn =
+                       (bnx2_shmem_rd(bp, BNX2_ISCSI_MAX_CONN) &
+                        BNX2_ISCSI_MAX_CONN_MASK) >> BNX2_ISCSI_MAX_CONN_SHIFT;
 #endif
        pci_save_state(pdev);
 
 
 #define BNX2_RPHY_SERDES_LINK                  0x374
 #define BNX2_RPHY_COPPER_LINK                  0x378
 
+#define BNX2_ISCSI_INITIATOR                   0x3dc
+#define BNX2_ISCSI_INITIATOR_EN                         0x00080000
+
+#define BNX2_ISCSI_MAX_CONN                    0x3e4
+#define BNX2_ISCSI_MAX_CONN_MASK                0xffff0000
+#define BNX2_ISCSI_MAX_CONN_SHIFT               16
+
 #define HOST_VIEW_SHMEM_BASE                   0x167c00
 
 #define DP_SHMEM_LINE(bp, offset)                                      \