From mboxrd@z Thu Jan 1 00:00:00 1970 From: wangyijing@huawei.com (Yijing Wang) Date: Mon, 19 Jan 2015 10:04:01 +0800 Subject: [PATCH 01/28] PCI: Rip out pci_bus_add_devices() from pci_scan_bus() In-Reply-To: References: <1421372666-12288-1-git-send-email-wangyijing@huawei.com> <1421372666-12288-2-git-send-email-wangyijing@huawei.com> Message-ID: <54BC6611.9020002@huawei.com> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On 2015/1/17 7:16, Yinghai Lu wrote: > On Fri, Jan 16, 2015 at 3:15 PM, Yinghai Lu wrote: >> On Thu, Jan 15, 2015 at 5:43 PM, Yijing Wang wrote: >>> Pci_bus_add_devices() should not be placed in pci_scan_bus(). >>> Now pci device will be added to driver core once its >>> creation. All things left in pci_bus_add_devices() are >>> driver attachment and other trivial sysfs things. >>> Pci_scan_bus() should be the function responsible for >>> scanning PCI devices, not including driver attachment. >>> Other, some callers(m68k,unicore32,alpha) of pci_scan_bus() >>> will call pci_bus_size_bridges() and pci_bus_assign_resources() >>> after pci_scan_bus(). >>> >>> E.g. >>> In m68k >>> mcf_pci_init() >>> pci_scan_bus() >>> ... >>> pci_bus_add_devices() --- try to attach driver >>> pci_fixup_irqs() >>> pci_bus_size_bridges() >>> pci_bus_assign_resources() >>> >>> It is not correct, resources should be assigned correctly >>> before attaching driver. >> > No, for booting path, at that time pci drivers are *NOT* loaded yet. Hi Yinghai, I knew code flow here would not cause problems, sorry the log confused you, I will refresh it. But I think pci_scan_bus()/pci_scan_root_bus() which could only be used during system boot up(before module_init) make the pci scan logic obscure. Because most callers additionally call pci_bus_size_bridges() and pci_bus_assign_resources() later, so rip out pci_bus_add_devices() from pci_scan_bus()/pci_scan_root_bus() make code have better readability. Thanks! Yijing. > > Thanks > > Yinghai > > . > -- Thanks! Yijing