]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
qla2xxx: Remove aborting ELS IOCB call issued as part of timeout.
authorGiridhar Malavali <giridhar.malavali@cavium.com>
Thu, 2 Nov 2017 19:20:32 +0000 (12:20 -0700)
committerSomasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Fri, 5 Jan 2018 21:05:17 +0000 (13:05 -0800)
Orabug: 27235104

This fix the spinlock recursion issue seen while unloading the driver.

14 [ffff9f2e21e03db8] native_queued_spin_lock_slowpath at ffffffffad0d8802
15 [ffff9f2e21e03dc0] do_raw_spin_lock at ffffffffad0d99e4
16 [ffff9f2e21e03dd8] _raw_spin_lock_irqsave at ffffffffad652471
17 [ffff9f2e21e03e00] qla2x00_els_dcmd_iocb_timeout at ffffffffc070cd63
18 [ffff9f2e21e03e40] qla2x00_sp_timeout at ffffffffc06f06d3 [qla2xxx]
19 [ffff9f2e21e03e68] call_timer_fn at ffffffffad0f97d8
20 [ffff9f2e21e03ed8] run_timer_softirq at ffffffffad0faf47
21 [ffff9f2e21e03f68] __softirqentry_text_start at ffffffffad655f32

Fixes: 6eb54715b54bb ("qla2xxx: Added interface to send explicit LOGO.")
Cc: <stable@vger.kernel.org> # 4.10+
Signed-off-by: Giridhar Malavali <giridhar.malavali@cavium.com>
Signed-off-by: Himanshu Madhani <himanshu.madhani@cavium.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
[ Upstream commit bf07ef86e882013522876f7c834c8eea085f35b4 ]
Signed-off-by: Somasundaram Krishnasamy <somasundaram.krishnasamy@oracle.com>
Reviewed-by: Jack Vogel <jack.vogel@oracle.com>
drivers/scsi/qla2xxx/qla_iocb.c

index 27bd961ce7a6e4df42475bd130ed55b364b09eca..7dc213ceee581ae40bc2dc5a56780fabb4f8ab24 100644 (file)
@@ -2367,7 +2367,6 @@ qla2x00_els_dcmd_iocb_timeout(void *data)
        srb_t *sp = data;
        fc_port_t *fcport = sp->fcport;
        struct scsi_qla_host *vha = sp->vha;
-       struct qla_hw_data *ha = vha->hw;
        struct srb_iocb *lio = &sp->u.iocb_cmd;
 
        ql_dbg(ql_dbg_io, vha, 0x3069,
@@ -2375,15 +2374,6 @@ qla2x00_els_dcmd_iocb_timeout(void *data)
            sp->name, sp->handle, fcport->d_id.b.domain, fcport->d_id.b.area,
            fcport->d_id.b.al_pa);
 
-       /* Abort the exchange */
-       if (ha->isp_ops->abort_command(sp)) {
-               ql_dbg(ql_dbg_io, vha, 0x3070,
-                   "mbx abort_command failed.\n");
-       } else {
-               ql_dbg(ql_dbg_io, vha, 0x3071,
-                   "mbx abort_command success.\n");
-       }
-
        complete(&lio->u.els_logo.comp);
 }