From: Yazen Ghannam <yazen.ghannam@amd.com>
To: Naveen Krishna Chatradhi <nchatrad@amd.com>
Cc: linux-edac@vger.kernel.org, bp@alien8.de, mingo@redhat.com,
mchehab@kernel.org, Muralidhara M K <muralimk@amd.com>
Subject: Re: [PATCH 07/14] EDAC/amd64: Add ecc_enabled() into pvt->ops
Date: Mon, 28 Mar 2022 16:17:00 +0000 [thread overview]
Message-ID: <YkHffKdAv9XByabw@yaz-ubuntu> (raw)
In-Reply-To: <20220228161354.54923-8-nchatrad@amd.com>
On Mon, Feb 28, 2022 at 09:43:47PM +0530, Naveen Krishna Chatradhi wrote:
> From: Muralidhara M K <muralimk@amd.com>
>
> Add function pointer for ecc_enabled() in pvt->ops and assign
> family specific ecc_enabled() definitions appropriately.
>
Please include the "why".
> Signed-off-by: Muralidhara M K <muralimk@amd.com>
> Signed-off-by: Naveen Krishna Chatradhi <nchatrad@amd.com>
> ---
> This patch is created by splitting the 5/12th patch in series
> [v7 5/12] https://patchwork.kernel.org/project/linux-edac/patch/20220203174942.31630-6-nchatrad@amd.com/
>
> drivers/edac/amd64_edac.c | 77 ++++++++++++++++++++++++---------------
> drivers/edac/amd64_edac.h | 1 +
> 2 files changed, 48 insertions(+), 30 deletions(-)
>
> diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c
> index 713ffe763e64..15d775a9ce7e 100644
> --- a/drivers/edac/amd64_edac.c
> +++ b/drivers/edac/amd64_edac.c
> @@ -3649,49 +3649,60 @@ static void restore_ecc_error_reporting(struct ecc_settings *s, u16 nid,
> amd64_warn("Error restoring NB MCGCTL settings!\n");
> }
>
> -static bool ecc_enabled(struct amd64_pvt *pvt)
> +static bool f1x_ecc_enabled(struct amd64_pvt *pvt)
> {
> u16 nid = pvt->mc_node_id;
> bool nb_mce_en = false;
> - u8 ecc_en = 0, i;
> + u8 ecc_en = 0;
> u32 value;
>
> - if (boot_cpu_data.x86 >= 0x17) {
> - u8 umc_en_mask = 0, ecc_en_mask = 0;
> - struct amd64_umc *umc;
> + amd64_read_pci_cfg(pvt->F3, NBCFG, &value);
>
> - for_each_umc(i) {
> - umc = &pvt->umc[i];
> + ecc_en = !!(value & NBCFG_ECC_ENABLE);
>
> - /* Only check enabled UMCs. */
> - if (!(umc->sdp_ctrl & UMC_SDP_INIT))
> - continue;
> + nb_mce_en = nb_mce_bank_enabled_on_node(nid);
> + if (!nb_mce_en)
> + edac_dbg(0, "NB MCE bank disabled, set MSR 0x%08x[4] on node %d to enable.\n",
> + MSR_IA32_MCG_CTL, nid);
>
> - umc_en_mask |= BIT(i);
> + edac_dbg(3, "Node %d: DRAM ECC %s.\n", nid, (ecc_en ? "enabled" : "disabled"));
>
> - if (umc->umc_cap_hi & UMC_ECC_ENABLED)
> - ecc_en_mask |= BIT(i);
> - }
> + if (!ecc_en || !nb_mce_en)
> + return false;
> + else
> + return true;
> +}
>
> - /* Check whether at least one UMC is enabled: */
> - if (umc_en_mask)
> - ecc_en = umc_en_mask == ecc_en_mask;
> - else
> - edac_dbg(0, "Node %d: No enabled UMCs.\n", nid);
> +static bool f17_ecc_enabled(struct amd64_pvt *pvt)
> +{
> + u8 umc_en_mask = 0, ecc_en_mask = 0;
> + u8 ecc_en = 0, i;
This line should go at the end to keep the longest->shortest line style.
> + u16 nid = pvt->mc_node_id;
> + bool nb_mce_en = false;
> + struct amd64_umc *umc;
>
> - /* Assume UMC MCA banks are enabled. */
> - nb_mce_en = true;
> - } else {
> - amd64_read_pci_cfg(pvt->F3, NBCFG, &value);
> + for_each_umc(i) {
> + umc = &pvt->umc[i];
> +
> + /* Only check enabled UMCs. */
> + if (!(umc->sdp_ctrl & UMC_SDP_INIT))
> + continue;
>
> - ecc_en = !!(value & NBCFG_ECC_ENABLE);
> + umc_en_mask |= BIT(i);
>
> - nb_mce_en = nb_mce_bank_enabled_on_node(nid);
> - if (!nb_mce_en)
> - edac_dbg(0, "NB MCE bank disabled, set MSR 0x%08x[4] on node %d to enable.\n",
> - MSR_IA32_MCG_CTL, nid);
> + if (umc->umc_cap_hi & UMC_ECC_ENABLED)
> + ecc_en_mask |= BIT(i);
> }
>
> + /* Check whether at least one UMC is enabled: */
> + if (umc_en_mask)
> + ecc_en = umc_en_mask == ecc_en_mask;
> + else
> + edac_dbg(0, "Node %d: No enabled UMCs.\n", nid);
> +
> + /* Assume UMC MCA banks are enabled. */
> + nb_mce_en = true;
> +
The nb_mce_en variable can be dropped since this is now a separate function.
Thanks,
Yazen
next prev parent reply other threads:[~2022-03-28 16:17 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-02-28 16:13 [PATCH 00/14] EDAC/amd64: move platform specific routines to pvt->ops Naveen Krishna Chatradhi
2022-02-28 16:13 ` [PATCH 01/14] EDAC/amd64: Move struct fam_type variables into struct amd64_pvt Naveen Krishna Chatradhi
2022-03-23 17:19 ` Yazen Ghannam
2022-03-23 21:25 ` Borislav Petkov
[not found] ` <37449efc-1157-1d48-ec2e-726bf6c7edcb@amd.com>
2022-04-04 18:00 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 02/14] EDAC/amd64: Add get_base_mask() into pvt->ops Naveen Krishna Chatradhi
2022-03-23 17:33 ` Yazen Ghannam
2022-03-23 17:34 ` Borislav Petkov
2022-02-28 16:13 ` [PATCH 03/14] EDAC/amd64: Add prep_chip_selects() " Naveen Krishna Chatradhi
2022-03-23 18:16 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 04/14] EDAC/amd64: Add determine_memory_type() " Naveen Krishna Chatradhi
2022-03-23 18:20 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 05/14] EDAC/amd64: Add get_ecc_sym_sz() " Naveen Krishna Chatradhi
2022-03-23 18:30 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 06/14] EDAC/amd64: Add get_mc_regs() " Naveen Krishna Chatradhi
2022-03-28 16:08 ` Yazen Ghannam
2022-03-31 12:19 ` Chatradhi, Naveen Krishna
2022-04-04 18:19 ` Yazen Ghannam
2022-04-04 18:27 ` Borislav Petkov
2022-02-28 16:13 ` [PATCH 07/14] EDAC/amd64: Add ecc_enabled() " Naveen Krishna Chatradhi
2022-03-28 16:17 ` Yazen Ghannam [this message]
2022-02-28 16:13 ` [PATCH 08/14] EDAC/amd64: Add determine_edac_cap() " Naveen Krishna Chatradhi
2022-03-28 16:22 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 09/14] EDAC/amd64: Add determine_edac_ctl_cap() " Naveen Krishna Chatradhi
2022-03-28 16:26 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 10/14] EDAC/amd64: Add setup_mci_misc_sttrs() " Naveen Krishna Chatradhi
2022-03-28 16:39 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 11/14] EDAC/amd64: Add populate_csrows() " Naveen Krishna Chatradhi
2022-03-28 16:47 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 12/14] EDAC/amd64: Add dump_misc_regs() " Naveen Krishna Chatradhi
2022-03-28 16:58 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 13/14] EDAC/amd64: Add get_cs_mode() " Naveen Krishna Chatradhi
2022-03-28 17:00 ` Yazen Ghannam
2022-02-28 16:13 ` [PATCH 14/14] EDAC/amd64: Add get_umc_error_info() " Naveen Krishna Chatradhi
2022-03-28 17:13 ` Yazen Ghannam
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=YkHffKdAv9XByabw@yaz-ubuntu \
--to=yazen.ghannam@amd.com \
--cc=bp@alien8.de \
--cc=linux-edac@vger.kernel.org \
--cc=mchehab@kernel.org \
--cc=mingo@redhat.com \
--cc=muralimk@amd.com \
--cc=nchatrad@amd.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.