diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c index 3d6d25b64bb39fa4532456afc37ccef89e9c512d..69c0790b7b378ccfea1c30c12131466457e8246c 100644 --- a/arch/x86/kernel/amd_nb.c +++ b/arch/x86/kernel/amd_nb.c @@ -285,8 +285,7 @@ static int get_df_register(struct pci_dev *misc, u8 func, int offset, u32 *value else device = PCI_DEVICE_ID_HYGON_18H_M04H_DF_F1; break; - case 0x6: - case 0x7: + case 0x6 ... 0x8: device = PCI_DEVICE_ID_HYGON_18H_M05H_DF_F1; break; default: @@ -294,8 +293,7 @@ static int get_df_register(struct pci_dev *misc, u8 func, int offset, u32 *value } } else if (func == 5) { switch (boot_cpu_data.x86_model) { - case 0x6: - case 0x7: + case 0x6 ... 0x8: device = PCI_DEVICE_ID_HYGON_18H_M06H_DF_F5; break; default: @@ -328,7 +326,8 @@ int get_df_id(struct pci_dev *misc, u8 *id) u32 value; int ret; - if (boot_cpu_data.x86_model == 0x6) { + if (boot_cpu_data.x86_model >= 0x6 && + boot_cpu_data.x86_model <= 0xf) { /* F5x180[19:16]: DF ID */ ret = get_df_register(misc, 5, 0x180, &value); *id = (value >> 16) & 0xf; diff --git a/drivers/edac/amd64_edac.c b/drivers/edac/amd64_edac.c index d0ab59e80fb09aa969f375371c318ddba87ca87b..95546de921a443603677aee711129da937ad387b 100644 --- a/drivers/edac/amd64_edac.c +++ b/drivers/edac/amd64_edac.c @@ -4164,6 +4164,9 @@ static int per_family_init(struct amd64_pvt *pvt) } else if (pvt->model == 0x7) { pvt->ctl_name = "F18h_M07h"; break; + } else if (pvt->model == 0x8) { + pvt->ctl_name = "F18h_M08h"; + break; } else if (pvt->model == 0x10) { pvt->ctl_name = "F18h_M10h"; break;