• Marek Vašut's avatar
    ARM: 6146/1: sa1111: Prevent deadlock in resume path · 3defb247
    Marek Vašut authored
    This patch reorganises the sa1111_resume() function in a manner the spinlock
    happens after calling the sa1111_wake(). This fixes two bugs:
    
    1) This function called sa1111_wake() which tried to claim the same spinlock
       the sa1111_resume() already claimed. This would result in certain deadlock.
    
       Original idea for this part: Russell King <rmk+kernel@arm.linux.org.uk>
    
    2) The function didn't unlock the spinlock in case the chip didn't report
       correct ID.
    
       Original idea for this part: Julia Lawall <julia@diku.dk>
    Signed-off-by: default avatarMarek Vasut <marek.vasut@gmail.com>
    Cc: <stable@kernel.org>
    Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
    3defb247
sa1111.c 34.2 KB