On Thu, Jul 29, 2021 at 11:32:33PM +0000, Krzysztof Wilczyński wrote: > Hello, > > At the moment, the dependency on iomem_get_mapping() that is currently > used in the pci_create_resource_files() and pci_create_legacy_files() > stops us from completely retiring the late_initcall() that is used to > invoke pci_sysfs_init() when creating sysfs object for PCI devices. > > This dependency on iomem_get_mapping() stops us from retiring the > late_initcall at the moment as when we convert dynamically added sysfs > objects, that are primarily added in the pci_create_resource_files() and > pci_create_legacy_files(), as these attributes are added before the VFS > completes its initialisation, and since most of the PCI devices are > typically enumerated in subsys_initcall this leads to a failure and an > Oops related to iomem_get_mapping() access. > > See relevant conversations: > https://lore.kernel.org/linux-pci/20210204165831.2703772-1-daniel.vetter@xxxxxxxx/ > https://lore.kernel.org/linux-pci/20210313215747.GA2394467@bjorn-Precision-5520/ > > After some deliberation about the problem at hand, Dan Williams > suggested a solution to the problem, as per: > https://lore.kernel.org/linux-pci/CAPcyv4i0y_4cMGEpNVShLUyUk3nyWH203Ry3S87BqnDJE0Rmxg@xxxxxxxxxxxxxx/ > > The idea is to defer execution of the iomem_get_mapping() to only when > the sysfs open callback is run, and thus removing the reliance of > fs_initcalls to complete before any other sub-system that uses the > iomem_get_mapping(). > > Currently, the PCI sub-system will benefit the most from this change > allowing for it to complete the transition from dynamically created to > static sysfs objects. > > This series aims to take Dan Williams' idea through the finish line. > > Related to: > https://lore.kernel.org/linux-pci/20210527205845.GA1421476@bjorn-Precision-5520/ > https://lore.kernel.org/linux-pci/20210507102706.7658-1-danijel.slivka@xxxxxxx/ > https://lore.kernel.org/linux-pci/20200716110423.xtfyb3n6tn5ixedh@pali/ > > Krzysztof > No objection from me on these, Bjorn, mind if I take them through my driver core tree? thanks, greg k-h