aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/scsi/sd.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 5693f6d7eddb..ab96b793f904 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2639,13 +2639,16 @@ static void sd_read_write_same(struct scsi_disk *sdkp, unsigned char *buffer)
2639 struct scsi_device *sdev = sdkp->device; 2639 struct scsi_device *sdev = sdkp->device;
2640 2640
2641 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) { 2641 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) {
2642 /* too large values might cause issues with arcmsr */
2643 int vpd_buf_len = 64;
2644
2642 sdev->no_report_opcodes = 1; 2645 sdev->no_report_opcodes = 1;
2643 2646
2644 /* Disable WRITE SAME if REPORT SUPPORTED OPERATION 2647 /* Disable WRITE SAME if REPORT SUPPORTED OPERATION
2645 * CODES is unsupported and the device has an ATA 2648 * CODES is unsupported and the device has an ATA
2646 * Information VPD page (SAT). 2649 * Information VPD page (SAT).
2647 */ 2650 */
2648 if (!scsi_get_vpd_page(sdev, 0x89, buffer, SD_BUF_SIZE)) 2651 if (!scsi_get_vpd_page(sdev, 0x89, buffer, vpd_buf_len))
2649 sdev->no_write_same = 1; 2652 sdev->no_write_same = 1;
2650 } 2653 }
2651 2654