Commit 901a68b0 authored by Alan Cox's avatar Alan Cox Committed by Linus Torvalds

[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.
parent 202530e8
...@@ -902,7 +902,7 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed) ...@@ -902,7 +902,7 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed)
/* /*
* Select the drive, and issue the SETFEATURES command * Select the drive, and issue the SETFEATURES command
*/ */
disable_irq(hwif->irq); /* disable_irq_nosync ?? */ disable_irq_nosync(hwif->irq);
udelay(1); udelay(1);
SELECT_DRIVE(drive); SELECT_DRIVE(drive);
SELECT_MASK(drive, 0); SELECT_MASK(drive, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment