2021-10-12 13:07:39

by Yang Yingliang

[permalink] [raw]
Subject: [PATCH] chardev: fix error handling in cdev_device_add()

If dev->devt is not set, cdev_device_add() will not add the cdev,
when device_add failed, cdev_del() is not needed, so delete cdev
only when dev->devt is set.

Reported-by: Hulk Robot <[email protected]>
Fixes: 233ed09d7fda ("chardev: add helper function to register...")
Signed-off-by: Yang Yingliang <[email protected]>
---
fs/char_dev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/char_dev.c b/fs/char_dev.c
index ba0ded7842a7..3f667292608c 100644
--- a/fs/char_dev.c
+++ b/fs/char_dev.c
@@ -547,7 +547,7 @@ int cdev_device_add(struct cdev *cdev, struct device *dev)
}

rc = device_add(dev);
- if (rc)
+ if (rc && dev->devt)
cdev_del(cdev);

return rc;
--
2.25.1


2021-12-23 01:41:08

by Yang Yingliang

[permalink] [raw]
Subject: Re: [PATCH] chardev: fix error handling in cdev_device_add()

ping...

On 2021/10/12 21:09, Yang Yingliang wrote:
> If dev->devt is not set, cdev_device_add() will not add the cdev,
> when device_add failed, cdev_del() is not needed, so delete cdev
> only when dev->devt is set.
>
> Reported-by: Hulk Robot <[email protected]>
> Fixes: 233ed09d7fda ("chardev: add helper function to register...")
> Signed-off-by: Yang Yingliang <[email protected]>
> ---
> fs/char_dev.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/char_dev.c b/fs/char_dev.c
> index ba0ded7842a7..3f667292608c 100644
> --- a/fs/char_dev.c
> +++ b/fs/char_dev.c
> @@ -547,7 +547,7 @@ int cdev_device_add(struct cdev *cdev, struct device *dev)
> }
>
> rc = device_add(dev);
> - if (rc)
> + if (rc && dev->devt)
> cdev_del(cdev);
>
> return rc;

2021-12-23 07:15:12

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [PATCH] chardev: fix error handling in cdev_device_add()

On Thu, Dec 23, 2021 at 09:41:03AM +0800, Yang Yingliang wrote:
> ping...

ping of what? You suddenly added a bunch of people that were not on the
original thread here with no context :(

2021-12-23 07:43:07

by Yang Yingliang

[permalink] [raw]
Subject: Re: [PATCH] chardev: fix error handling in cdev_device_add()

Hi,

On 2021/12/23 15:15, Greg KH wrote:
> On Thu, Dec 23, 2021 at 09:41:03AM +0800, Yang Yingliang wrote:
>> ping...
> ping of what? You suddenly added a bunch of people that were not on the
> original thread here with no context :(
> .
This patch has been in mail list for a while time, I add the author and
reviewer of fixed patch
to this thread,  I would like to get some advice. Should I resend the
patch with cc those people ?

Thanks,
Yang