[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240913164041.GKZuRrCeoFZBapVYaU@fat_crate.local>
Date: Fri, 13 Sep 2024 18:40:41 +0200
From: Borislav Petkov <bp@...en8.de>
To: shiju.jose@...wei.com
Cc: linux-edac@...r.kernel.org, linux-cxl@...r.kernel.org,
linux-acpi@...r.kernel.org, linux-mm@...ck.org,
linux-kernel@...r.kernel.org, tony.luck@...el.com,
rafael@...nel.org, lenb@...nel.org, mchehab@...nel.org,
dan.j.williams@...el.com, dave@...olabs.net,
jonathan.cameron@...wei.com, dave.jiang@...el.com,
alison.schofield@...el.com, vishal.l.verma@...el.com,
ira.weiny@...el.com, david@...hat.com, Vilas.Sridharan@....com,
leo.duran@....com, Yazen.Ghannam@....com, rientjes@...gle.com,
jiaqiyan@...gle.com, Jon.Grimm@....com, dave.hansen@...ux.intel.com,
naoya.horiguchi@....com, james.morse@....com, jthoughton@...gle.com,
somasundaram.a@....com, erdemaktas@...gle.com, pgonda@...gle.com,
duenwen@...gle.com, mike.malvestuto@...el.com, gthelen@...gle.com,
wschwartz@...erecomputing.com, dferguson@...erecomputing.com,
wbs@...amperecomputing.com, nifan.cxl@...il.com, jgroves@...ron.com,
vsalve@...ron.com, tanxiaofei@...wei.com, prime.zeng@...ilicon.com,
roberto.sassu@...wei.com, kangkang.shen@...urewei.com,
wanghuiqiang@...wei.com, linuxarm@...wei.com
Subject: Re: [PATCH v12 01/17] EDAC: Add support for EDAC device features
control
On Wed, Sep 11, 2024 at 10:04:30AM +0100, shiju.jose@...wei.com wrote:
> +/**
> + * edac_dev_feature_init - Init a RAS feature
> + * @parent: client device.
> + * @dev_data: pointer to the edac_dev_data structure, which contains
> + * client device specific info.
> + * @feat: pointer to struct edac_dev_feature.
> + * @attr_groups: pointer to attribute group's container.
> + *
> + * Returns number of scrub features attribute groups on success,
Not "scrub" - this is an interface initializing a generic feature.
> + * error otherwise.
> + */
> +static int edac_dev_feat_init(struct device *parent,
> + struct edac_dev_data *dev_data,
> + const struct edac_dev_feature *ras_feat,
> + const struct attribute_group **attr_groups)
> +{
> + int num;
> +
> + switch (ras_feat->ft_type) {
> + case RAS_FEAT_SCRUB:
> + dev_data->scrub_ops = ras_feat->scrub_ops;
> + dev_data->private = ras_feat->ctx;
> + return 1;
> + case RAS_FEAT_ECS:
> + num = ras_feat->ecs_info.num_media_frus;
> + dev_data->ecs_ops = ras_feat->ecs_ops;
> + dev_data->private = ras_feat->ctx;
> + return num;
> + case RAS_FEAT_PPR:
> + dev_data->ppr_ops = ras_feat->ppr_ops;
> + dev_data->private = ras_feat->ctx;
> + return 1;
> + default:
> + return -EINVAL;
> + }
> +}
And why does this function even exist and has kernel-doc comments when all it
does is assign a couple of values? And it gets called exactly once?
Just merge its body into the call site. There you can reuse the switch-case
there too. No need for too much noodling around.
> diff --git a/include/linux/edac.h b/include/linux/edac.h
> index b4ee8961e623..b337254cf5b8 100644
> --- a/include/linux/edac.h
> +++ b/include/linux/edac.h
> @@ -661,4 +661,59 @@ static inline struct dimm_info *edac_get_dimm(struct mem_ctl_info *mci,
>
> return mci->dimms[index];
> }
> +
> +/* EDAC device features */
> +
> +#define EDAC_FEAT_NAME_LEN 128
> +
> +/* RAS feature type */
> +enum edac_dev_feat {
> + RAS_FEAT_SCRUB,
> + RAS_FEAT_ECS,
> + RAS_FEAT_PPR,
> + RAS_FEAT_MAX
I still don't know what ECS or PPR is.
--
Regards/Gruss,
Boris.
https://people.kernel.org/tglx/notes-about-netiquette
Powered by blists - more mailing lists