• Krzysztof Kozlowski's avatar
    ASoC: samsung: Fix possible double iounmap on s3c24xx driver probe failure · 776bac64
    Krzysztof Kozlowski authored
    Commit 87b132bc ("ASoC: samsung: s3c24{xx,12}-i2s: port to use
    generic dmaengine API") moved ioremap() call from
    s3c-i2s-v2.c:s3c_i2sv2_probe() to s3c2412-i2s.c:s3c2412_iis_dev_probe()
    and converted it to devm- resource managed interface.
    
    However the error path in first of them - s3c_i2sv2_probe() - was not
    updated.  If getting a iis clock in s3c_i2sv2_probe() failed, the
    address space would be unmapped there.  This could lead to:
    1. double iounmap() later from devm-interface of s3c2412_iis_dev_probe()),
    2. accessing the memory by other functions in s3c2412-i2s.c unit.
    
    Anyway, the owner of this mapped region should be s3c2412-i2s.c because
    it starts the mapping.
    
    Affected are drivers for S3C24xx family although issue was not reproduced.
    
    Fixes: 87b132bc ("ASoC: samsung: s3c24{xx,12}-i2s: port to use generic dmaengine API")
    Signed-off-by: default avatarKrzysztof Kozlowski <krzk@kernel.org>
    Acked-by: Arvind Yadav<arvind.yadav.cs@gmail.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    776bac64
s3c-i2s-v2.c 17.1 KB