On Mon, Aug 26, 2019 at 02:16:04PM +0800, Xiaochun Lee wrote: > From: Xiaochun Lee <lix...@lenovo.com> > > When enabled Firmware First mode in UEFI, we need to > set the cmci_disabled and ignore_ce in mca cfg > that users can check correct status from > "/sys/devices/system/machinecheck/machinecheckXXX/cmci_disabled" > > Signed-off-by: Xiaochun Lee <lix...@lenovo.com> > --- > arch/x86/kernel/cpu/mce/core.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c > index 743370e..932c701 100644 > --- a/arch/x86/kernel/cpu/mce/core.c > +++ b/arch/x86/kernel/cpu/mce/core.c > @@ -1909,6 +1909,8 @@ static void __mce_disable_bank(void *arg) > int bank = *((int *)arg); > __clear_bit(bank, this_cpu_ptr(mce_poll_banks)); > cmci_disable_bank(bank); > + mca_cfg.cmci_disabled = true; > + mca_cfg.ignore_ce = true;
That's the global switch which gets written here for every bank. But you want to disable it per bank, not globally because the list of banks arch_apei_enable_cmcff() receives might not be all banks in the system which are in FF mode. Then, writing /sys/devices/system/machinecheck/machinecheckXXX/cmci_disabled from a different CPU and for a different bank reenables cmci again so you need to think of a better way how to address the per-bank thing and then to make it non-modifiable in FF mode so that it cannot be reenabled from sysfs again. Thx. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.