mirror of
https://github.com/torvalds/linux.git
synced 2026-10-07 22:37:45 -04:00
Originally the mpc85xx-pci-edac driver bound directly to the PCI
controller node.
Commit
905e75c46d ("powerpc/fsl-pci: Unify pci/pcie initialization code")
turned the PCI controller code into a platform device. Since we can't
have two drivers binding to the same device, the EDAC code was changed
to be called into as a library-style submodule. However, this doesn't
work if the EDAC driver is built as a module.
Commit
8d8fcba6d1ea ("EDAC: Rip out the edac_subsys reference counting")
exposed another problem with this approach -- mpc85xx_pci_err_probe()
was being called in the same early boot phase that the PCI controller
is initialized, rather than in the device_initcall phase that the EDAC
layer expects. This caused a crash on boot.
To fix this, the PCI controller code now creates a child platform device
specifically for EDAC, which the mpc85xx-pci-edac driver binds to.
Reported-by: Michael Ellerman <[email protected]>
Reviewed-by: Johannes Thumshirn <[email protected]>
Signed-off-by: Scott Wood <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: Benjamin Herrenschmidt <[email protected]>
Cc: Daniel Axtens <[email protected]>
Cc: Doug Thompson <[email protected]>
Cc: Jia Hongtao <[email protected]>
Cc: Jiri Kosina <[email protected]>
Cc: Kim Phillips <[email protected]>
Cc: linux-edac <[email protected]>
Cc: [email protected]
Cc: Masanari Iida <[email protected]>
Cc: Mauro Carvalho Chehab <[email protected]>
Cc: Paul Mackerras <[email protected]>
Cc: Randy Dunlap <[email protected]>
Cc: Rob Herring <[email protected]>
Link: http://lkml.kernel.org/r/[email protected]
Signed-off-by: Borislav Petkov <[email protected]>
9 lines
116 B
C
9 lines
116 B
C
#ifndef FSL_EDAC_H
|
|
#define FSL_EDAC_H
|
|
|
|
struct mpc85xx_edac_pci_plat_data {
|
|
struct device_node *of_node;
|
|
};
|
|
|
|
#endif
|