Re: [PATCH] sb_edac: Fix detection on SNB machines

From: Borislav Petkov
Date: Sun Feb 08 2015 - 13:19:58 EST


On Sun, Feb 08, 2015 at 08:54:06AM -0800, Andy Lutomirski wrote:
> If there isn't an obvious fix, I'd be okay with reverting, too. The

I think the obvious fix is this:

diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
index 63aa6730e89e..1acf57ba4c86 100644
--- a/drivers/edac/sb_edac.c
+++ b/drivers/edac/sb_edac.c
@@ -2447,7 +2447,7 @@ static int sbridge_probe(struct pci_dev *pdev, const struct pci_device_id *id)
rc = sbridge_get_all_devices(&num_mc, pci_dev_descr_ibridge_table);
type = IVY_BRIDGE;
break;
- case PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_TA:
+ case PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_HA0:
rc = sbridge_get_all_devices(&num_mc, pci_dev_descr_sbridge_table);
type = SANDY_BRIDGE;
break;
---

because you changed it to match the

PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_HA0

device in the id_table but sbridge_probe() still matches against

PCI_DEVICE_ID_INTEL_SBRIDGE_IMC_TA

when it is about to call sbridge_get_all_devices() to get the rest of
the SNB PCI devices. Currently, it simply doesn't match any of the case
options in the switch-case statement there.

And this is what I'm seeing here: we match the 0x3ca8 device in
sbridge_probe() but it gets handed in 0x3ca0 due to your change.

I'll run this tomorrow to confirm but this looks like the correct fix to
me. And it makes sense for a change :)

Thanks.

--
Regards/Gruss,
Boris.

ECO tip #101: Trim your mails when you reply.
--
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/