Re: [char-misc-next] mei: bus: add more client attributes to sysfs

From: Greg Kroah-Hartman
Date: Sat Nov 16 2019 - 06:58:33 EST


On Sat, Nov 16, 2019 at 04:21:36PM +0200, Tomas Winkler wrote:
> From: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
>
> Export more client attributes via sysfs that are usually obtained
> upon connection. In some cases, for example a monitoring application
> may wish to know the attributes without actually performing the connection.
> Added attributes:
> max number of connections, fixed address, max message length.
>
> Signed-off-by: Alexander Usyskin <alexander.usyskin@xxxxxxxxx>
> Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> ---
> Documentation/ABI/testing/sysfs-bus-mei | 21 +++++++++++++++
> drivers/misc/mei/bus.c | 33 +++++++++++++++++++++++
> drivers/misc/mei/client.h | 36 +++++++++++++++++++++++++
> 3 files changed, 90 insertions(+)
>
> diff --git a/Documentation/ABI/testing/sysfs-bus-mei b/Documentation/ABI/testing/sysfs-bus-mei
> index 3f8701e8fa24..3d37e2796d5a 100644
> --- a/Documentation/ABI/testing/sysfs-bus-mei
> +++ b/Documentation/ABI/testing/sysfs-bus-mei
> @@ -26,3 +26,24 @@ KernelVersion: 4.3
> Contact: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> Description: Stores mei client protocol version
> Format: %d
> +
> +What: /sys/bus/mei/devices/.../max_conn
> +Date: Nov 2019
> +KernelVersion: 5.5
> +Contact: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> +Description: Stores mei client maximum number of connections
> + Format: %d
> +
> +What: /sys/bus/mei/devices/.../fixed
> +Date: Nov 2019
> +KernelVersion: 5.5
> +Contact: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> +Description: Stores mei client fixed address, if any
> + Format: %d
> +
> +What: /sys/bus/mei/devices/.../max_len
> +Date: Nov 2019
> +KernelVersion: 5.5
> +Contact: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> +Description: Stores mei client maximum message length
> + Format: %d
> diff --git a/drivers/misc/mei/bus.c b/drivers/misc/mei/bus.c
> index 53bb394ccba6..a0a495c95e3c 100644
> --- a/drivers/misc/mei/bus.c
> +++ b/drivers/misc/mei/bus.c
> @@ -791,11 +791,44 @@ static ssize_t modalias_show(struct device *dev, struct device_attribute *a,
> }
> static DEVICE_ATTR_RO(modalias);
>
> +static ssize_t max_conn_show(struct device *dev, struct device_attribute *a,
> + char *buf)
> +{
> + struct mei_cl_device *cldev = to_mei_cl_device(dev);
> + u8 maxconn = mei_me_cl_max_conn(cldev->me_cl);
> +
> + return scnprintf(buf, PAGE_SIZE, "%d", maxconn);

Nit, you can just do sprintf() for sysfs file attributes as you "know"
the buffer is big enough and your variable will fit.

Not a bit deal, but something to do in the future.

thanks,

greg k-h