patch-2.2.13 linux/drivers/block/ide.c

Next file: linux/drivers/cdrom/cdrom.c
Previous file: linux/drivers/block/ide-pmac.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.2.12/linux/drivers/block/ide.c linux/drivers/block/ide.c
@@ -1171,7 +1171,7 @@
 		spin_unlock_irqrestore(&io_request_lock, io_flags);
 
 		if (hwif->irq != masked_irq)
-			disable_irq(hwif->irq);
+			disable_irq_nosync(hwif->irq);
 		spin_unlock_irqrestore(&hwgroup->spinlock, *hwgroup_flags);
 		start_request(drive);
 		spin_lock_irqsave(&hwgroup->spinlock, *hwgroup_flags);
@@ -1541,8 +1541,10 @@
 	do_hwgroup_request(hwgroup);
 	save_flags(flags);	/* all CPUs; overkill? */
 	cli();			/* all CPUs; overkill? */
-	if (action == ide_wait && rq->rq_status != RQ_INACTIVE)
+	if (action == ide_wait)
+	{
 		down(&sem);	/* wait for it to be serviced */
+	}
 	restore_flags(flags);	/* all CPUs; overkill? */
 	return rq->errors ? -EIO : 0;	/* return -EIO if errors */
 }

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)