[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170126065744.5425e6da@vento.lan>
Date: Thu, 26 Jan 2017 06:57:44 -0200
From: Mauro Carvalho Chehab <mchehab@....samsung.com>
To: Borislav Petkov <bp@...en8.de>
Cc: David Binderman <dcb314@...mail.com>,
"mchehab@...nel.org" <mchehab@...nel.org>,
"linux-edac@...r.kernel.org" <linux-edac@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: edac/i7300_edac.c:307: strange macro ?
Em Wed, 25 Jan 2017 16:37:28 +0100
Borislav Petkov <bp@...en8.de> escreveu:
> On Wed, Jan 25, 2017 at 12:04:04PM +0000, David Binderman wrote:
> > You'll have a very long wait to get a linux patch from me.
> >
> > I am happy for someone else to invent a patch.
>
> Ah ok, I thought you wanted to give it a try and would want me to help
> you with it. :-)
>
> Anyway, here it is:
>
> ---
> From: Borislav Petkov <bp@...e.de>
> Date: Wed, 25 Jan 2017 16:08:27 +0100
> Subject: [PATCH] EDAC, i7300: Test for the second channel properly
>
> REDMEMB[17] is the ECC_Locator bit, which, when set, identifies the
> CS[3:2] as the simbols in error. And thus the second channel.
>
> The macro computing it was wrong so get rid of it (it was used at one
> place only) and get rid of the conditional too. Generates better code
> this way anyway.
>
> Signed-off-by: Borislav Petkov <bp@...e.de>
> Reported-by: David Binderman <dcb314@...mail.com>
Seems OK to me. Do you want to put it on your tree, or do you
prefer if I put it on mine?
If you prefer to send via your tree:
Reviewed-by: Mauro Carvalho Chehab <mchehab@...pensource.com>
> ---
> drivers/edac/i7300_edac.c | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/drivers/edac/i7300_edac.c b/drivers/edac/i7300_edac.c
> index 0a912bf6de00..e391f5a716be 100644
> --- a/drivers/edac/i7300_edac.c
> +++ b/drivers/edac/i7300_edac.c
> @@ -304,7 +304,6 @@ static const char *ferr_global_lo_name[] = {
> #define REDMEMA 0xdc
>
> #define REDMEMB 0x7c
> - #define IS_SECOND_CH(v) ((v) * (1 << 17))
>
> #define RECMEMA 0xe0
> #define RECMEMA_BANK(v) (((v) >> 12) & 7)
> @@ -483,8 +482,9 @@ static void i7300_process_fbd_error(struct mem_ctl_info *mci)
> pci_read_config_dword(pvt->pci_dev_16_1_fsb_addr_map,
> REDMEMB, &value);
> channel = (branch << 1);
> - if (IS_SECOND_CH(value))
> - channel++;
> +
> + /* Second channel ? */
> + channel += !!(value & BIT(17));
>
> /* Clear the error bit */
> pci_write_config_dword(pvt->pci_dev_16_1_fsb_addr_map,
--
Thanks,
Mauro
Powered by blists - more mailing lists