summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/be2iscsi/be_main.h
diff options
context:
space:
mode:
authorJayamohan Kallickal2013-09-29 00:35:48 +0200
committerJames Bottomley2013-10-25 10:58:07 +0200
commit4eea99d55da137c1f5aaccba7c24539e6467305d (patch)
treefb64f8883219b696ce833ee46dc9a36d2077a876 /drivers/scsi/be2iscsi/be_main.h
parent[SCSI] be2iscsi: Fix SGL Initilization and posting Pages for Dual Chute (diff)
downloadkernel-qcow2-linux-4eea99d55da137c1f5aaccba7c24539e6467305d.tar.gz
kernel-qcow2-linux-4eea99d55da137c1f5aaccba7c24539e6467305d.tar.xz
kernel-qcow2-linux-4eea99d55da137c1f5aaccba7c24539e6467305d.zip
[SCSI] be2iscsi: Fix WRB_Q posting to support Dual Chute mode
Configuration parameters return number of CID each chute supports. The WRB_Q is created for the passed CID count. If both the Chute has iSCSI Protocol then WRB_Q creation is in a round robin mechanism. For BE-X family iSCSI protocol is loaded only on single chute. Signed-off-by: John Soni Jose <sony.john-n@emulex.com> Signed-off-by: Jayamohan Kallickal <jayamohan.kallickal@emulex.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/be2iscsi/be_main.h')
-rw-r--r--drivers/scsi/be2iscsi/be_main.h35
1 files changed, 19 insertions, 16 deletions
diff --git a/drivers/scsi/be2iscsi/be_main.h b/drivers/scsi/be2iscsi/be_main.h
index bb96ba4f6468..410efc72bfd9 100644
--- a/drivers/scsi/be2iscsi/be_main.h
+++ b/drivers/scsi/be2iscsi/be_main.h
@@ -34,7 +34,6 @@
#include <scsi/libiscsi.h>
#include <scsi/scsi_transport_iscsi.h>
-#include "be.h"
#define DRV_NAME "be2iscsi"
#define BUILD_STR "10.0.467.0"
#define BE_NAME "Emulex OneConnect" \
@@ -280,6 +279,25 @@ struct invalidate_command_table {
unsigned short cid;
} __packed;
+#define BEISCSI_GET_ULP_FROM_CRI(phwi_ctrlr, cri) \
+ (phwi_ctrlr->wrb_context[cri].ulp_num)
+struct hwi_wrb_context {
+ struct list_head wrb_handle_list;
+ struct list_head wrb_handle_drvr_list;
+ struct wrb_handle **pwrb_handle_base;
+ struct wrb_handle **pwrb_handle_basestd;
+ struct iscsi_wrb *plast_wrb;
+ unsigned short alloc_index;
+ unsigned short free_index;
+ unsigned short wrb_handles_available;
+ unsigned short cid;
+ uint8_t ulp_num; /* ULP to which CID binded */
+ uint16_t register_set;
+ uint16_t doorbell_format;
+ uint32_t doorbell_offset;
+};
+
+#include "be.h"
#define chip_be2(phba) (phba->generation == BE_GEN2)
#define chip_be3_r(phba) (phba->generation == BE_GEN3)
#define is_chip_be2_be3r(phba) (chip_be3_r(phba) || (chip_be2(phba)))
@@ -955,21 +973,6 @@ struct be_ring {
*/
};
-#define BEISCSI_GET_ULP_FROM_CRI(phwi_ctrlr, cri) \
- (phwi_ctrlr->wrb_context[cri].ulp_num)
-struct hwi_wrb_context {
- struct list_head wrb_handle_list;
- struct list_head wrb_handle_drvr_list;
- struct wrb_handle **pwrb_handle_base;
- struct wrb_handle **pwrb_handle_basestd;
- struct iscsi_wrb *plast_wrb;
- unsigned short alloc_index;
- unsigned short free_index;
- unsigned short wrb_handles_available;
- unsigned short cid;
- uint8_t ulp_num; /* ULP to which CID binded */
-};
-
struct hwi_controller {
struct list_head io_sgl_list;
struct list_head eh_sgl_list;