• DongCV's avatar
    spi: rspi: Fixes bogus received byte in qspi_transfer_in() · 7264abc7
    DongCV authored
    In qspi_transfer_in(), when receiving the last n (or len) bytes of data,
    one bogus byte was written in the receive buffer.
    This code leads to a buffer overflow.
    
    "jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found
    at 0x03b40000: 0x1900 instead
    jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found
    at 0x03b40004: 0x000c instead"
    
    The error message above happens when trying to mount, unmount,
    and remount a jffs2-formatted device.
    This patch removed the bogus write to fixes: 3be09bec
    "spi: rspi: supports 32bytes buffer for DUAL and QUAD"
    
    And here is Geert's comment:
    
    "spi: rspi: Fix bogus received byte in qspi_transfer_in()
    When there are less than QSPI_BUFFER_SIZE remaining bytes to be received,
    qspi_transfer_in() writes one bogus byte in the receive buffer, possibly
    leading to a buffer overflow.
    This can be reproduced by mounting, unmounting, and remounting a
    jffs2-formatted device, causing lots of warnings like:
    
    "jffs2: jffs2_scan_eraseblock(): Magic bitmask 0x1985 not found
    at 0x03b40000: 0x1900 instead"
    
    Remove the bogus write to fix this. "
    Signed-off-by: default avatarDongCV <cv-dong@jinso.co.jp>
    Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    7264abc7
spi-rspi.c 35.2 KB