diff options
author | John Feeney <jfeeney@redhat.com> | 2007-05-08 03:28:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:07 -0400 |
commit | 62456726d715042e1976b830c59fd73f41c4aaa6 (patch) | |
tree | 2a00d97cc4f9bb90835d07188e3befad4e49dde9 /drivers | |
parent | e63340ae6b6205fef26b40a75673d1c9c0c8bb90 (diff) |
Fix 82875 PCI setup
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@redhat.com>
Cc: Henrique de Moraes Holschuh <hmh@hmh.eng.br>
Cc: Greg KH <greg@kroah.com>
Cc: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: Doug Thompson <norsk5@xmission.com>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/edac/i82875p_edac.c | 13 |
1 files changed, 2 insertions, 11 deletions
diff --git a/drivers/edac/i82875p_edac.c b/drivers/edac/i82875p_edac.c index 161fe09a6d38..2800b3e614a9 100644 --- a/drivers/edac/i82875p_edac.c +++ b/drivers/edac/i82875p_edac.c | |||
@@ -261,10 +261,6 @@ static void i82875p_check(struct mem_ctl_info *mci) | |||
261 | i82875p_process_error_info(mci, &info, 1); | 261 | i82875p_process_error_info(mci, &info, 1); |
262 | } | 262 | } |
263 | 263 | ||
264 | #ifdef CONFIG_PROC_FS | ||
265 | extern int pci_proc_attach_device(struct pci_dev *); | ||
266 | #endif | ||
267 | |||
268 | /* Return 0 on success or 1 on failure. */ | 264 | /* Return 0 on success or 1 on failure. */ |
269 | static int i82875p_setup_overfl_dev(struct pci_dev *pdev, | 265 | static int i82875p_setup_overfl_dev(struct pci_dev *pdev, |
270 | struct pci_dev **ovrfl_pdev, void __iomem **ovrfl_window) | 266 | struct pci_dev **ovrfl_pdev, void __iomem **ovrfl_window) |
@@ -287,17 +283,12 @@ static int i82875p_setup_overfl_dev(struct pci_dev *pdev, | |||
287 | 283 | ||
288 | if (dev == NULL) | 284 | if (dev == NULL) |
289 | return 1; | 285 | return 1; |
286 | |||
287 | pci_bus_add_device(dev); | ||
290 | } | 288 | } |
291 | 289 | ||
292 | *ovrfl_pdev = dev; | 290 | *ovrfl_pdev = dev; |
293 | 291 | ||
294 | #ifdef CONFIG_PROC_FS | ||
295 | if ((dev->procent == NULL) && pci_proc_attach_device(dev)) { | ||
296 | i82875p_printk(KERN_ERR, "%s(): Failed to attach overflow " | ||
297 | "device\n", __func__); | ||
298 | return 1; | ||
299 | } | ||
300 | #endif /* CONFIG_PROC_FS */ | ||
301 | if (pci_enable_device(dev)) { | 292 | if (pci_enable_device(dev)) { |
302 | i82875p_printk(KERN_ERR, "%s(): Failed to enable overflow " | 293 | i82875p_printk(KERN_ERR, "%s(): Failed to enable overflow " |
303 | "device\n", __func__); | 294 | "device\n", __func__); |