Re: [PATCH 1/6] EDAC PCI device to DEVICE cleanup

From: Andrew Morton
Date: Tue Jun 27 2006 - 17:47:39 EST


Doug Thompson <norsk5@xxxxxxxxx> wrote:
>
> From: Doug Thompson <norsk5@xxxxxxxxxxxx>
>
> Change MC drivers from using CVS revision strings for their version number,
> Now each driver has its own local string.
>
> Remove some PCI dependencies from the core EDAC module.
> Made the code 'struct device' centric instead of 'struct pci_dev'
> Most of the code changes here are from a patch by Dave Jiang.
> It may be best to eventually move the PCI-specific code into a separate source file.
>
> ...
>
> --- linux-2.6.17-rc6.orig/drivers/edac/edac_mc.h 2006-06-12 18:17:17.000000000 -0600
> +++ linux-2.6.17-rc6/drivers/edac/edac_mc.h 2006-06-12 18:17:29.000000000 -0600
> @@ -88,6 +88,12 @@
> #define PCI_VEND_DEV(vend, dev) PCI_VENDOR_ID_ ## vend, \
> PCI_DEVICE_ID_ ## vend ## _ ## dev
>
> +#if defined(CONFIG_X86) && defined(CONFIG_PCI)
> +#define dev_name(dev) pci_name(to_pci_dev(dev))
> +#else
> +#define dev_name(dev) to_platform_device(dev)->name
> +#endif

This looks fishy. pci_name() should work OK on non-x86?

> +static void do_pci_parity_check(void)
> +{
> + unsigned long flags;
> + int before_count;
> +
> + debugf3("%s()\n", __func__);
> +
> + if (!check_pci_parity)
> + return;
> +
> + before_count = atomic_read(&pci_parity_count);
> +
> + /* scan all PCI devices looking for a Parity Error on devices and
> + * bridges
> + */
> + local_irq_save(flags);
> + edac_pci_dev_parity_iterator(edac_pci_dev_parity_test);
> + local_irq_restore(flags);
> +
> + /* Only if operator has selected panic on PCI Error */
> + if (panic_on_pci_parity) {
> + /* If the count is different 'after' from 'before' */
> + if (before_count != atomic_read(&pci_parity_count))
> + panic("EDAC: PCI Parity Error");
> + }
> +}

What is the local_irq_save() attempting to do in there? It won't provide
any locking-style coverage on SMP..

-
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/