Merge tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi
Pull SCSI fixes from James Bottomley: "This is mostly a set of minor and obvious fixes (three in one of the new drivers). The only substantial change is to move the ufs to the blk-mq now that the merge window fixed the suspend/resume issues with blk-mq" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: qla2xxx: Initialize port speed to avoid setting lower speed Revert "scsi: ufs: Disable blk-mq for now" scsi: NCR5380: Return false instead of NULL scsi: qla2xxx: Fix a typo in MODULE_PARM_DESC scsi: hisi_sas: Remove set but not used variable 'dq_list' scsi: myrs: only build on little-endian platforms scsi: myrs: avoid stack overflow warning scsi: lpfc: fix remoteport access scsi: myrb: fix sprintf buffer overflow warning scsi: target/core: Avoid that a kernel oops is triggered when COMPARE AND WRITE fails
This commit is contained in:
@@ -578,6 +578,7 @@ config SCSI_MYRB
|
||||
config SCSI_MYRS
|
||||
tristate "Mylex DAC960/DAC1100 PCI RAID Controller (SCSI Interface)"
|
||||
depends on PCI
|
||||
depends on !CPU_BIG_ENDIAN || COMPILE_TEST
|
||||
select RAID_ATTRS
|
||||
help
|
||||
This driver adds support for the Mylex DAC960, AcceleRAID, and
|
||||
|
||||
@@ -1198,7 +1198,7 @@ static bool NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd)
|
||||
|
||||
out:
|
||||
if (!hostdata->selecting)
|
||||
return NULL;
|
||||
return false;
|
||||
hostdata->selecting = NULL;
|
||||
return ret;
|
||||
}
|
||||
|
||||
@@ -904,11 +904,9 @@ static void start_delivery_v1_hw(struct hisi_sas_dq *dq)
|
||||
{
|
||||
struct hisi_hba *hisi_hba = dq->hisi_hba;
|
||||
struct hisi_sas_slot *s, *s1, *s2 = NULL;
|
||||
struct list_head *dq_list;
|
||||
int dlvry_queue = dq->id;
|
||||
int wp;
|
||||
|
||||
dq_list = &dq->list;
|
||||
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
|
||||
if (!s->ready)
|
||||
break;
|
||||
|
||||
@@ -1670,11 +1670,9 @@ static void start_delivery_v2_hw(struct hisi_sas_dq *dq)
|
||||
{
|
||||
struct hisi_hba *hisi_hba = dq->hisi_hba;
|
||||
struct hisi_sas_slot *s, *s1, *s2 = NULL;
|
||||
struct list_head *dq_list;
|
||||
int dlvry_queue = dq->id;
|
||||
int wp;
|
||||
|
||||
dq_list = &dq->list;
|
||||
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
|
||||
if (!s->ready)
|
||||
break;
|
||||
|
||||
@@ -886,11 +886,9 @@ static void start_delivery_v3_hw(struct hisi_sas_dq *dq)
|
||||
{
|
||||
struct hisi_hba *hisi_hba = dq->hisi_hba;
|
||||
struct hisi_sas_slot *s, *s1, *s2 = NULL;
|
||||
struct list_head *dq_list;
|
||||
int dlvry_queue = dq->id;
|
||||
int wp;
|
||||
|
||||
dq_list = &dq->list;
|
||||
list_for_each_entry_safe(s, s1, &dq->list, delivery) {
|
||||
if (!s->ready)
|
||||
break;
|
||||
|
||||
@@ -698,6 +698,8 @@ lpfc_debugfs_nodelist_data(struct lpfc_vport *vport, char *buf, int size)
|
||||
rport = lpfc_ndlp_get_nrport(ndlp);
|
||||
if (rport)
|
||||
nrport = rport->remoteport;
|
||||
else
|
||||
nrport = NULL;
|
||||
spin_unlock(&phba->hbalock);
|
||||
if (!nrport)
|
||||
continue;
|
||||
|
||||
@@ -1049,7 +1049,8 @@ static int myrb_get_hba_config(struct myrb_hba *cb)
|
||||
enquiry2->fw.firmware_type = '0';
|
||||
enquiry2->fw.turn_id = 0;
|
||||
}
|
||||
sprintf(cb->fw_version, "%d.%02d-%c-%02d",
|
||||
snprintf(cb->fw_version, sizeof(cb->fw_version),
|
||||
"%d.%02d-%c-%02d",
|
||||
enquiry2->fw.major_version,
|
||||
enquiry2->fw.minor_version,
|
||||
enquiry2->fw.firmware_type,
|
||||
|
||||
@@ -163,9 +163,12 @@ static unsigned char myrs_get_ctlr_info(struct myrs_hba *cs)
|
||||
dma_addr_t ctlr_info_addr;
|
||||
union myrs_sgl *sgl;
|
||||
unsigned char status;
|
||||
struct myrs_ctlr_info old;
|
||||
unsigned short ldev_present, ldev_critical, ldev_offline;
|
||||
|
||||
ldev_present = cs->ctlr_info->ldev_present;
|
||||
ldev_critical = cs->ctlr_info->ldev_critical;
|
||||
ldev_offline = cs->ctlr_info->ldev_offline;
|
||||
|
||||
memcpy(&old, cs->ctlr_info, sizeof(struct myrs_ctlr_info));
|
||||
ctlr_info_addr = dma_map_single(&cs->pdev->dev, cs->ctlr_info,
|
||||
sizeof(struct myrs_ctlr_info),
|
||||
DMA_FROM_DEVICE);
|
||||
@@ -198,9 +201,9 @@ static unsigned char myrs_get_ctlr_info(struct myrs_hba *cs)
|
||||
cs->ctlr_info->rbld_active +
|
||||
cs->ctlr_info->exp_active != 0)
|
||||
cs->needs_update = true;
|
||||
if (cs->ctlr_info->ldev_present != old.ldev_present ||
|
||||
cs->ctlr_info->ldev_critical != old.ldev_critical ||
|
||||
cs->ctlr_info->ldev_offline != old.ldev_offline)
|
||||
if (cs->ctlr_info->ldev_present != ldev_present ||
|
||||
cs->ctlr_info->ldev_critical != ldev_critical ||
|
||||
cs->ctlr_info->ldev_offline != ldev_offline)
|
||||
shost_printk(KERN_INFO, cs->host,
|
||||
"Logical drive count changes (%d/%d/%d)\n",
|
||||
cs->ctlr_info->ldev_critical,
|
||||
|
||||
@@ -4763,6 +4763,7 @@ qla2x00_alloc_fcport(scsi_qla_host_t *vha, gfp_t flags)
|
||||
fcport->loop_id = FC_NO_LOOP_ID;
|
||||
qla2x00_set_fcport_state(fcport, FCS_UNCONFIGURED);
|
||||
fcport->supported_classes = FC_COS_UNSPECIFIED;
|
||||
fcport->fp_speed = PORT_SPEED_UNKNOWN;
|
||||
|
||||
fcport->ct_desc.ct_sns = dma_alloc_coherent(&vha->hw->pdev->dev,
|
||||
sizeof(struct ct_sns_pkt), &fcport->ct_desc.ct_sns_dma,
|
||||
|
||||
@@ -67,7 +67,7 @@ module_param(ql2xplogiabsentdevice, int, S_IRUGO|S_IWUSR);
|
||||
MODULE_PARM_DESC(ql2xplogiabsentdevice,
|
||||
"Option to enable PLOGI to devices that are not present after "
|
||||
"a Fabric scan. This is needed for several broken switches. "
|
||||
"Default is 0 - no PLOGI. 1 - perfom PLOGI.");
|
||||
"Default is 0 - no PLOGI. 1 - perform PLOGI.");
|
||||
|
||||
int ql2xloginretrycount = 0;
|
||||
module_param(ql2xloginretrycount, int, S_IRUGO);
|
||||
|
||||
@@ -8099,13 +8099,6 @@ int ufshcd_alloc_host(struct device *dev, struct ufs_hba **hba_handle)
|
||||
err = -ENOMEM;
|
||||
goto out_error;
|
||||
}
|
||||
|
||||
/*
|
||||
* Do not use blk-mq at this time because blk-mq does not support
|
||||
* runtime pm.
|
||||
*/
|
||||
host->use_blk_mq = false;
|
||||
|
||||
hba = shost_priv(host);
|
||||
hba->host = host;
|
||||
hba->dev = dev;
|
||||
|
||||
@@ -1778,7 +1778,7 @@ EXPORT_SYMBOL(target_submit_tmr);
|
||||
void transport_generic_request_failure(struct se_cmd *cmd,
|
||||
sense_reason_t sense_reason)
|
||||
{
|
||||
int ret = 0;
|
||||
int ret = 0, post_ret;
|
||||
|
||||
pr_debug("-----[ Storage Engine Exception; sense_reason %d\n",
|
||||
sense_reason);
|
||||
@@ -1790,7 +1790,7 @@ void transport_generic_request_failure(struct se_cmd *cmd,
|
||||
transport_complete_task_attr(cmd);
|
||||
|
||||
if (cmd->transport_complete_callback)
|
||||
cmd->transport_complete_callback(cmd, false, NULL);
|
||||
cmd->transport_complete_callback(cmd, false, &post_ret);
|
||||
|
||||
if (transport_check_aborted_status(cmd, 1))
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user