summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoe Lawrence2014-08-26 23:11:18 +0200
committerChristoph Hellwig2014-09-16 18:09:59 +0200
commit1a2fbf185cce45b80cfdb441fb6651c07915ddb1 (patch)
treedc054a6febab0d1f939ab2df1b0c086d0f3d2147
parentqla2xxx: Fix shost use-after-free on device removal (diff)
downloadkernel-qcow2-linux-1a2fbf185cce45b80cfdb441fb6651c07915ddb1.tar.gz
kernel-qcow2-linux-1a2fbf185cce45b80cfdb441fb6651c07915ddb1.tar.xz
kernel-qcow2-linux-1a2fbf185cce45b80cfdb441fb6651c07915ddb1.zip
qla2xxx: Use qla2x00_clear_drv_active on probe failure
Take advantage of commit fe1b806f4f71 ("qla2xxx: Refactor shutdown code so some functionality can be reused") to remove an inlined copy of qla2x00_clear_drv_active in the driver's probe hardware error path. Signed-off-by: Joe Lawrence <joe.lawrence@stratus.com> Acked-by: Chad Dupuis <chad.dupuis@qlogic.com> Signed-off-by: Christoph Hellwig <hch@lst.de>
-rw-r--r--drivers/scsi/qla2xxx/qla_os.c13
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
index 8252c0e6682c..53449d7eab91 100644
--- a/drivers/scsi/qla2xxx/qla_os.c
+++ b/drivers/scsi/qla2xxx/qla_os.c
@@ -238,6 +238,7 @@ static int qla2xxx_eh_host_reset(struct scsi_cmnd *);
static int qla2x00_change_queue_depth(struct scsi_device *, int, int);
static int qla2x00_change_queue_type(struct scsi_device *, int);
+static void qla2x00_clear_drv_active(struct qla_hw_data *);
static void qla2x00_free_device(scsi_qla_host_t *);
struct scsi_host_template qla2xxx_driver_template = {
@@ -2954,16 +2955,8 @@ probe_failed:
scsi_host_put(base_vha->host);
probe_hw_failed:
- if (IS_QLA82XX(ha)) {
- qla82xx_idc_lock(ha);
- qla82xx_clear_drv_active(ha);
- qla82xx_idc_unlock(ha);
- }
- if (IS_QLA8044(ha)) {
- qla8044_idc_lock(ha);
- qla8044_clear_drv_active(ha);
- qla8044_idc_unlock(ha);
- }
+ qla2x00_clear_drv_active(ha);
+
iospace_config_failed:
if (IS_P3P_TYPE(ha)) {
if (!ha->nx_pcibase)