diff options
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r-- | drivers/scsi/sd.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c index a1a44f52e0e8..b2da8a00ec33 100644 --- a/drivers/scsi/sd.c +++ b/drivers/scsi/sd.c | |||
@@ -206,6 +206,12 @@ cache_type_store(struct device *dev, struct device_attribute *attr, | |||
206 | sp = buffer_data[0] & 0x80 ? 1 : 0; | 206 | sp = buffer_data[0] & 0x80 ? 1 : 0; |
207 | buffer_data[0] &= ~0x80; | 207 | buffer_data[0] &= ~0x80; |
208 | 208 | ||
209 | /* | ||
210 | * Ensure WP, DPOFUA, and RESERVED fields are cleared in | ||
211 | * received mode parameter buffer before doing MODE SELECT. | ||
212 | */ | ||
213 | data.device_specific = 0; | ||
214 | |||
209 | if (scsi_mode_select(sdp, 1, sp, 8, buffer_data, len, SD_TIMEOUT, | 215 | if (scsi_mode_select(sdp, 1, sp, 8, buffer_data, len, SD_TIMEOUT, |
210 | SD_MAX_RETRIES, &data, &sshdr)) { | 216 | SD_MAX_RETRIES, &data, &sshdr)) { |
211 | if (scsi_sense_valid(&sshdr)) | 217 | if (scsi_sense_valid(&sshdr)) |