From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Yang Yingliang <yangyingliang@huawei.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-i3c@lists.infradead.org>,
<alexandre.belloni@bootlin.com>
Subject: Re: [PATCH -next] i3c: master: svc: drop free_irq of devm_request_irq allocated irq
Date: Thu, 27 May 2021 12:01:23 +0200 [thread overview]
Message-ID: <20210527120123.75f2ea09@xps13> (raw)
In-Reply-To: <20210518131127.1308550-1-yangyingliang@huawei.com>
Hi Yang,
Yang Yingliang <yangyingliang@huawei.com> wrote on Tue, 18 May 2021
21:11:27 +0800:
> irq allocated with devm_request_irq should not be freed using
> free_irq, because doing so causes a dangling pointer, and a
> subsequent double free.
>
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
> drivers/i3c/master/svc-i3c-master.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
> index 1f6ba4221817..761c9c468357 100644
> --- a/drivers/i3c/master/svc-i3c-master.c
> +++ b/drivers/i3c/master/svc-i3c-master.c
> @@ -1448,7 +1448,7 @@ static int svc_i3c_master_remove(struct platform_device *pdev)
> if (ret)
> return ret;
>
> - free_irq(master->irq, master);
> + devm_free_irq(&pdev->dev, master->irq, master);
Wouldn't removing this call the right solution? If it's a device
managed resource, it won't probably be needed to free it explicitly in
the remove path.
> clk_disable_unprepare(master->pclk);
> clk_disable_unprepare(master->fclk);
> clk_disable_unprepare(master->sclk);
Thanks,
Miquèl
--
linux-i3c mailing list
linux-i3c@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-i3c
WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Yang Yingliang <yangyingliang@huawei.com>
Cc: <linux-kernel@vger.kernel.org>, <linux-i3c@lists.infradead.org>,
<alexandre.belloni@bootlin.com>
Subject: Re: [PATCH -next] i3c: master: svc: drop free_irq of devm_request_irq allocated irq
Date: Thu, 27 May 2021 12:01:23 +0200 [thread overview]
Message-ID: <20210527120123.75f2ea09@xps13> (raw)
In-Reply-To: <20210518131127.1308550-1-yangyingliang@huawei.com>
Hi Yang,
Yang Yingliang <yangyingliang@huawei.com> wrote on Tue, 18 May 2021
21:11:27 +0800:
> irq allocated with devm_request_irq should not be freed using
> free_irq, because doing so causes a dangling pointer, and a
> subsequent double free.
>
> Reported-by: Hulk Robot <hulkci@huawei.com>
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
> drivers/i3c/master/svc-i3c-master.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/i3c/master/svc-i3c-master.c b/drivers/i3c/master/svc-i3c-master.c
> index 1f6ba4221817..761c9c468357 100644
> --- a/drivers/i3c/master/svc-i3c-master.c
> +++ b/drivers/i3c/master/svc-i3c-master.c
> @@ -1448,7 +1448,7 @@ static int svc_i3c_master_remove(struct platform_device *pdev)
> if (ret)
> return ret;
>
> - free_irq(master->irq, master);
> + devm_free_irq(&pdev->dev, master->irq, master);
Wouldn't removing this call the right solution? If it's a device
managed resource, it won't probably be needed to free it explicitly in
the remove path.
> clk_disable_unprepare(master->pclk);
> clk_disable_unprepare(master->fclk);
> clk_disable_unprepare(master->sclk);
Thanks,
Miquèl
next prev parent reply other threads:[~2021-05-27 10:01 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-05-18 13:11 [PATCH -next] i3c: master: svc: drop free_irq of devm_request_irq allocated irq Yang Yingliang
2021-05-18 13:11 ` Yang Yingliang
2021-05-27 10:01 ` Miquel Raynal [this message]
2021-05-27 10:01 ` Miquel Raynal
2021-05-27 13:49 ` Yang Yingliang
2021-05-27 13:49 ` Yang Yingliang
2021-05-27 14:40 ` Miquel Raynal
2021-05-27 14:40 ` Miquel Raynal
2021-05-28 1:43 ` Yang Yingliang
2021-05-28 1:43 ` Yang Yingliang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210527120123.75f2ea09@xps13 \
--to=miquel.raynal@bootlin.com \
--cc=alexandre.belloni@bootlin.com \
--cc=linux-i3c@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=yangyingliang@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.