summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2003-03-23 02:05:56 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-03-23 02:05:56 -0800
commit901a68b03eb7eae8e5b55c96a543a91bfce36ea3 (patch)
tree96512368a3490d29a92c30a32726a79d9d090b04
parent202530e88e573feba7747fd443687b0da0b88277 (diff)
[PATCH] Fix IDE disable_irq() deadlock
This fixes one of the long standing IDE hangs on SMP. If you get an error we disable the IRQ, unfortunately we may be in the IRQ handler This change gets us back working but does introduce a small potential race I need to investigate further and fix up in a nicer fashion. IDE should do error handling in a seperate context (as SCSI does) but not for 2.6.
-rw-r--r--drivers/ide/ide-iops.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index d81a0abf8844..7c7a5ac53aa6 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -902,7 +902,7 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed)
/*
* Select the drive, and issue the SETFEATURES command
*/
- disable_irq(hwif->irq); /* disable_irq_nosync ?? */
+ disable_irq_nosync(hwif->irq);
udelay(1);
SELECT_DRIVE(drive);
SELECT_MASK(drive, 0);