• Solomon Peachy's avatar
    cw1200: Prevent a lock-related hang in the cw1200_spi driver · 85ba8f52
    Solomon Peachy authored
    The cw1200_spi driver tries to mirror the cw1200_sdio driver's lock
    API, which relies on sdio_claim_host/sdio_release_host to serialize
    hardware operations across multiple threads.
    
    Unfortunately the implementation was flawed, as it lacked a way to wake
    up the lock requestor when there was contention, often resulting in a
    hang.
    
    This problem was uncovered while trying to fix the
    spi-transfers-in-interrupt-context BUG() corrected in the previous
    patch.  Many thanks to Dave Sizeburns for his assistance in fixing this.
    Signed-off-by: default avatarSolomon Peachy <pizza@shaftnet.org>
    Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
    85ba8f52
cw1200_spi.c 11 KB