Messages in this thread |  | | Date | Mon, 18 Jul 2022 12:15:07 -0700 | From | Dan Williams <> | 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.
|  |