lkml.org 
[lkml]   [2017]   [Jul]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFT v2 1/3] ASoC: samsung: Fix possible double iounmap on s3c24xx driver probe failure
    Date
    Commit 87b132bc0315 ("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: 87b132bc0315 ("ASoC: samsung: s3c24{xx,12}-i2s: port to use generic dmaengine API")
    Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>

    ---

    Not marking as Cc-stable because this is theoretical problem, not
    reproduced and also not tested.

    Please, kindly test on S3C24xx hardware.

    Changes since v1:
    1. None
    ---
    sound/soc/samsung/s3c-i2s-v2.c | 1 -
    1 file changed, 1 deletion(-)

    diff --git a/sound/soc/samsung/s3c-i2s-v2.c b/sound/soc/samsung/s3c-i2s-v2.c
    index ca522a95160b..9b28046eea8e 100644
    --- a/sound/soc/samsung/s3c-i2s-v2.c
    +++ b/sound/soc/samsung/s3c-i2s-v2.c
    @@ -634,7 +634,6 @@ int s3c_i2sv2_probe(struct snd_soc_dai *dai,
    i2s->iis_pclk = clk_get(dev, "iis");
    if (IS_ERR(i2s->iis_pclk)) {
    dev_err(dev, "failed to get iis_clock\n");
    - iounmap(i2s->regs);
    return -ENOENT;
    }

    --
    2.11.0
    \
     
     \ /
      Last update: 2017-07-27 19:15    [W:2.477 / U:0.060 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site