[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <62d5b13b2cf1a_9291929433@dwillia2-xfh.jf.intel.com.notmuch>
Date: Mon, 18 Jul 2022 12:15:07 -0700
From: Dan Williams <dan.j.williams@...el.com>
To: "Luck, Tony" <tony.luck@...el.com>,
"chu, jane" <jane.chu@...cle.com>, "bp@...en8.de" <bp@...en8.de>,
"tglx@...utronix.de" <tglx@...utronix.de>,
"mingo@...hat.com" <mingo@...hat.com>,
"dave.hansen@...ux.intel.com" <dave.hansen@...ux.intel.com>,
"x86@...nel.org" <x86@...nel.org>,
"linux-edac@...r.kernel.org" <linux-edac@...r.kernel.org>,
"Williams, Dan J" <dan.j.williams@...el.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"hch@....de" <hch@....de>,
"nvdimm@...ts.linux.dev" <nvdimm@...ts.linux.dev>
Subject: RE: [PATCH v3] x86/mce: retrieve poison range from hardware
Luck, Tony wrote:
> +m.misc = (MCI_MISC_ADDR_PHYS << 6) | __ffs64(mem_err->physical_addr_mask);
>
> Do we want to unconditionally trust the sanity of the BIOS provided physical_address_mask?
>
> There's a warning comment on the kernel __ffs64() function:
>
> * The result is not defined if no bits are set, so check that @word
> * is non-zero before calling this.
>
> Otherwise, this looks like a good idea.
It appears the kernel is trusting that ->physical_addr_mask is non-zero
in other paths. So this is at least equally broken in the presence of a
broken BIOS. The impact is potentially larger though with this change,
so it might be a good follow-on patch to make sure that
->physical_addr_mask gets fixed up to a minimum mask value.
Powered by blists - more mailing lists