Re: [PATCH v3] PM / devfreq: Add new name attribute for sysfs

From: Greg KH
Date: Mon Nov 25 2019 - 03:50:59 EST


On Mon, Nov 25, 2019 at 10:03:57AM +0900, Chanwoo Choi wrote:
> The 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.
>
> Cc: stable@xxxxxxxxxxxxxxx
> Fixes: 4585fbcb5331 ("PM / devfreq: Modify the device name as devfreq(X) for sysfs")
> Signed-off-by: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> ---
> Changes from v2:
> - Change the order of name_show() according to the sequence in devfreq_attrs[]
>
> Changes from v1:
> - Update sysfs-class-devfreq documentation
> - Show device name directly from 'devfreq->dev.parent'
>

Shouldn't you just revert the original patch here? Why did the sysfs
file change?

> Documentation/ABI/testing/sysfs-class-devfreq | 7 +++++++
> drivers/devfreq/devfreq.c | 9 +++++++++
> 2 files changed, 16 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-class-devfreq b/Documentation/ABI/testing/sysfs-class-devfreq
> index 01196e19afca..75897e2fde43 100644
> --- a/Documentation/ABI/testing/sysfs-class-devfreq
> +++ b/Documentation/ABI/testing/sysfs-class-devfreq
> @@ -7,6 +7,13 @@ Description:
> The name of devfreq object denoted as ... is same as the
> name of device using devfreq.
>
> +What: /sys/class/devfreq/.../name
> +Date: November 2019
> +Contact: Chanwoo Choi <cw00.choi@xxxxxxxxxxx>
> +Description:
> + The /sys/class/devfreq/.../name shows the name of device
> + of the corresponding devfreq object.
> +
> What: /sys/class/devfreq/.../governor
> Date: September 2011
> Contact: MyungJoo Ham <myungjoo.ham@xxxxxxxxxxx>
> diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
> index 65a4b6cf3fa5..6f4d93d2a651 100644
> --- a/drivers/devfreq/devfreq.c
> +++ b/drivers/devfreq/devfreq.c
> @@ -1169,6 +1169,14 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
> }
> EXPORT_SYMBOL(devfreq_remove_governor);
>
> +static ssize_t name_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct devfreq *devfreq = to_devfreq(dev);
> + return sprintf(buf, "%s\n", dev_name(devfreq->dev.parent));

Why is the parent's name being set here, and not the device name?

The device name should be the name of the directory, and the parent's
name is the name of the parent directory, why is a sysfs attribute for a
name needed at all?

confused,

greg k-h