Skip to content

Commit 6cbcc7a

Browse files
committed
Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull more SCSI updates from James Bottomley: "This series is all the stragglers that didn't quite make the first merge window pull. It's mostly minor updates and bug fixes of merge window code but it also has two driver updates: ufs and qla2xxx" * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (46 commits) scsi: scsi_debug: Don't call kcalloc() if size arg is zero scsi: core: Remove command size deduction from scsi_setup_scsi_cmnd() scsi: scsi_ioctl: Validate command size scsi: ufs: ufshpb: Properly handle max-single-cmd scsi: core: Avoid leaving shost->last_reset with stale value if EH does not run scsi: bsg: Fix errno when scsi_bsg_register_queue() fails scsi: sr: Remove duplicate assignment scsi: ufs: ufs-exynos: Introduce ExynosAuto v9 virtual host scsi: ufs: ufs-exynos: Multi-host configuration for ExynosAuto v9 scsi: ufs: ufs-exynos: Support ExynosAuto v9 UFS scsi: ufs: ufs-exynos: Add pre/post_hce_enable drv callbacks scsi: ufs: ufs-exynos: Factor out priv data init scsi: ufs: ufs-exynos: Add EXYNOS_UFS_OPT_SKIP_CONFIG_PHY_ATTR option scsi: ufs: ufs-exynos: Support custom version of ufs_hba_variant_ops scsi: ufs: ufs-exynos: Add setup_clocks callback scsi: ufs: ufs-exynos: Add refclkout_stop control scsi: ufs: ufs-exynos: Simplify drv_data retrieval scsi: ufs: ufs-exynos: Change pclk available max value scsi: ufs: Add quirk to enable host controller without PH configuration scsi: ufs: Add quirk to handle broken UIC command ...
2 parents 030c28a + 3344b58 commit 6cbcc7a

34 files changed

+915
-378
lines changed

drivers/scsi/elx/libefc_sli/sli4.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4145,7 +4145,7 @@ static int
41454145
sli_get_read_config(struct sli4 *sli4)
41464146
{
41474147
struct sli4_rsp_read_config *conf = sli4->bmbx.virt;
4148-
u32 i, total, total_size;
4148+
u32 i, total;
41494149
u32 *base;
41504150

41514151
if (sli_cmd_read_config(sli4, sli4->bmbx.virt)) {
@@ -4203,8 +4203,7 @@ sli_get_read_config(struct sli4 *sli4)
42034203

42044204
for (i = 0; i < SLI4_RSRC_MAX; i++) {
42054205
total = sli4->ext[i].number * sli4->ext[i].size;
4206-
total_size = BITS_TO_LONGS(total) * sizeof(long);
4207-
sli4->ext[i].use_map = kzalloc(total_size, GFP_KERNEL);
4206+
sli4->ext[i].use_map = bitmap_zalloc(total, GFP_KERNEL);
42084207
if (!sli4->ext[i].use_map) {
42094208
efc_log_err(sli4, "bitmap memory allocation failed %d\n",
42104209
i);
@@ -4743,7 +4742,7 @@ sli_reset(struct sli4 *sli4)
47434742
sli4->ext[0].base = NULL;
47444743

47454744
for (i = 0; i < SLI4_RSRC_MAX; i++) {
4746-
kfree(sli4->ext[i].use_map);
4745+
bitmap_free(sli4->ext[i].use_map);
47474746
sli4->ext[i].use_map = NULL;
47484747
sli4->ext[i].base = NULL;
47494748
}
@@ -4784,7 +4783,7 @@ sli_teardown(struct sli4 *sli4)
47844783
for (i = 0; i < SLI4_RSRC_MAX; i++) {
47854784
sli4->ext[i].base = NULL;
47864785

4787-
kfree(sli4->ext[i].use_map);
4786+
bitmap_free(sli4->ext[i].use_map);
47884787
sli4->ext[i].use_map = NULL;
47894788
}
47904789

drivers/scsi/hosts.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,6 +388,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
388388
shost->shost_state = SHOST_CREATED;
389389
INIT_LIST_HEAD(&shost->__devices);
390390
INIT_LIST_HEAD(&shost->__targets);
391+
INIT_LIST_HEAD(&shost->eh_abort_list);
391392
INIT_LIST_HEAD(&shost->eh_cmd_q);
392393
INIT_LIST_HEAD(&shost->starved_list);
393394
init_waitqueue_head(&shost->host_wait);

drivers/scsi/qla2xxx/qla_attr.c

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2762,7 +2762,12 @@ qla2x00_terminate_rport_io(struct fc_rport *rport)
27622762
if (fcport->loop_id != FC_NO_LOOP_ID)
27632763
fcport->logout_on_delete = 1;
27642764

2765-
qlt_schedule_sess_for_deletion(fcport);
2765+
if (!EDIF_NEGOTIATION_PENDING(fcport)) {
2766+
ql_dbg(ql_dbg_disc, fcport->vha, 0x911e,
2767+
"%s %d schedule session deletion\n", __func__,
2768+
__LINE__);
2769+
qlt_schedule_sess_for_deletion(fcport);
2770+
}
27662771
} else {
27672772
qla2x00_port_logout(fcport->vha, fcport);
27682773
}

drivers/scsi/qla2xxx/qla_def.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -639,9 +639,9 @@ struct qla_els_pt_arg {
639639
u8 els_opcode;
640640
u8 vp_idx;
641641
__le16 nport_handle;
642-
u16 control_flags;
642+
u16 control_flags, ox_id;
643643
__le32 rx_xchg_address;
644-
port_id_t did;
644+
port_id_t did, sid;
645645
u32 tx_len, tx_byte_count, rx_len, rx_byte_count;
646646
dma_addr_t tx_addr, rx_addr;
647647

0 commit comments

Comments
 (0)