> - while (!hwgroup->busy) { > - hwgroup->busy = 1; > - /* for atari only */ > - ide_get_lock(ide_intr, hwgroup); > + while (!ide_lock_hwgroup(hwgroup)) { Something I've run into while working on the locking stuff: what happens if the above ide_lock_hwgroup(hwgroup) sleeps for long enough to trigger the request timer? I'll think about the ramifications of your patch in the context of what I tested WRT unlocking whenever hwgroup->busy is cleared, and get back to you. Michael -- To unsubscribe from this list: send the line "unsubscribe linux-ide" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html