summaryrefslogtreecommitdiff
path: root/drivers/ide
diff options
context:
space:
mode:
authorAlan Cox <alan@lxorguk.ukuu.org.uk>2003-03-26 18:02:37 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2003-03-26 18:02:37 -0800
commit9d6697b6ddc5adf80c05583cd100b9e18893ea68 (patch)
tree0a043384a34328121015f9a189121565d0c1ef19 /drivers/ide
parentb3b3e8a6df90df506e4d23d8788df5594b50b176 (diff)
[PATCH] Add a comment that the irq_nosync stuff needs revisiting
Diffstat (limited to 'drivers/ide')
-rw-r--r--drivers/ide/ide-iops.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/ide/ide-iops.c b/drivers/ide/ide-iops.c
index 7c7a5ac53aa6..56f991a8d88b 100644
--- a/drivers/ide/ide-iops.c
+++ b/drivers/ide/ide-iops.c
@@ -903,6 +903,14 @@ int ide_config_drive_speed (ide_drive_t *drive, u8 speed)
* Select the drive, and issue the SETFEATURES command
*/
disable_irq_nosync(hwif->irq);
+
+ /*
+ * FIXME: we race against the running IRQ here if
+ * this is called from non IRQ context. If we use
+ * disable_irq() we hang on the error path. Work
+ * is needed.
+ */
+
udelay(1);
SELECT_DRIVE(drive);
SELECT_MASK(drive, 0);