diff options
author | Arun Easi <arun.easi@qlogic.com> | 2013-01-30 03:34:41 -0500 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2013-02-22 07:05:51 -0500 |
commit | 33c36c0a556c307a2430e92148d5e8d5a84d29df (patch) | |
tree | c089b16a8715aebc677eeedcf55cf22bffde05d0 | |
parent | b8aa4bdfe13ac3ff51af5d8f79ae0adc20405215 (diff) |
[SCSI] qla2xxx: Prevent enabling target mode for unsupported HBAs.
Signed-off-by: Arun Easi <arun.easi@qlogic.com>
Signed-off-by: Saurav Kashyap <saurav.kashyap@qlogic.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/scsi/qla2xxx/qla_dbg.c | 2 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_def.h | 1 | ||||
-rw-r--r-- | drivers/scsi/qla2xxx/qla_target.c | 6 |
3 files changed, 8 insertions, 1 deletions
diff --git a/drivers/scsi/qla2xxx/qla_dbg.c b/drivers/scsi/qla2xxx/qla_dbg.c index e690d052246a..f81e9385896f 100644 --- a/drivers/scsi/qla2xxx/qla_dbg.c +++ b/drivers/scsi/qla2xxx/qla_dbg.c | |||
@@ -38,7 +38,7 @@ | |||
38 | * | ISP82XX Specific | 0xb084 | 0xb002,0xb024 | | 38 | * | ISP82XX Specific | 0xb084 | 0xb002,0xb024 | |
39 | * | MultiQ | 0xc00c | | | 39 | * | MultiQ | 0xc00c | | |
40 | * | Misc | 0xd010 | | | 40 | * | Misc | 0xd010 | | |
41 | * | Target Mode | 0xe06f | | | 41 | * | Target Mode | 0xe070 | | |
42 | * | Target Mode Management | 0xf072 | | | 42 | * | Target Mode Management | 0xf072 | | |
43 | * | Target Mode Task Management | 0x1000b | | | 43 | * | Target Mode Task Management | 0x1000b | | |
44 | * ---------------------------------------------------------------------- | 44 | * ---------------------------------------------------------------------- |
diff --git a/drivers/scsi/qla2xxx/qla_def.h b/drivers/scsi/qla2xxx/qla_def.h index b5fc478e90c1..5c42c9162026 100644 --- a/drivers/scsi/qla2xxx/qla_def.h +++ b/drivers/scsi/qla2xxx/qla_def.h | |||
@@ -2798,6 +2798,7 @@ struct qla_hw_data { | |||
2798 | #define IS_PI_SPLIT_DET_CAPABLE(ha) (IS_PI_SPLIT_DET_CAPABLE_HBA(ha) && \ | 2798 | #define IS_PI_SPLIT_DET_CAPABLE(ha) (IS_PI_SPLIT_DET_CAPABLE_HBA(ha) && \ |
2799 | (((ha)->fw_attributes_h << 16 | (ha)->fw_attributes) & BIT_22)) | 2799 | (((ha)->fw_attributes_h << 16 | (ha)->fw_attributes) & BIT_22)) |
2800 | #define IS_ATIO_MSIX_CAPABLE(ha) (IS_QLA83XX(ha)) | 2800 | #define IS_ATIO_MSIX_CAPABLE(ha) (IS_QLA83XX(ha)) |
2801 | #define IS_TGT_MODE_CAPABLE(ha) (ha->tgt.atio_q_length) | ||
2801 | 2802 | ||
2802 | /* HBA serial number */ | 2803 | /* HBA serial number */ |
2803 | uint8_t serial0; | 2804 | uint8_t serial0; |
diff --git a/drivers/scsi/qla2xxx/qla_target.c b/drivers/scsi/qla2xxx/qla_target.c index cb8ea4463886..61b5d8c2b5da 100644 --- a/drivers/scsi/qla2xxx/qla_target.c +++ b/drivers/scsi/qla2xxx/qla_target.c | |||
@@ -4306,6 +4306,12 @@ int qlt_add_target(struct qla_hw_data *ha, struct scsi_qla_host *base_vha) | |||
4306 | if (!QLA_TGT_MODE_ENABLED()) | 4306 | if (!QLA_TGT_MODE_ENABLED()) |
4307 | return 0; | 4307 | return 0; |
4308 | 4308 | ||
4309 | if (!IS_TGT_MODE_CAPABLE(ha)) { | ||
4310 | ql_log(ql_log_warn, base_vha, 0xe070, | ||
4311 | "This adapter does not support target mode.\n"); | ||
4312 | return 0; | ||
4313 | } | ||
4314 | |||
4309 | ql_dbg(ql_dbg_tgt, base_vha, 0xe03b, | 4315 | ql_dbg(ql_dbg_tgt, base_vha, 0xe03b, |
4310 | "Registering target for host %ld(%p)", base_vha->host_no, ha); | 4316 | "Registering target for host %ld(%p)", base_vha->host_no, ha); |
4311 | 4317 | ||