• Maxime Chevallier's avatar
    spi: Fix scatterlist elements size in spi_map_buf · ce99319a
    Maxime Chevallier authored
    When SPI transfers can be offloaded using DMA, the SPI core need to
    build a scatterlist to make sure that the buffer to be transferred is
    dma-able.
    
    This patch fixes the scatterlist entry size computation in the case
    where the maximum acceptable scatterlist entry supported by the DMA
    controller is less than PAGE_SIZE, when the buffer is vmalloced.
    
    For each entry, the actual size is given by the minimum between the
    desc_len (which is the max buffer size supported by the DMA controller)
    and the remaining buffer length until we cross a page boundary.
    
    Fixes: 65598c13 ("spi: Fix per-page mapping of unaligned vmalloc-ed buffer")
    Signed-off-by: default avatarMaxime Chevallier <maxime.chevallier@bootlin.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    ce99319a
spi.c 94.7 KB