mirror of
https://github.com/torvalds/linux.git
synced 2024-11-27 22:51:35 +00:00
SCSI fixes on 20190208
This is a set of five minor fixes (although, tecnhincally, the aicxxx fix is for a major problem in that the driver won't load without it, but I think the fact it's taken us since 4.10 to discover this indicates that the user base for these things has declined). Signed-off-by: James E.J. Bottomley <jejb@linux.ibm.com> -----BEGIN PGP SIGNATURE----- iJwEABMIAEQWIQTnYEDbdso9F2cI+arnQslM7pishQUCXF3VNSYcamFtZXMuYm90 dG9tbGV5QGhhbnNlbnBhcnRuZXJzaGlwLmNvbQAKCRDnQslM7pishUz2AP9L+n9A Ma5WutU8gkoNcttX7RJvRmtha9RiwvxRi7cs6QD+OToBDpTbo+kLuzfXz0Gop4Go qQziEsBm1P9ShCti3K0= =hptI -----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: "This is a set of five minor fixes (although, tecnhincally, the aicxxx fix is for a major problem in that the driver won't load without it, but I think the fact it's taken us since 4.10 to discover this indicates that the user base for these things has declined)" * tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: scsi: cxlflash: Prevent deadlock when adapter probe fails Revert "scsi: libfc: Add WARN_ON() when deleting rports" scsi: sd_zbc: Fix zone information messages scsi: target: make the pi_prot_format ConfigFS path readable scsi: aic94xx: fix module loading
This commit is contained in:
commit
3b6e8204a9
@ -280,7 +280,7 @@ static ssize_t asd_show_dev_rev(struct device *dev,
|
||||
return snprintf(buf, PAGE_SIZE, "%s\n",
|
||||
asd_dev_rev[asd_ha->revision_id]);
|
||||
}
|
||||
static DEVICE_ATTR(revision, S_IRUGO, asd_show_dev_rev, NULL);
|
||||
static DEVICE_ATTR(aic_revision, S_IRUGO, asd_show_dev_rev, NULL);
|
||||
|
||||
static ssize_t asd_show_dev_bios_build(struct device *dev,
|
||||
struct device_attribute *attr,char *buf)
|
||||
@ -477,7 +477,7 @@ static int asd_create_dev_attrs(struct asd_ha_struct *asd_ha)
|
||||
{
|
||||
int err;
|
||||
|
||||
err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_revision);
|
||||
err = device_create_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision);
|
||||
if (err)
|
||||
return err;
|
||||
|
||||
@ -499,13 +499,13 @@ err_update_bios:
|
||||
err_biosb:
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build);
|
||||
err_rev:
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_revision);
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision);
|
||||
return err;
|
||||
}
|
||||
|
||||
static void asd_remove_dev_attrs(struct asd_ha_struct *asd_ha)
|
||||
{
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_revision);
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_aic_revision);
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_bios_build);
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_pcba_sn);
|
||||
device_remove_file(&asd_ha->pcidev->dev, &dev_attr_update_bios);
|
||||
|
@ -3687,6 +3687,7 @@ static int cxlflash_probe(struct pci_dev *pdev,
|
||||
host->max_cmd_len = CXLFLASH_MAX_CDB_LEN;
|
||||
|
||||
cfg = shost_priv(host);
|
||||
cfg->state = STATE_PROBING;
|
||||
cfg->host = host;
|
||||
rc = alloc_mem(cfg);
|
||||
if (rc) {
|
||||
@ -3775,6 +3776,7 @@ out:
|
||||
return rc;
|
||||
|
||||
out_remove:
|
||||
cfg->state = STATE_PROBED;
|
||||
cxlflash_remove(pdev);
|
||||
goto out;
|
||||
}
|
||||
|
@ -184,7 +184,6 @@ void fc_rport_destroy(struct kref *kref)
|
||||
struct fc_rport_priv *rdata;
|
||||
|
||||
rdata = container_of(kref, struct fc_rport_priv, kref);
|
||||
WARN_ON(!list_empty(&rdata->peers));
|
||||
kfree_rcu(rdata, rcu);
|
||||
}
|
||||
EXPORT_SYMBOL(fc_rport_destroy);
|
||||
|
@ -462,12 +462,16 @@ int sd_zbc_read_zones(struct scsi_disk *sdkp, unsigned char *buf)
|
||||
sdkp->device->use_10_for_rw = 0;
|
||||
|
||||
/*
|
||||
* If something changed, revalidate the disk zone bitmaps once we have
|
||||
* the capacity, that is on the second revalidate execution during disk
|
||||
* scan and always during normal revalidate.
|
||||
* Revalidate the disk zone bitmaps once the block device capacity is
|
||||
* set on the second revalidate execution during disk scan and if
|
||||
* something changed when executing a normal revalidate.
|
||||
*/
|
||||
if (sdkp->first_scan)
|
||||
if (sdkp->first_scan) {
|
||||
sdkp->zone_blocks = zone_blocks;
|
||||
sdkp->nr_zones = nr_zones;
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (sdkp->zone_blocks != zone_blocks ||
|
||||
sdkp->nr_zones != nr_zones ||
|
||||
disk->queue->nr_zones != nr_zones) {
|
||||
|
@ -852,6 +852,12 @@ static ssize_t pi_prot_type_store(struct config_item *item,
|
||||
return count;
|
||||
}
|
||||
|
||||
/* always zero, but attr needs to remain RW to avoid userspace breakage */
|
||||
static ssize_t pi_prot_format_show(struct config_item *item, char *page)
|
||||
{
|
||||
return snprintf(page, PAGE_SIZE, "0\n");
|
||||
}
|
||||
|
||||
static ssize_t pi_prot_format_store(struct config_item *item,
|
||||
const char *page, size_t count)
|
||||
{
|
||||
@ -1132,7 +1138,7 @@ CONFIGFS_ATTR(, emulate_3pc);
|
||||
CONFIGFS_ATTR(, emulate_pr);
|
||||
CONFIGFS_ATTR(, pi_prot_type);
|
||||
CONFIGFS_ATTR_RO(, hw_pi_prot_type);
|
||||
CONFIGFS_ATTR_WO(, pi_prot_format);
|
||||
CONFIGFS_ATTR(, pi_prot_format);
|
||||
CONFIGFS_ATTR(, pi_prot_verify);
|
||||
CONFIGFS_ATTR(, enforce_pr_isids);
|
||||
CONFIGFS_ATTR(, is_nonrot);
|
||||
|
Loading…
Reference in New Issue
Block a user