Commit dc117876 authored by Martin K. Petersen's avatar Martin K. Petersen
Browse files

scsi: mpt3sas: Use cached ATA Information VPD page

We now cache VPD page 0x89 (ATA Information) so there is no need to request
it from the hardware. Make mpt3sas use the cached page.

Link: https://lore.kernel.org/r/20220302053559.32147-2-martin.petersen@oracle.com


Cc: Sreekanth Reddy <sreekanth.reddy@broadcom.com>
Reviewed-by: default avatarHannes Reinecke <hare@suse.de>
Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent 646db1a5
Loading
Loading
Loading
Loading
+8 −10
Original line number Diff line number Diff line
@@ -12588,20 +12588,18 @@ scsih_pci_mmio_enabled(struct pci_dev *pdev)
 */
bool scsih_ncq_prio_supp(struct scsi_device *sdev)
{
	unsigned char *buf;
	struct scsi_vpd *vpd;
	bool ncq_prio_supp = false;

	if (!scsi_device_supports_vpd(sdev))
		return ncq_prio_supp;

	buf = kmalloc(SCSI_VPD_PG_LEN, GFP_KERNEL);
	if (!buf)
		return ncq_prio_supp;
	rcu_read_lock();
	vpd = rcu_dereference(sdev->vpd_pg89);
	if (!vpd || vpd->len < 214)
		goto out;

	if (!scsi_get_vpd_page(sdev, 0x89, buf, SCSI_VPD_PG_LEN))
		ncq_prio_supp = (buf[213] >> 4) & 1;
	ncq_prio_supp = (vpd->data[213] >> 4) & 1;
out:
	rcu_read_unlock();

	kfree(buf);
	return ncq_prio_supp;
}
/*