]> err.no Git - linux-2.6/blobdiff - drivers/ide/ide-taskfile.c
ehea: fix might sleep problem
[linux-2.6] / drivers / ide / ide-taskfile.c
index 9a846a0cd5a462c01e403069fef737d745dce88c..ab545ffa15490367ed013bd9e04a674a1f2df76f 100644 (file)
@@ -225,10 +225,10 @@ static u8 wait_drive_not_busy(ide_drive_t *drive)
        u8 stat;
 
        /*
-        * Last sector was transfered, wait until drive is ready.
-        * This can take up to 10 usec, but we will wait max 1 ms.
+        * Last sector was transfered, wait until device is ready.  This can
+        * take up to 6 ms on some ATAPI devices, so we will wait max 10 ms.
         */
-       for (retries = 0; retries < 100; retries++) {
+       for (retries = 0; retries < 1000; retries++) {
                stat = ide_read_status(drive);
 
                if (stat & BUSY_STAT)
@@ -494,8 +494,7 @@ int ide_raw_taskfile(ide_drive_t *drive, ide_task_t *task, u8 *buf, u16 nsect)
 {
        struct request rq;
 
-       memset(&rq, 0, sizeof(rq));
-       rq.ref_count = 1;
+       blk_rq_init(NULL, &rq);
        rq.cmd_type = REQ_TYPE_ATA_TASKFILE;
        rq.buffer = buf;