• Lars-Peter Clausen's avatar
    regmap: debugfs: Fix continued read from registers file · 26ee4741
    Lars-Peter Clausen authored
    The regmap_debugfs_get_dump_start() function maps from a file offset to the
    register that can be found at that position in the file. This is done using a
    look-up table. Commit d6814a7d ("regmap: debugfs: Suppress cache for partial
    register files") added a check to bypass the look-up table for partial register
    files, since the offsets in that table are only correct for the full register
    file. The check incorrectly uses the file offset instead of the register base
    address and returns it. This will cause the file offset to be interpreted as a
    register address which will result in a incorrect output from the registers file
    for all reads except at position 0.
    
    The issue can easily be reproduced by doing small reads the registers file, e.g.
    `dd if=registers bs=10 count=5`.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    Cc: stable@vger.kernel.org
    26ee4741
regmap-debugfs.c 12.6 KB