• Scott Wood's avatar
    EDAC, mpc85xx: Make mpc85xx-pci-edac a platform device · 666db563
    Scott Wood authored
    Originally the mpc85xx-pci-edac driver bound directly to the PCI
    controller node.
    
    Commit
    
      905e75c4 ("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: default avatarMichael Ellerman <mpe@ellerman.id.au>
    Reviewed-by: default avatarJohannes Thumshirn <jthumshirn@suse.de>
    Signed-off-by: default avatarScott Wood <scottwood@freescale.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Cc: Daniel Axtens <dja@axtens.net>
    Cc: Doug Thompson <dougthompson@xmission.com>
    Cc: Jia Hongtao <B38951@freescale.com>
    Cc: Jiri Kosina <jkosina@suse.com>
    Cc: Kim Phillips <kim.phillips@freescale.com>
    Cc: linux-edac <linux-edac@vger.kernel.org>
    Cc: linuxppc-dev@lists.ozlabs.org
    Cc: Masanari Iida <standby24x7@gmail.com>
    Cc: Mauro Carvalho Chehab <mchehab@osg.samsung.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Randy Dunlap <rdunlap@infradead.org>
    Cc: Rob Herring <robh@kernel.org>
    Link: http://lkml.kernel.org/r/1449774432-18593-1-git-send-email-scottwood@freescale.comSigned-off-by: default avatarBorislav Petkov <bp@suse.de>
    666db563
mpc85xx_edac.c 34.9 KB