x86/MCE/AMD: Fix the thresholding machinery initialization order
authorBorislav Petkov <bp@suse.de>
Tue, 27 Nov 2018 13:41:37 +0000 (14:41 +0100)
committerBorislav Petkov <bp@suse.de>
Wed, 28 Nov 2018 09:10:36 +0000 (10:10 +0100)
commit60c8144afc287ef09ce8c1230c6aa972659ba1bb
tree9717bd4fcefcdb068fd737b31f9f52f054dcf1fd
parentac26d1f74cfc19c8dc9d533b5f20e99dbee3d9bd
x86/MCE/AMD: Fix the thresholding machinery initialization order

Currently, the code sets up the thresholding interrupt vector and only
then goes about initializing the thresholding banks. Which is wrong,
because an early thresholding interrupt would cause a NULL pointer
dereference when accessing those banks and prevent the machine from
booting.

Therefore, set the thresholding interrupt vector only *after* having
initialized the banks successfully.

Fixes: 18807ddb7f88 ("x86/mce/AMD: Reset Threshold Limit after logging error")
Reported-by: Rafał Miłecki <rafal@milecki.pl>
Reported-by: John Clemens <clemej@gmail.com>
Signed-off-by: Borislav Petkov <bp@suse.de>
Tested-by: Rafał Miłecki <rafal@milecki.pl>
Tested-by: John Clemens <john@deater.net>
Cc: Aravind Gopalakrishnan <aravindksg.lkml@gmail.com>
Cc: linux-edac@vger.kernel.org
Cc: stable@vger.kernel.org
Cc: Tony Luck <tony.luck@intel.com>
Cc: x86@kernel.org
Cc: Yazen Ghannam <Yazen.Ghannam@amd.com>
Link: https://lkml.kernel.org/r/20181127101700.2964-1-zajec5@gmail.com
Link: https://bugzilla.kernel.org/show_bug.cgi?id=201291
arch/x86/kernel/cpu/mcheck/mce_amd.c