Skip to content

Commit 6dd74c5

Browse files
committed
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
2 parents 1e760fa + a13faca commit 6dd74c5

File tree

4 files changed

+18
-3
lines changed

4 files changed

+18
-3
lines changed

drivers/scsi/device_handler/scsi_dh_alua.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,10 +1145,12 @@ static int alua_activate(struct scsi_device *sdev,
11451145
rcu_read_unlock();
11461146
mutex_unlock(&h->init_mutex);
11471147

1148-
if (alua_rtpg_queue(pg, sdev, qdata, true))
1148+
if (alua_rtpg_queue(pg, sdev, qdata, true)) {
11491149
fn = NULL;
1150-
else
1150+
} else {
1151+
kfree(qdata);
11511152
err = SCSI_DH_DEV_OFFLINED;
1153+
}
11521154
kref_put(&pg->kref, release_port_group);
11531155
out:
11541156
if (fn)

drivers/scsi/qla2xxx/qla_isr.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1900,6 +1900,8 @@ qla2x00_get_sp_from_handle(scsi_qla_host_t *vha, const char *func,
19001900
}
19011901

19021902
req->outstanding_cmds[index] = NULL;
1903+
1904+
qla_put_fw_resources(sp->qpair, &sp->iores);
19031905
return sp;
19041906
}
19051907

@@ -3112,7 +3114,6 @@ qla25xx_process_bidir_status_iocb(scsi_qla_host_t *vha, void *pkt,
31123114
}
31133115
bsg_reply->reply_payload_rcv_len = 0;
31143116

3115-
qla_put_fw_resources(sp->qpair, &sp->iores);
31163117
done:
31173118
/* Return the vendor specific reply to API */
31183119
bsg_reply->reply_data.vendor_reply.vendor_rsp[0] = rval;

drivers/scsi/qla2xxx/qla_os.c

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1865,6 +1865,17 @@ __qla2x00_abort_all_cmds(struct qla_qpair *qp, int res)
18651865
for (cnt = 1; cnt < req->num_outstanding_cmds; cnt++) {
18661866
sp = req->outstanding_cmds[cnt];
18671867
if (sp) {
1868+
/*
1869+
* perform lockless completion during driver unload
1870+
*/
1871+
if (qla2x00_chip_is_down(vha)) {
1872+
req->outstanding_cmds[cnt] = NULL;
1873+
spin_unlock_irqrestore(qp->qp_lock_ptr, flags);
1874+
sp->done(sp, res);
1875+
spin_lock_irqsave(qp->qp_lock_ptr, flags);
1876+
continue;
1877+
}
1878+
18681879
switch (sp->cmd_type) {
18691880
case TYPE_SRB:
18701881
qla2x00_abort_srb(qp, sp, res, &flags);

drivers/scsi/scsi_devinfo.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -234,6 +234,7 @@ static struct {
234234
{"SGI", "RAID5", "*", BLIST_SPARSELUN},
235235
{"SGI", "TP9100", "*", BLIST_REPORTLUN2},
236236
{"SGI", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
237+
{"SKhynix", "H28U74301AMR", NULL, BLIST_SKIP_VPD_PAGES},
237238
{"IBM", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
238239
{"SUN", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},
239240
{"DELL", "Universal Xport", "*", BLIST_NO_ULD_ATTACH},

0 commit comments

Comments
 (0)