| From foo@baz Thu Nov 9 09:48:01 CET 2017 |
| From: Yazen Ghannam <Yazen.Ghannam@amd.com> |
| Date: Fri, 27 Jan 2017 11:24:23 -0600 |
| Subject: EDAC, amd64: Add x86cpuid sanity check during init |
| |
| From: Yazen Ghannam <Yazen.Ghannam@amd.com> |
| |
| |
| [ Upstream commit 1bd9900b8301fc505f032c90ea487824cf824e99 ] |
| |
| Match one of the devices in amd64_cpuids[] before loading the module. |
| This is an additional sanity check against users trying to load |
| amd64_edac_mod on unsupported systems. |
| |
| Signed-off-by: Yazen Ghannam <Yazen.Ghannam@amd.com> |
| Cc: linux-edac <linux-edac@vger.kernel.org> |
| Link: http://lkml.kernel.org/r/1485537863-2707-9-git-send-email-Yazen.Ghannam@amd.com |
| [ Get rid of err_ret label, make it a bit more readable this way. ] |
| Signed-off-by: Borislav Petkov <bp@suse.de> |
| |
| Signed-off-by: Sasha Levin <alexander.levin@verizon.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/edac/amd64_edac.c | 6 ++++-- |
| drivers/edac/amd64_edac.h | 1 + |
| 2 files changed, 5 insertions(+), 2 deletions(-) |
| |
| --- a/drivers/edac/amd64_edac.c |
| +++ b/drivers/edac/amd64_edac.c |
| @@ -2984,8 +2984,11 @@ static int __init amd64_edac_init(void) |
| int err = -ENODEV; |
| int i; |
| |
| + if (!x86_match_cpu(amd64_cpuids)) |
| + return -ENODEV; |
| + |
| if (amd_cache_northbridges() < 0) |
| - goto err_ret; |
| + return -ENODEV; |
| |
| opstate_init(); |
| |
| @@ -3025,7 +3028,6 @@ err_free: |
| kfree(ecc_stngs); |
| ecc_stngs = NULL; |
| |
| -err_ret: |
| return err; |
| } |
| |
| --- a/drivers/edac/amd64_edac.h |
| +++ b/drivers/edac/amd64_edac.h |
| @@ -16,6 +16,7 @@ |
| #include <linux/slab.h> |
| #include <linux/mmzone.h> |
| #include <linux/edac.h> |
| +#include <asm/cpu_device_id.h> |
| #include <asm/msr.h> |
| #include "edac_core.h" |
| #include "mce_amd.h" |