lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Mon, 24 Jun 2013 11:49:49 +1000 From: Benjamin Herrenschmidt <benh@...nel.crashing.org> To: Guenter Roeck <linux@...ck-us.net> Cc: linuxppc-dev@...ts.ozlabs.org, linux-kernel@...r.kernel.org, Yuanquan Chen <Yuanquan.Chen@...escale.com>, Hiroo Matsumoto <matsumoto.hiroo@...fujitsu.com> Subject: Re: [PATCH v2] powerpc/pci: Improve device hotplug initialization On Fri, 2013-06-21 at 09:54 -0700, Guenter Roeck wrote: > > v2: Ensure that PCI bus fixup code has been executed before calling > > device setup code. > > > Hi Ben, > > any comments/feedback on this approach ? > > It is much less invasive than before and should address your concerns. And also less nice cleanup :-) I'll have a look. Cheers, Ben. > Thanks, > Guenter > > > arch/powerpc/kernel/pci-common.c | 17 ++++++++++++----- > > 1 file changed, 12 insertions(+), 5 deletions(-) > > > > diff --git a/arch/powerpc/kernel/pci-common.c b/arch/powerpc/kernel/pci-common.c > > index 7f2273c..6909b13 100644 > > --- a/arch/powerpc/kernel/pci-common.c > > +++ b/arch/powerpc/kernel/pci-common.c > > @@ -992,7 +992,7 @@ void pcibios_setup_bus_self(struct pci_bus *bus) > > ppc_md.pci_dma_bus_setup(bus); > > } > > > > -void pcibios_setup_device(struct pci_dev *dev) > > +static void pcibios_setup_device(struct pci_dev *dev) > > { > > /* Fixup NUMA node as it may not be setup yet by the generic > > * code and is needed by the DMA init > > @@ -1013,6 +1013,17 @@ void pcibios_setup_device(struct pci_dev *dev) > > ppc_md.pci_irq_fixup(dev); > > } > > > > +int pcibios_add_device(struct pci_dev *dev) > > +{ > > + /* > > + * We can only call pcibios_setup_device() after bus setup is complete, > > + * since some of the platform specific DMA setup code depends on it. > > + */ > > + if (dev->bus->is_added) > > + pcibios_setup_device(dev); > > + return 0; > > +} > > + > > void pcibios_setup_bus_devices(struct pci_bus *bus) > > { > > struct pci_dev *dev; > > @@ -1467,10 +1478,6 @@ int pcibios_enable_device(struct pci_dev *dev, int mask) > > if (ppc_md.pcibios_enable_device_hook(dev)) > > return -EINVAL; > > > > - /* avoid pcie irq fix up impact on cardbus */ > > - if (dev->hdr_type != PCI_HEADER_TYPE_CARDBUS) > > - pcibios_setup_device(dev); > > - > > return pci_enable_resources(dev, mask); > > } > > > > -- > > 1.7.9.7 > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@...r.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists