scsi: Do not attach VPD to devices that don't support it
The patch "scsi: rescan VPD attributes" introduced a regression in which
devices that don't support VPD were being scanned for VPD attributes
anyway. This could cause issues for some devices and should be avoided
so the check for scsi_level has been moved out of scsi_add_lun and into
scsi_attach_vpd so that all callers will not scan VPD for devices that
don't support it.
[mkp: Merge fix]
Fixes: 09e2b0b146
("scsi: rescan VPD attributes")
Cc: <stable@vger.kernel.org> #v4.5+
Suggested-by: Alexander Duyck <aduyck@mirantis.com>
Signed-off-by: Hannes Reinecke <hare@suse.com>
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:

committed by
James Bottomley

parent
f08bb1e0db
commit
5ddfe0858e
@@ -784,8 +784,9 @@ void scsi_attach_vpd(struct scsi_device *sdev)
|
||||
int pg83_supported = 0;
|
||||
unsigned char __rcu *vpd_buf, *orig_vpd_buf = NULL;
|
||||
|
||||
if (sdev->skip_vpd_pages)
|
||||
if (!scsi_device_supports_vpd(sdev))
|
||||
return;
|
||||
|
||||
retry_pg0:
|
||||
vpd_buf = kmalloc(vpd_len, GFP_KERNEL);
|
||||
if (!vpd_buf)
|
||||
|
Reference in New Issue
Block a user