Commit 62456726d715042e1976b830c59fd73f41c4aaa6
Committed by
Linus Torvalds
1 parent
e63340ae6b
Exists in
master
and in
7 other branches
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>
Showing 1 changed file with 2 additions and 11 deletions Side-by-side Diff
drivers/edac/i82875p_edac.c
... | ... | @@ -261,10 +261,6 @@ |
261 | 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 | 264 | /* Return 0 on success or 1 on failure. */ |
269 | 265 | static int i82875p_setup_overfl_dev(struct pci_dev *pdev, |
270 | 266 | struct pci_dev **ovrfl_pdev, void __iomem **ovrfl_window) |
271 | 267 | |
... | ... | @@ -287,17 +283,12 @@ |
287 | 283 | |
288 | 284 | if (dev == NULL) |
289 | 285 | return 1; |
286 | + | |
287 | + pci_bus_add_device(dev); | |
290 | 288 | } |
291 | 289 | |
292 | 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 | 292 | if (pci_enable_device(dev)) { |
302 | 293 | i82875p_printk(KERN_ERR, "%s(): Failed to enable overflow " |
303 | 294 | "device\n", __func__); |