SCSI fixes on 20220319
Two small(ish) fixes, both in drivers. Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCYjYy2SYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishZEpAQDQ+I9z +PAJL1FBBaydO0VsuScxzTbi/fT3CR0ZcmgyjwD7BrPMfM9N+Kg/SAflMVlDSnHP FXh2d/cQfz30iSdV/nc= =ytm1 -----END PGP SIGNATURE----- Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi Pull SCSI fixes from James Bottomley: "Two small(ish) fixes, both in drivers" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: fnic: Finish scsi_cmnd before dropping the spinlock scsi: mpt3sas: Page fault in reply q processing
This commit is contained in:
commit
f76da4d5ad
|
@ -986,8 +986,6 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
|
|||
CMD_SP(sc) = NULL;
|
||||
CMD_FLAGS(sc) |= FNIC_IO_DONE;
|
||||
|
||||
spin_unlock_irqrestore(io_lock, flags);
|
||||
|
||||
if (hdr_status != FCPIO_SUCCESS) {
|
||||
atomic64_inc(&fnic_stats->io_stats.io_failures);
|
||||
shost_printk(KERN_ERR, fnic->lport->host, "hdr status = %s\n",
|
||||
|
@ -996,8 +994,6 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
|
|||
|
||||
fnic_release_ioreq_buf(fnic, io_req, sc);
|
||||
|
||||
mempool_free(io_req, fnic->io_req_pool);
|
||||
|
||||
cmd_trace = ((u64)hdr_status << 56) |
|
||||
(u64)icmnd_cmpl->scsi_status << 48 |
|
||||
(u64)icmnd_cmpl->flags << 40 | (u64)sc->cmnd[0] << 32 |
|
||||
|
@ -1021,6 +1017,12 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
|
|||
} else
|
||||
fnic->lport->host_stats.fcp_control_requests++;
|
||||
|
||||
/* Call SCSI completion function to complete the IO */
|
||||
scsi_done(sc);
|
||||
spin_unlock_irqrestore(io_lock, flags);
|
||||
|
||||
mempool_free(io_req, fnic->io_req_pool);
|
||||
|
||||
atomic64_dec(&fnic_stats->io_stats.active_ios);
|
||||
if (atomic64_read(&fnic->io_cmpl_skip))
|
||||
atomic64_dec(&fnic->io_cmpl_skip);
|
||||
|
@ -1049,9 +1051,6 @@ static void fnic_fcpio_icmnd_cmpl_handler(struct fnic *fnic,
|
|||
if(io_duration_time > atomic64_read(&fnic_stats->io_stats.current_max_io_time))
|
||||
atomic64_set(&fnic_stats->io_stats.current_max_io_time, io_duration_time);
|
||||
}
|
||||
|
||||
/* Call SCSI completion function to complete the IO */
|
||||
scsi_done(sc);
|
||||
}
|
||||
|
||||
/* fnic_fcpio_itmf_cmpl_handler
|
||||
|
|
|
@ -2011,9 +2011,10 @@ mpt3sas_base_sync_reply_irqs(struct MPT3SAS_ADAPTER *ioc, u8 poll)
|
|||
enable_irq(reply_q->os_irq);
|
||||
}
|
||||
}
|
||||
|
||||
if (poll)
|
||||
_base_process_reply_queue(reply_q);
|
||||
}
|
||||
if (poll)
|
||||
_base_process_reply_queue(reply_q);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue