Skip to content

Commit 97b1185

Browse files
Fenghua Yuvinodkoul
authored andcommitted
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 <fenghua.yu@intel.com> Reviewed-by: Dave Jiang <dave.jiang@intel.com> Link: https://lore.kernel.org/r/20230712174436.3435088-1-fenghua.yu@intel.com Signed-off-by: Vinod Koul <vkoul@kernel.org>
1 parent cae701b commit 97b1185

1 file changed

Lines changed: 5 additions & 15 deletions

File tree

drivers/dma/idxd/sysfs.c

Lines changed: 5 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1288,12 +1288,9 @@ static struct attribute *idxd_wq_attributes[] = {
12881288
NULL,
12891289
};
12901290

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

12981295
static bool idxd_wq_attr_max_batch_size_invisible(struct attribute *attr,
12991296
struct idxd_device *idxd)
@@ -1303,27 +1300,20 @@ static bool idxd_wq_attr_max_batch_size_invisible(struct attribute *attr,
13031300
idxd->data->type == IDXD_TYPE_IAX;
13041301
}
13051302

1306-
static bool idxd_wq_attr_wq_prs_disable_invisible(struct attribute *attr,
1307-
struct idxd_device *idxd)
1308-
{
1309-
return attr == &dev_attr_wq_prs_disable.attr &&
1310-
!idxd->hw.wq_cap.wq_prs_support;
1311-
}
1312-
13131303
static umode_t idxd_wq_attr_visible(struct kobject *kobj,
13141304
struct attribute *attr, int n)
13151305
{
13161306
struct device *dev = container_of(kobj, struct device, kobj);
13171307
struct idxd_wq *wq = confdev_to_wq(dev);
13181308
struct idxd_device *idxd = wq->idxd;
13191309

1320-
if (idxd_wq_attr_op_config_invisible(attr, idxd))
1310+
if (idxd_wq_attr_invisible(op_config, op_config, attr, idxd))
13211311
return 0;
13221312

13231313
if (idxd_wq_attr_max_batch_size_invisible(attr, idxd))
13241314
return 0;
13251315

1326-
if (idxd_wq_attr_wq_prs_disable_invisible(attr, idxd))
1316+
if (idxd_wq_attr_invisible(prs_disable, wq_prs_support, attr, idxd))
13271317
return 0;
13281318

13291319
return attr->mode;

0 commit comments

Comments
 (0)