|
|
@@ -205,6 +205,12 @@ cache_type_store(struct device *dev, struct device_attribute *attr,
|
|
|
sp = buffer_data[0] & 0x80 ? 1 : 0;
|
|
|
buffer_data[0] &= ~0x80;
|
|
|
|
|
|
+ /*
|
|
|
+ * Ensure WP, DPOFUA, and RESERVED fields are cleared in
|
|
|
+ * received mode parameter buffer before doing MODE SELECT.
|
|
|
+ */
|
|
|
+ data.device_specific = 0;
|
|
|
+
|
|
|
if (scsi_mode_select(sdp, 1, sp, 8, buffer_data, len, SD_TIMEOUT,
|
|
|
SD_MAX_RETRIES, &data, &sshdr)) {
|
|
|
if (scsi_sense_valid(&sshdr))
|