summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/sd.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r--drivers/scsi/sd.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 6f0a4c612b3b..4df73e52a4f9 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -1899,6 +1899,8 @@ static int sd_try_rc16_first(struct scsi_device *sdp)
1899{ 1899{
1900 if (sdp->host->max_cmd_len < 16) 1900 if (sdp->host->max_cmd_len < 16)
1901 return 0; 1901 return 0;
1902 if (sdp->try_rc_10_first)
1903 return 0;
1902 if (sdp->scsi_level > SCSI_SPC_2) 1904 if (sdp->scsi_level > SCSI_SPC_2)
1903 return 1; 1905 return 1;
1904 if (scsi_device_protection(sdp)) 1906 if (scsi_device_protection(sdp))
@@ -2259,8 +2261,13 @@ bad_sense:
2259 sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n"); 2261 sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");
2260 2262
2261defaults: 2263defaults:
2262 sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n"); 2264 if (sdp->wce_default_on) {
2263 sdkp->WCE = 0; 2265 sd_printk(KERN_NOTICE, sdkp, "Assuming drive cache: write back\n");
2266 sdkp->WCE = 1;
2267 } else {
2268 sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n");
2269 sdkp->WCE = 0;
2270 }
2264 sdkp->RCD = 0; 2271 sdkp->RCD = 0;
2265 sdkp->DPOFUA = 0; 2272 sdkp->DPOFUA = 0;
2266} 2273}
@@ -2702,6 +2709,7 @@ static int sd_probe(struct device *dev)
2702 sdkp->disk = gd; 2709 sdkp->disk = gd;
2703 sdkp->index = index; 2710 sdkp->index = index;
2704 atomic_set(&sdkp->openers, 0); 2711 atomic_set(&sdkp->openers, 0);
2712 atomic_set(&sdkp->device->ioerr_cnt, 0);
2705 2713
2706 if (!sdp->request_queue->rq_timeout) { 2714 if (!sdp->request_queue->rq_timeout) {
2707 if (sdp->type != TYPE_MOD) 2715 if (sdp->type != TYPE_MOD)