Problem: The sd_mod driver freezes during initialisation when a disk fails
to spin up. It cannot be killed (sleeps as TASK_UNINTERRUPTABLE).
Discussion: In drivers/scsi/sd.c sd_init_onedisk(), spintime_value is
initialised to jiffies; 100 seconds later if the disk hasn't spun up we're
meant to give up on it. Problem comes about as spintime_value is updated on
each iteration (ie every second). It looks like spintime is also a one-shot
flag as well. Both of these have been moved into the block of code which
sends the START_STOP command to the device.
Ken Sandars
Eurologic Systems Ltd
--- drivers/scsi/sd.c Tue Jan 30 10:58:24 2001
+++ drivers/scsi/sd.c Tue Jan 30 14:40:58 2001
@@ -798,9 +798,9 @@
SRpnt->sr_data_direction = SCSI_DATA_READ;
scsi_wait_req(SRpnt, (void *) cmd, (void *) buffer,
0/*512*/, SD_TIMEOUT, MAX_RETRIES);
+ spintime = 1;
+ spintime_value = jiffies;
}
- spintime = 1;
- spintime_value = jiffies;
time1 = HZ;
/* Wait 1 second for next try */
do {
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]