2023-07-12 18:16:04

by Fenghua Yu

[permalink] [raw]
Subject: [PATCH 1/2] dmaengine: idxd: Simplify WQ attribute visibility checks

The functions that check if WQ attributes are invisible are almost
duplicate. Define a helper to simplify these functions and future
WQ attribute visibility checks as well.

Signed-off-by: Fenghua Yu <[email protected]>
Reviewed-by: Dave Jiang <[email protected]>
---
drivers/dma/idxd/sysfs.c | 20 +++++---------------
1 file changed, 5 insertions(+), 15 deletions(-)

diff --git a/drivers/dma/idxd/sysfs.c b/drivers/dma/idxd/sysfs.c
index 293739ac5596..388fba7c85f8 100644
--- a/drivers/dma/idxd/sysfs.c
+++ b/drivers/dma/idxd/sysfs.c
@@ -1288,12 +1288,9 @@ static struct attribute *idxd_wq_attributes[] = {
NULL,
};

-static bool idxd_wq_attr_op_config_invisible(struct attribute *attr,
- struct idxd_device *idxd)
-{
- return attr == &dev_attr_wq_op_config.attr &&
- !idxd->hw.wq_cap.op_config;
-}
+/* A WQ attr is invisible if the feature is not supported in WQCAP. */
+#define idxd_wq_attr_invisible(name, cap_field, a, idxd) \
+ ((a) == &dev_attr_wq_##name.attr && !(idxd)->hw.wq_cap.cap_field)

static bool idxd_wq_attr_max_batch_size_invisible(struct attribute *attr,
struct idxd_device *idxd)
@@ -1303,13 +1300,6 @@ static bool idxd_wq_attr_max_batch_size_invisible(struct attribute *attr,
idxd->data->type == IDXD_TYPE_IAX;
}

-static bool idxd_wq_attr_wq_prs_disable_invisible(struct attribute *attr,
- struct idxd_device *idxd)
-{
- return attr == &dev_attr_wq_prs_disable.attr &&
- !idxd->hw.wq_cap.wq_prs_support;
-}
-
static umode_t idxd_wq_attr_visible(struct kobject *kobj,
struct attribute *attr, int n)
{
@@ -1317,13 +1307,13 @@ static umode_t idxd_wq_attr_visible(struct kobject *kobj,
struct idxd_wq *wq = confdev_to_wq(dev);
struct idxd_device *idxd = wq->idxd;

- if (idxd_wq_attr_op_config_invisible(attr, idxd))
+ if (idxd_wq_attr_invisible(op_config, op_config, attr, idxd))
return 0;

if (idxd_wq_attr_max_batch_size_invisible(attr, idxd))
return 0;

- if (idxd_wq_attr_wq_prs_disable_invisible(attr, idxd))
+ if (idxd_wq_attr_invisible(prs_disable, wq_prs_support, attr, idxd))
return 0;

return attr->mode;
--
2.37.1



2023-08-01 19:11:17

by Vinod Koul

[permalink] [raw]
Subject: Re: [PATCH 1/2] dmaengine: idxd: Simplify WQ attribute visibility checks


On Wed, 12 Jul 2023 10:44:35 -0700, Fenghua Yu wrote:
> The functions that check if WQ attributes are invisible are almost
> duplicate. Define a helper to simplify these functions and future
> WQ attribute visibility checks as well.
>
>

Applied, thanks!

[1/2] dmaengine: idxd: Simplify WQ attribute visibility checks
commit: 97b1185fe54c8ce94104e3c7fa4ee0bbedd85920
[2/2] dmaengine: idxd: Expose ATS disable knob only when WQ ATS is supported
commit: 62b41b656666d2d35890124df5ef0881fe6d6769

Best regards,
--
~Vinod