• T
    [MTD] NAND: Reorganize chip locking · 0dfc6246
    Thomas Gleixner 提交于
    The code was wrong in several aspects. The locking order was
    inconsistent, the device aquire code did not reset a variable
    after a wakeup and the wakeup handling was not working for
    applications where multiple chips are sharing a single
    hardware controller.
    When a hardware controller is available the locking is now
    reduced to the hardware controller lock and the waitqueue is
    moved to the hardware controller structure in order to avoid
    a wake_up_all().
    
    The problem was pointed out by Ben Dooks, who also found the
    missing variable reset as main cause for his deadlock problem.
    Signed-off-by: NThomas Gleixner <tglx@linutronix.de>
    0dfc6246
nand_base.c 78.0 KB