Re: [char-misc-next 2/3] mei: export fw status registers through sysfs

From: Greg KH
Date: Wed Nov 26 2014 - 22:07:04 EST


On Wed, Nov 19, 2014 at 05:01:39PM +0200, Tomas Winkler wrote:
> The interface is for applications that monitor
> the fw health.
>
> We use device_create_with_groups interface
> to register attribute with the mei class device
>
> Signed-off-by :Tomas Winkler <tomas.winkler@xxxxxxxxx>
>
> Signed-off-by: Tomas Winkler <tomas.winkler@xxxxxxxxx>
> ---
> drivers/misc/mei/main.c | 43 +++++++++++++++++++++++++++++++++++++++++--
> 1 file changed, 41 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/misc/mei/main.c b/drivers/misc/mei/main.c
> index 5d6a15c3619a..3c019c0e60eb 100644
> --- a/drivers/misc/mei/main.c
> +++ b/drivers/misc/mei/main.c
> @@ -627,6 +627,44 @@ out:
> return mask;
> }
>
> +/**
> + * fw_status_show - mei device attribute show method
> + *
> + * @device: device pointer
> + * @attr: attribute pointer
> + * @buf: char out buffer
> + *
> + * Return: number of the bytes printed into buf or error
> + */
> +static ssize_t fw_status_show(struct device *device,
> + struct device_attribute *attr, char *buf)
> +{
> + struct mei_device *dev = dev_get_drvdata(device);
> + struct mei_fw_status fw_status;
> + int err, i;
> + ssize_t cnt = 0;
> +
> + mutex_lock(&dev->device_lock);
> + err = mei_fw_status(dev, &fw_status);
> + mutex_unlock(&dev->device_lock);
> + if (err) {
> + dev_err(device, "read fw_status error = %d\n", err);
> + return err;
> + }
> +
> + for (i = 0; i < fw_status.count; i++)
> + cnt += scnprintf(buf + cnt, PAGE_SIZE - cnt, "%08X\n",
> + fw_status.status[i]);

That really looks like more than a "one value per file" thing.

Hint, if you are ever worrying about the size of the buffer for your
sysfs file, you are doing something wrong.

thanks,

greg k-h
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/