i3c: master: svc: drop free_irq of devm_request_irq allocated irq
authorYang Yingliang <yangyingliang@huawei.com>
Wed, 2 Jun 2021 08:49:35 +0000 (16:49 +0800)
committerAlexandre Belloni <alexandre.belloni@bootlin.com>
Wed, 9 Jun 2021 00:02:22 +0000 (02:02 +0200)
irq allocated with devm_request_irq() will be freed in devm_irq_release(),
using free_irq() in ->remove() will causes a dangling pointer, and a
subsequent double free. So remove the free_irq() in svc_i3c_master_remove().

Reported-by: Hulk Robot <hulkci@huawei.com>
Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
Reviewed-by: Miquel Raynal <miquel.raynal@bootlin.com>
Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Link: https://lore.kernel.org/r/20210602084935.3977636-1-yangyingliang@huawei.com
drivers/i3c/master/svc-i3c-master.c

index 1f6ba42..eeb49b5 100644 (file)
@@ -1448,7 +1448,6 @@ static int svc_i3c_master_remove(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       free_irq(master->irq, master);
        clk_disable_unprepare(master->pclk);
        clk_disable_unprepare(master->fclk);
        clk_disable_unprepare(master->sclk);