aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi')
-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 9bc913b92d13..26b543bc4f53 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2634,13 +2634,16 @@ static void sd_read_write_same(struct scsi_disk *sdkp, unsigned char *buffer)
2634 } 2634 }
2635 2635
2636 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) { 2636 if (scsi_report_opcode(sdev, buffer, SD_BUF_SIZE, INQUIRY) < 0) {
2637 /* too large values might cause issues with arcmsr */
2638 int vpd_buf_len = 64;
2639
2637 sdev->no_report_opcodes = 1; 2640 sdev->no_report_opcodes = 1;
2638 2641
2639 /* Disable WRITE SAME if REPORT SUPPORTED OPERATION 2642 /* Disable WRITE SAME if REPORT SUPPORTED OPERATION
2640 * CODES is unsupported and the device has an ATA 2643 * CODES is unsupported and the device has an ATA
2641 * Information VPD page (SAT). 2644 * Information VPD page (SAT).
2642 */ 2645 */
2643 if (!scsi_get_vpd_page(sdev, 0x89, buffer, SD_BUF_SIZE)) 2646 if (!scsi_get_vpd_page(sdev, 0x89, buffer, vpd_buf_len))
2644 sdev->no_write_same = 1; 2647 sdev->no_write_same = 1;
2645 } 2648 }
2646 2649