It's possible that dev_set_name() returns -ENOMEM. We could catch and handle it by adding dev_set_name() return value check.
Cc: stable@vger.kernel.org Fixes: 775fa8c3aa22 ("PM / devfreq: Simplify the sysfs name of devfreq-event device") Signed-off-by: Ma Ke make_ruc2021@163.com
drivers/devfreq/devfreq-event.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/devfreq/devfreq-event.c b/drivers/devfreq/devfreq-event.c index 3ebac2496679..9479fbe71eda 100644 --- a/drivers/devfreq/devfreq-event.c +++ b/drivers/devfreq/devfreq-event.c @@ -328,7 +328,10 @@ struct devfreq_event_dev *devfreq_event_add_edev(struct device *dev, edev->dev.class = devfreq_event_class; edev->dev.release = devfreq_event_release_edev;
- dev_set_name(&edev->dev, "event%d", atomic_inc_return(&event_no));
- ret = dev_set_name(&edev->dev, "event%d", atomic_inc_return(&event_no));
- if (ret)
return ERR_PTR(-ENOMEM);
NACK. 1. edev is not handled. 2. although dev_set_name returns -ENOMEM or 0 today, you don't know if it will return something else in the future. Use what it has returned.
Cheers, MyungJoo
ret = device_register(&edev->dev); if (ret < 0) { put_device(&edev->dev); -- 2.25.1