Re: [PATCH v3] USB: serial: ftdi_sio: Convert to use dev_groups

From: Greg KH
Date: Fri Sep 02 2022 - 05:56:22 EST


On Fri, Sep 02, 2022 at 05:44:23PM +0800, Jiasheng Jiang wrote:
> The driver core supports the ability to handle the creation and removal
> of device-specific sysfs files in a race-free manner. Moreover, it can
> guarantee the success of creation. Therefore, it should be better to
> convert to use dev_groups.
>
> Signed-off-by: Jiasheng Jiang <jiasheng@xxxxxxxxxxx>
> ---
> Changelog:
>
> v2 -> v3:
>
> 1. Add is_visible to filter the unneeded files.
>
> v1 -> v2:
>
> 1. Change the title.
> 2. Switch to use an attribute group.
> ---
> drivers/usb/serial/ftdi_sio.c | 101 +++++++++++++++++-----------------
> 1 file changed, 51 insertions(+), 50 deletions(-)
>
> diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
> index d5a3986dfee7..479c3a5caaf8 100644
> --- a/drivers/usb/serial/ftdi_sio.c
> +++ b/drivers/usb/serial/ftdi_sio.c
> @@ -1107,11 +1107,40 @@ static u32 ftdi_232bm_baud_base_to_divisor(int baud, int base);
> static u32 ftdi_232bm_baud_to_divisor(int baud);
> static u32 ftdi_2232h_baud_base_to_divisor(int baud, int base);
> static u32 ftdi_2232h_baud_to_divisor(int baud);
> +static umode_t ftdi_sio_attr_is_visible(struct kobject *kobj,
> + struct attribute *attr, int idx);
> +static ssize_t latency_timer_store(struct device *dev,
> + struct device_attribute *attr,
> + const char *valbuf, size_t count);
> +static ssize_t event_char_store(struct device *dev,
> + struct device_attribute *attr, const char *valbuf, size_t count);
> +static ssize_t latency_timer_show(struct device *dev,
> + struct device_attribute *attr, char *buf);
> +

Please work with the code so that you do not have to pre-define these
functions. It should be possible. Worst case, you pre-define the
structure for the driver, that should be it.

And again, have you tested this change?

thanks,

greg k-h