mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-27 22:24:11 +08:00
SCSI fixes on 20230323
Four small fixes, three in drivers. The core fix adds a UFS device to an existing quirk to avoid a huge delay on boot. Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCZBzeWSYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishZ0DAP0f7AM7 fo9rUeihF0/eOGOWPuw83lUOl74g6yRkiCb3JQD+OBJO7k+0CwUqKdC1Nscfdq0K 67EApAuLsYw/PN9DaCM= =tnVs -----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: "Four small fixes, three in drivers. The core fix adds a UFS device to an existing quirk to avoid a huge delay on boot" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: scsi_dh_alua: Fix memleak for 'qdata' in alua_activate() scsi: qla2xxx: Synchronize the IOCB count to be in order scsi: qla2xxx: Perform lockless command completion in abort path scsi: core: Add BLIST_SKIP_VPD_PAGES for SKhynix H28U74301AMR
This commit is contained in:
commit
6dd74c51b4
@ -1145,10 +1145,12 @@ static int alua_activate(struct scsi_device *sdev,
|
||||
rcu_read_unlock();
|
||||
mutex_unlock(&h->init_mutex);
|
||||
|
||||
if (alua_rtpg_queue(pg, sdev, qdata, true))
|
||||
if (alua_rtpg_queue(pg, sdev, qdata, true)) {
|
||||
fn = NULL;
|
||||
else
|
||||
} else {
|
||||
kfree(qdata);
|
||||
err = SCSI_DH_DEV_OFFLINED;
|
||||
}
|
||||
kref_put(&pg->kref, release_port_group);
|
||||
out:
|
||||
if (fn)
|
||||
|
@ -1900,6 +1900,8 @@ qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func,
|
||||
}
|
||||
|
||||
req->outstanding_cmds[index] = NULL;
|
||||
|
||||
qla_put_fw_resources(sp->qpair, &sp->iores);
|
||||
return sp;
|
||||
}
|
||||
|
||||
@ -3112,7 +3114,6 @@ qla25xx_process_bidir_status_iocb(scsi_qla_host_t *vha, void *pkt,
|
||||
}
|
||||
bsg_reply->reply_payload_rcv_len = 0;
|
||||
|
||||
qla_put_fw_resources(sp->qpair, &sp->iores);
|
||||
done:
|
||||
/* Return the vendor specific reply to API */
|
||||
bsg_reply->reply_data.vendor_reply.vendor_rsp[0] = rval;
|
||||
|
@ -1865,6 +1865,17 @@ __qla2x00_abort_all_cmds(struct qla_qpair *qp, int res)
|
||||
for (cnt = 1; cnt < req->num_outstanding_cmds; cnt++) {
|
||||
sp = req->outstanding_cmds[cnt];
|
||||
if (sp) {
|
||||
/*
|
||||
* perform lockless completion during driver unload
|
||||
*/
|
||||
if (qla2x00_chip_is_down(vha)) {
|
||||
req->outstanding_cmds[cnt] = NULL;
|
||||
spin_unlock_irqrestore(qp->qp_lock_ptr, flags);
|
||||
sp->done(sp, res);
|
||||
spin_lock_irqsave(qp->qp_lock_ptr, flags);
|
||||
continue;
|
||||
}
|
||||
|
||||
switch (sp->cmd_type) {
|
||||
case TYPE_SRB:
|
||||
qla2x00_abort_srb(qp, sp, res, &flags);
|
||||
|
@ -234,6 +234,7 @@ static struct {
|
||||
{"SGI", "RAID5", "*", BLIST_SPARSELUN},
|
||||
{"SGI", "TP9100", "*", BLIST_REPORTLUN2},
|
||||
{"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||
{"SKhynix", "H28U74301AMR", NULL, BLIST_SKIP_VPD_PAGES},
|
||||
{"IBM", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||
{"SUN", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||
{"DELL", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
|
||||
|
Loading…
Reference in New Issue
Block a user