From: Greg KH <gregkh@linuxfoundation.org>
To: Kai Ye <yekai13@huawei.com>
Cc: herbert@gondor.apana.org.au, linux-crypto@vger.kernel.org,
linux-kernel@vger.kernel.org, wangzhou1@hisilicon.com,
liulongfang@huawei.com
Subject: Re: [PATCH v8 1/3] uacce: supports device isolation feature
Date: Fri, 9 Sep 2022 10:30:14 +0200 [thread overview]
Message-ID: <Yxr5lvnbYGk7SCy7@kroah.com> (raw)
In-Reply-To: <20220902031304.37516-2-yekai13@huawei.com>
On Fri, Sep 02, 2022 at 03:13:02AM +0000, Kai Ye wrote:
> UACCE adds the hardware error isolation API. Users can configure
> the isolation frequency by this sysfs node. UACCE reports the device
> isolate state to the user space. If the AER error frequency exceeds
> the value of setting for a certain period of time, the device will be
> isolated.
>
> Signed-off-by: Kai Ye <yekai13@huawei.com>
> ---
> drivers/misc/uacce/uacce.c | 58 ++++++++++++++++++++++++++++++++++++++
> include/linux/uacce.h | 11 ++++++++
> 2 files changed, 69 insertions(+)
>
> diff --git a/drivers/misc/uacce/uacce.c b/drivers/misc/uacce/uacce.c
> index 281c54003edc..41f454c89cd1 100644
> --- a/drivers/misc/uacce/uacce.c
> +++ b/drivers/misc/uacce/uacce.c
> @@ -7,6 +7,8 @@
> #include <linux/slab.h>
> #include <linux/uacce.h>
>
> +#define MAX_ERR_ISOLATE_COUNT 65535
What units is this in? Shouldn't this be in a .h file somewhere as it
is a limit you impose on a driver implementing this API.
> +
> static struct class *uacce_class;
> static dev_t uacce_devt;
> static DEFINE_MUTEX(uacce_mutex);
> @@ -339,12 +341,57 @@ static ssize_t region_dus_size_show(struct device *dev,
> uacce->qf_pg_num[UACCE_QFRT_DUS] << PAGE_SHIFT);
> }
>
> +static ssize_t isolate_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct uacce_device *uacce = to_uacce_device(dev);
> +
> + if (!uacce->ops->get_isolate_state)
> + return -ENODEV;
> +
> + return sysfs_emit(buf, "%d\n", uacce->ops->get_isolate_state(uacce));
> +}
> +
> +static ssize_t isolate_strategy_show(struct device *dev,
> + struct device_attribute *attr, char *buf)
> +{
> + struct uacce_device *uacce = to_uacce_device(dev);
> + u32 val;
> +
> + val = uacce->ops->isolate_strategy_read(uacce);
> + if (val > MAX_ERR_ISOLATE_COUNT)
> + return -EINVAL;
How can a driver return a higher number here?
> +
> + return sysfs_emit(buf, "%u\n", val);
> +}
> +
> +static ssize_t isolate_strategy_store(struct device *dev,
> + struct device_attribute *attr,
> + const char *buf, size_t count)
> +{
> + struct uacce_device *uacce = to_uacce_device(dev);
> + unsigned long val;
> + int ret;
> +
> + if (kstrtoul(buf, 0, &val) < 0)
> + return -EINVAL;
> +
> + if (val > MAX_ERR_ISOLATE_COUNT)
> + return -EINVAL;
> +
> + ret = uacce->ops->isolate_strategy_write(uacce, val);
> +
> + return ret ? ret : count;
Please write out if statements.
> +}
> +
> static DEVICE_ATTR_RO(api);
> static DEVICE_ATTR_RO(flags);
> static DEVICE_ATTR_RO(available_instances);
> static DEVICE_ATTR_RO(algorithms);
> static DEVICE_ATTR_RO(region_mmio_size);
> static DEVICE_ATTR_RO(region_dus_size);
> +static DEVICE_ATTR_RO(isolate);
> +static DEVICE_ATTR_RW(isolate_strategy);
>
> static struct attribute *uacce_dev_attrs[] = {
> &dev_attr_api.attr,
> @@ -353,6 +400,8 @@ static struct attribute *uacce_dev_attrs[] = {
> &dev_attr_algorithms.attr,
> &dev_attr_region_mmio_size.attr,
> &dev_attr_region_dus_size.attr,
> + &dev_attr_isolate.attr,
> + &dev_attr_isolate_strategy.attr,
> NULL,
> };
>
> @@ -368,6 +417,15 @@ static umode_t uacce_dev_is_visible(struct kobject *kobj,
> (!uacce->qf_pg_num[UACCE_QFRT_DUS])))
> return 0;
>
> + if (attr == &dev_attr_isolate_strategy.attr &&
> + (!uacce->ops->isolate_strategy_read ||
> + !uacce->ops->isolate_strategy_write))
So you need either a read or write? Why not both?
thanks,
greg k-h
next prev parent reply other threads:[~2022-09-09 8:30 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-02 3:13 [PATCH v8 0/3] crypto: hisilicon - supports device isolation feature Kai Ye
2022-09-02 3:13 ` [PATCH v8 1/3] uacce: " Kai Ye
2022-09-09 8:30 ` Greg KH [this message]
2022-09-02 3:13 ` [PATCH v8 2/3] Documentation: add a isolation strategy sysfs node for uacce Kai Ye
2022-09-09 8:27 ` Greg KH
2022-09-19 3:21 ` yekai (A)
2022-09-19 9:34 ` Greg KH
2022-09-21 3:04 ` yekai (A)
2022-09-02 3:13 ` [PATCH v8 3/3] crypto: hisilicon/qm - define the device isolation strategy Kai Ye
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Yxr5lvnbYGk7SCy7@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=herbert@gondor.apana.org.au \
--cc=linux-crypto@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=liulongfang@huawei.com \
--cc=wangzhou1@hisilicon.com \
--cc=yekai13@huawei.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.