Skip to content

Commit 79d65ee

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: "Three small fixes, all in drivers" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: pm80xx: Fix error return code in pm8001_pci_probe() scsi: zfcp: Defer fc_rport blocking until after ADISC response scsi: storvsc: Limit max_sectors for virtual Fibre Channel devices
2 parents 79e8328 + d4e0265 commit 79d65ee

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

drivers/s390/scsi/zfcp_fc.c

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -534,8 +534,7 @@ static void zfcp_fc_adisc_handler(void *data)
534534

535535
/* re-init to undo drop from zfcp_fc_adisc() */
536536
port->d_id = ntoh24(adisc_resp->adisc_port_id);
537-
/* port is good, unblock rport without going through erp */
538-
zfcp_scsi_schedule_rport_register(port);
537+
/* port is still good, nothing to do */
539538
out:
540539
atomic_andnot(ZFCP_STATUS_PORT_LINK_TEST, &port->status);
541540
put_device(&port->dev);
@@ -595,9 +594,6 @@ void zfcp_fc_link_test_work(struct work_struct *work)
595594
int retval;
596595

597596
set_worker_desc("zadisc%16llx", port->wwpn); /* < WORKER_DESC_LEN=24 */
598-
get_device(&port->dev);
599-
port->rport_task = RPORT_DEL;
600-
zfcp_scsi_rport_work(&port->rport_work);
601597

602598
/* only issue one test command at one time per port */
603599
if (atomic_read(&port->status) & ZFCP_STATUS_PORT_LINK_TEST)

drivers/scsi/pm8001/pm8001_init.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1181,7 +1181,8 @@ static int pm8001_pci_probe(struct pci_dev *pdev,
11811181
pm80xx_set_thermal_config(pm8001_ha);
11821182
}
11831183

1184-
if (pm8001_init_sas_add(pm8001_ha))
1184+
rc = pm8001_init_sas_add(pm8001_ha);
1185+
if (rc)
11851186
goto err_out_shost;
11861187
/* phy setting support for motherboard controller */
11871188
rc = pm8001_configure_phy_settings(pm8001_ha);

drivers/scsi/storvsc_drv.c

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -366,6 +366,7 @@ static void storvsc_on_channel_callback(void *context);
366366
#define STORVSC_FC_MAX_LUNS_PER_TARGET 255
367367
#define STORVSC_FC_MAX_TARGETS 128
368368
#define STORVSC_FC_MAX_CHANNELS 8
369+
#define STORVSC_FC_MAX_XFER_SIZE ((u32)(512 * 1024))
369370

370371
#define STORVSC_IDE_MAX_LUNS_PER_TARGET 64
371372
#define STORVSC_IDE_MAX_TARGETS 1
@@ -2006,6 +2007,9 @@ static int storvsc_probe(struct hv_device *device,
20062007
* protecting it from any weird value.
20072008
*/
20082009
max_xfer_bytes = round_down(stor_device->max_transfer_bytes, HV_HYP_PAGE_SIZE);
2010+
if (is_fc)
2011+
max_xfer_bytes = min(max_xfer_bytes, STORVSC_FC_MAX_XFER_SIZE);
2012+
20092013
/* max_hw_sectors_kb */
20102014
host->max_sectors = max_xfer_bytes >> 9;
20112015
/*

0 commit comments

Comments
 (0)