[PATCH] Fix 82875 PCI setup

From: Adam Jackson
Date: Thu Mar 29 2007 - 12:38:38 EST


From: John Feeney <jfeeney@xxxxxxxxxx>

The 82875 EDAC driver enables an otherwise-hidden PCI device, but
doesn't register it as a PCI device properly. Therefore, the device
list in /proc/bus/pci/devices is different than the tree in
/sys/bus/pci. This usually manifests as the X server failing to start,
since it expects the two lists to be consistent.

Signed-off-by: Adam Jackson <ajackson@xxxxxxxxxx>

--- linux-2.6.18.noarch/drivers/edac/i82875p_edac.c~
+++ linux-2.6.18.noarch/drivers/edac/i82875p_edac.c
@@ -261,10 +261,6 @@ static void i82875p_check(struct mem_ctl
i82875p_process_error_info(mci, &info, 1);
}

-#ifdef CONFIG_PROC_FS
-extern int pci_proc_attach_device(struct pci_dev *);
-#endif
-
/* Return 0 on success or 1 on failure. */
static int i82875p_setup_overfl_dev(struct pci_dev *pdev,
struct pci_dev **ovrfl_pdev, void __iomem **ovrfl_window)
@@ -287,17 +283,12 @@ static int i82875p_setup_overfl_dev(stru

if (dev == NULL)
return 1;
+
+ pci_bus_add_device(dev);
}

*ovrfl_pdev = dev;

-#ifdef CONFIG_PROC_FS
- if ((dev->procent == NULL) && pci_proc_attach_device(dev)) {
- i82875p_printk(KERN_ERR, "%s(): Failed to attach overflow "
- "device\n", __func__);
- return 1;
- }
-#endif /* CONFIG_PROC_FS */
if (pci_enable_device(dev)) {
i82875p_printk(KERN_ERR, "%s(): Failed to enable overflow "
"device\n", __func__);



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