• Daniel Santos's avatar
    spidev: fix hang when transfer_one_message fails · e120cc0d
    Daniel Santos authored
    This corrects a problem in spi_pump_messages() that leads to an spi
    message hanging forever when a call to transfer_one_message() fails.
    This failure occurs in my MCP2210 driver when the cs_change bit is set
    on the last transfer in a message, an operation which the hardware does
    not support.
    
    Rationale
    Since the transfer_one_message() returns an int, we must presume that it
    may fail.  If transfer_one_message() should never fail, it should return
    void.  Thus, calls to transfer_one_message() should properly manage a
    failure.
    
    Fixes: ffbbdd21 (spi: create a message queueing infrastructure)
    Signed-off-by: default avatarDaniel Santos <daniel.santos@pobox.com>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    Cc: stable@vger.kernel.org
    e120cc0d
spi.c 55.1 KB