Commit 50fb0bcc authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull SCSI fixes from James Bottomley:
 "All in drivers.

  The largest change is the ufs one which has to introduce a new
  function to check the power state before doing the update and the most
  widely encountered one is the obvious change to sg to not use
  GFP_ATOMIC"

* tag 'scsi-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi:
  scsi: target: iscsi: reject invalid size Extended CDB AHS
  scsi: ufs: core: Fix bRefClkFreq write failure in HS-LSS mode
  scsi: hisi_sas: Fix sparse warnings in prep_ata_v3_hw()
  scsi: pmcraid: Fix typo in comments
  scsi: scsi_dh_alua: Increase default ALUA timeout to maximum spec value
  scsi: smartpqi: Silence a recursive lock warning
  scsi: mpt3sas: Limit NVMe request size to 2 MiB
  scsi: sg: Don't use GFP_ATOMIC in sg_start_req()
  scsi: target: configfs: Bound snprintf() return in tg_pt_gp_members_show()
parents 13ad98ea 98f69975
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@
#define TPGS_MODE_EXPLICIT		0x2

#define ALUA_RTPG_SIZE			128
#define ALUA_FAILOVER_TIMEOUT		60
#define ALUA_FAILOVER_TIMEOUT		255	/* max 255 (8-bit value) */
#define ALUA_FAILOVER_RETRIES		5
#define ALUA_RTPG_DELAY_MSECS		5
#define ALUA_RTPG_RETRY_DELAY		2
+1 −1
Original line number Diff line number Diff line
@@ -1491,7 +1491,7 @@ static void prep_ata_v3_hw(struct hisi_hba *hisi_hba,
		phy_id = device->phy->identify.phy_identifier;
		hdr->dw0 |= cpu_to_le32((1U << phy_id)
				<< CMD_HDR_PHY_ID_OFF);
		hdr->dw0 |= CMD_HDR_FORCE_PHY_MSK;
		hdr->dw0 |= cpu_to_le32(CMD_HDR_FORCE_PHY_MSK);
		hdr->dw0 |= cpu_to_le32(4U << CMD_HDR_CMD_OFF);
	}

+13 −1
Original line number Diff line number Diff line
@@ -2738,8 +2738,20 @@ scsih_sdev_configure(struct scsi_device *sdev, struct queue_limits *lim)
				pcie_device->enclosure_level,
				pcie_device->connector_name);

		/*
		 * The HBA firmware passes the NVMe drive's MDTS
		 * (Maximum Data Transfer Size) up to the driver. However,
		 * the driver hardcodes a 4K buffer size for the PRP list,
		 * accommodating at most 512 entries. This strictly limits
		 * the maximum supported NVMe I/O transfer to 2 MiB.
		 *
		 * Cap max_hw_sectors to the smaller of the drive's reported
		 * MDTS or the 2 MiB driver limit to prevent kernel oopses.
		 */
		lim->max_hw_sectors = SZ_2M >> SECTOR_SHIFT;
		if (pcie_device->nvme_mdts)
			lim->max_hw_sectors = pcie_device->nvme_mdts / 512;
			lim->max_hw_sectors = min(lim->max_hw_sectors,
					pcie_device->nvme_mdts >> SECTOR_SHIFT);

		pcie_device_put(pcie_device);
		spin_unlock_irqrestore(&ioc->pcie_device_lock, flags);
+1 −1
Original line number Diff line number Diff line
@@ -657,7 +657,7 @@ struct pmcraid_hostrcb {
 */
struct pmcraid_instance {
	/* Array of allowed-to-be-exposed resources, initialized from
	 * Configutation Table, later updated with CCNs
	 * Configuration Table, later updated with CCNs
	 */
	struct pmcraid_resource_entry *res_entries;

+1 −1
Original line number Diff line number Diff line
@@ -1801,7 +1801,7 @@ sg_start_req(Sg_request *srp, unsigned char *cmd)
	}

	res = blk_rq_map_user_io(rq, md, hp->dxferp, hp->dxfer_len,
			GFP_ATOMIC, iov_count, iov_count, 1, rw);
			GFP_KERNEL, iov_count, iov_count, 1, rw);
	if (!res) {
		srp->bio = rq->bio;

Loading