If we encounter an error during VPD page scanning we should be
setting the 'skip_vpd_pages' bit to avoid further accesses.

Signed-off-by: Hannes Reinecke <[email protected]>
---
 drivers/scsi/scsi.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
index 1deb6ad..0359864 100644
--- a/drivers/scsi/scsi.c
+++ b/drivers/scsi/scsi.c
@@ -796,6 +796,7 @@ retry_pg0:
        result = scsi_vpd_inquiry(sdev, vpd_buf, 0, vpd_len);
        if (result < 0) {
                kfree(vpd_buf);
+               sdev->skip_vpd_pages = 1;
                return;
        }
        if (result > vpd_len) {
@@ -822,6 +823,7 @@ retry_pg80:
                result = scsi_vpd_inquiry(sdev, vpd_buf, 0x80, vpd_len);
                if (result < 0) {
                        kfree(vpd_buf);
+                       sdev->skip_vpd_pages = 1;
                        return;
                }
                if (result > vpd_len) {
@@ -851,6 +853,7 @@ retry_pg83:
                result = scsi_vpd_inquiry(sdev, vpd_buf, 0x83, vpd_len);
                if (result < 0) {
                        kfree(vpd_buf);
+                       sdev->skip_vpd_pages = 1;
                        return;
                }
                if (result > vpd_len) {
-- 
1.8.5.6

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to