Subject: [PATCH] m68k: make Atari IDE lock reentrant From Roman Zippel Make the Atari IDE lock reentrant, as the new request is started in the interrupt before the last one is completely released. Signed-off-by: Roman Zippel Signed-off-by: Geert Uytterhoeven --- include/asm-m68k/ide.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) --- a/include/asm-m68k/ide.h +++ b/include/asm-m68k/ide.h @@ -117,8 +117,8 @@ static __inline__ void ide_release_lock printk("ide_release_lock: bug\n"); return; } - falconide_intr_lock = 0; - stdma_release(); + if (!--falconide_intr_lock) + stdma_release(); } } @@ -126,12 +126,12 @@ static __inline__ void ide_get_lock(irq_handler_t handler, void *data) { if (MACH_IS_ATARI) { - if (falconide_intr_lock == 0) { + if (!falconide_intr_lock) { if (in_interrupt() > 0) panic( "Falcon IDE hasn't ST-DMA lock in interrupt" ); stdma_lock(handler, data); - falconide_intr_lock = 1; } + falconide_intr_lock++; } } #endif /* CONFIG_BLK_DEV_FALCON_IDE */