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]

Reply via email to