[PATCH -next] driver core: switch to use dev_err_probe()

Yang Yingliang posted 1 patch 3 years, 7 months ago
drivers/base/core.c | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
[PATCH -next] driver core: switch to use dev_err_probe()
Posted by Yang Yingliang 3 years, 7 months ago
Use dev_err_probe() to simplify code and print error code.

Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
---
 drivers/base/core.c | 8 +++-----
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git a/drivers/base/core.c b/drivers/base/core.c
index 753e7cca0f40..e51a09f9d0ec 100644
--- a/drivers/base/core.c
+++ b/drivers/base/core.c
@@ -2507,11 +2507,9 @@ static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
 	int rc;
 
 	rc = kobject_synth_uevent(&dev->kobj, buf, count);
-
-	if (rc) {
-		dev_err(dev, "uevent: failed to send synthetic uevent\n");
-		return rc;
-	}
+	if (rc)
+		return dev_err_probe(dev, rc,
+				     "uevent: failed to send synthetic uevent\n");
 
 	return count;
 }
-- 
2.25.1
Re: [PATCH -next] driver core: switch to use dev_err_probe()
Posted by Greg KH 3 years, 7 months ago
On Fri, Aug 19, 2022 at 05:46:56PM +0800, Yang Yingliang wrote:
> Use dev_err_probe() to simplify code and print error code.
> 
> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> ---
>  drivers/base/core.c | 8 +++-----
>  1 file changed, 3 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/base/core.c b/drivers/base/core.c
> index 753e7cca0f40..e51a09f9d0ec 100644
> --- a/drivers/base/core.c
> +++ b/drivers/base/core.c
> @@ -2507,11 +2507,9 @@ static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
>  	int rc;
>  
>  	rc = kobject_synth_uevent(&dev->kobj, buf, count);
> -
> -	if (rc) {
> -		dev_err(dev, "uevent: failed to send synthetic uevent\n");
> -		return rc;
> -	}
> +	if (rc)
> +		return dev_err_probe(dev, rc,
> +				     "uevent: failed to send synthetic uevent\n");

I do not understand this at all, this is not on the probe path at all,
so why is this function needed?

Have you tested this?  What was the resulting output before and after
this change?

thanks,

greg k-h
Re: [PATCH -next] driver core: switch to use dev_err_probe()
Posted by Yang Yingliang 3 years, 7 months ago
Hi,

On 2022/8/19 17:42, Greg KH wrote:
> On Fri, Aug 19, 2022 at 05:46:56PM +0800, Yang Yingliang wrote:
>> Use dev_err_probe() to simplify code and print error code.
>>
>> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
>> ---
>>   drivers/base/core.c | 8 +++-----
>>   1 file changed, 3 insertions(+), 5 deletions(-)
>>
>> diff --git a/drivers/base/core.c b/drivers/base/core.c
>> index 753e7cca0f40..e51a09f9d0ec 100644
>> --- a/drivers/base/core.c
>> +++ b/drivers/base/core.c
>> @@ -2507,11 +2507,9 @@ static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
>>   	int rc;
>>   
>>   	rc = kobject_synth_uevent(&dev->kobj, buf, count);
>> -
>> -	if (rc) {
>> -		dev_err(dev, "uevent: failed to send synthetic uevent\n");
>> -		return rc;
>> -	}
>> +	if (rc)
>> +		return dev_err_probe(dev, rc,
>> +				     "uevent: failed to send synthetic uevent\n");
> I do not understand this at all, this is not on the probe path at all,
> so why is this function needed?
>
> Have you tested this?  What was the resulting output before and after
> this change?
Yes, after this change, the error code will be print.
>
> thanks,
>
> greg k-h
> .
Re: [PATCH -next] driver core: switch to use dev_err_probe()
Posted by Greg KH 3 years, 7 months ago
On Mon, Aug 22, 2022 at 10:10:22AM +0800, Yang Yingliang wrote:
> Hi,
> 
> On 2022/8/19 17:42, Greg KH wrote:
> > On Fri, Aug 19, 2022 at 05:46:56PM +0800, Yang Yingliang wrote:
> > > Use dev_err_probe() to simplify code and print error code.
> > > 
> > > Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
> > > ---
> > >   drivers/base/core.c | 8 +++-----
> > >   1 file changed, 3 insertions(+), 5 deletions(-)
> > > 
> > > diff --git a/drivers/base/core.c b/drivers/base/core.c
> > > index 753e7cca0f40..e51a09f9d0ec 100644
> > > --- a/drivers/base/core.c
> > > +++ b/drivers/base/core.c
> > > @@ -2507,11 +2507,9 @@ static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
> > >   	int rc;
> > >   	rc = kobject_synth_uevent(&dev->kobj, buf, count);
> > > -
> > > -	if (rc) {
> > > -		dev_err(dev, "uevent: failed to send synthetic uevent\n");
> > > -		return rc;
> > > -	}
> > > +	if (rc)
> > > +		return dev_err_probe(dev, rc,
> > > +				     "uevent: failed to send synthetic uevent\n");
> > I do not understand this at all, this is not on the probe path at all,
> > so why is this function needed?
> > 
> > Have you tested this?  What was the resulting output before and after
> > this change?
> Yes, after this change, the error code will be print.

You did not answer my question.

Again, this is not on the probe() callback path, so why are you wanting
to call dev_err_probe()?

thanks,

greg k-h
Re: [PATCH -next] driver core: switch to use dev_err_probe()
Posted by Yang Yingliang 3 years, 7 months ago
On 2022/8/22 14:09, Greg KH wrote:
> On Mon, Aug 22, 2022 at 10:10:22AM +0800, Yang Yingliang wrote:
>> Hi,
>>
>> On 2022/8/19 17:42, Greg KH wrote:
>>> On Fri, Aug 19, 2022 at 05:46:56PM +0800, Yang Yingliang wrote:
>>>> Use dev_err_probe() to simplify code and print error code.
>>>>
>>>> Signed-off-by: Yang Yingliang <yangyingliang@huawei.com>
>>>> ---
>>>>    drivers/base/core.c | 8 +++-----
>>>>    1 file changed, 3 insertions(+), 5 deletions(-)
>>>>
>>>> diff --git a/drivers/base/core.c b/drivers/base/core.c
>>>> index 753e7cca0f40..e51a09f9d0ec 100644
>>>> --- a/drivers/base/core.c
>>>> +++ b/drivers/base/core.c
>>>> @@ -2507,11 +2507,9 @@ static ssize_t uevent_store(struct device *dev, struct device_attribute *attr,
>>>>    	int rc;
>>>>    	rc = kobject_synth_uevent(&dev->kobj, buf, count);
>>>> -
>>>> -	if (rc) {
>>>> -		dev_err(dev, "uevent: failed to send synthetic uevent\n");
>>>> -		return rc;
>>>> -	}
>>>> +	if (rc)
>>>> +		return dev_err_probe(dev, rc,
>>>> +				     "uevent: failed to send synthetic uevent\n");
>>> I do not understand this at all, this is not on the probe path at all,
>>> so why is this function needed?
>>>
>>> Have you tested this?  What was the resulting output before and after
>>> this change?
>> Yes, after this change, the error code will be print.
> You did not answer my question.
>
> Again, this is not on the probe() callback path, so why are you wanting
> to call dev_err_probe()?
I was trying to simplify the code, I think I misuse the helper, you can 
ignore this patch.

Thanks,
Yang
>
> thanks,
>
> greg k-h
> .