Hi Bartlomiej,
On 2018년 08월 29일 21:50, Bartlomiej Zolnierkiewicz wrote:
Hi Chanwoo,
On Wednesday, August 29, 2018 04:34:06 PM Chanwoo Choi wrote:
commit 4585fbcb5331 ("PM / devfreq: Modify the device name as devfreq(X) for sysfs") changed the node name to devfreq(x). After this commit, it is not possible to get the device name through /sys/class/devfreq/devfreq(X)/*.
Add new name attribute in order to get device name.
Could you please describe the issue encountered in more detail (what the old device name is needed for)?
You can check it on mail thread[1]. [1] https://lkml.org/lkml/2018/5/8/1042
Cc: stable@vger.kernel.org Fixes: 4585fbcb5331 ("PM / devfreq: Modify the device name as devfreq(X) for sysfs") Signed-off-by: Chanwoo Choi cw00.choi@samsung.com
drivers/devfreq/devfreq.c | 11 +++++++++++ include/linux/devfreq.h | 3 +++ 2 files changed, 14 insertions(+)
diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c index 4c49bb1330b5..2145563d5ee5 100644 --- a/drivers/devfreq/devfreq.c +++ b/drivers/devfreq/devfreq.c @@ -620,6 +620,9 @@ struct devfreq *devfreq_add_device(struct device *dev, } devfreq->max_freq = devfreq->scaling_max_freq;
- devfreq->name = dev_name(devfreq->dev.parent);
It seems that 'dev' can be used instead of 'devfreq->dev.parent'.
devfreq->dev.parent is same with dev. it doesn't matter.
- if (IS_ERR_OR_NULL(devfreq->name))
Error values are not encoded into pointer returned by dev_name() (drivers/base/ code is only checking for pointer being NULL).
OK. I'll just check whether NULL or not.
return -EINVAL;
This leaks 'devfreq' object and doesn't encode return value into pointer returned by devfreq_add_device(), it should be replaced by:
Right. I'll fix it.
err = -EINVAL; goto err_dev;
dev_set_name(&devfreq->dev, "devfreq%d", atomic_inc_return(&devfreq_no)); err = device_register(&devfreq->dev);
Best regards,
Bartlomiej Zolnierkiewicz Samsung R&D Institute Poland Samsung Electronics