tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git pending-fixes head: cdf641895851e4edf648a3d063e90f8f5a07e77f commit: ed8b94f6e0acd652ce69bd69d678a0c769172df8 [171/335] powerpc/pseries/iommu: Fix iommu initialisation during DLPAR add config: powerpc64-randconfig-c004-20211019 (https://download.01.org/0day-ci/archive/20240208/202402081627.nFKfKh2A-lkp@xxxxxxxxx/config) compiler: powerpc64-linux-gcc (GCC) 13.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240208/202402081627.nFKfKh2A-lkp@xxxxxxxxx/reproduce) If you fix the issue in a separate patch/commit (i.e. not just a new version of the same patch/commit), kindly add following tags | Reported-by: kernel test robot <lkp@xxxxxxxxx> | Closes: https://lore.kernel.org/oe-kbuild-all/202402081627.nFKfKh2A-lkp@xxxxxxxxx/ All errors (new ones prefixed by >>): powerpc64-linux-ld: warning: discarding dynamic section .glink powerpc64-linux-ld: warning: discarding dynamic section .plt powerpc64-linux-ld: linkage table error against `ppc_iommu_register_device' powerpc64-linux-ld: stubs don't match calculated size powerpc64-linux-ld: can not build stubs: bad value powerpc64-linux-ld: arch/powerpc/platforms/pseries/pci_dlpar.o: in function `init_phb_dynamic': >> arch/powerpc/platforms/pseries/pci_dlpar.c:38:(.text+0x98): undefined reference to `ppc_iommu_register_device' powerpc64-linux-ld: arch/powerpc/platforms/pseries/pci_dlpar.o: in function `remove_phb_dynamic': >> arch/powerpc/platforms/pseries/pci_dlpar.c:81:(.text+0x1fc): undefined reference to `ppc_iommu_unregister_device' vim +38 arch/powerpc/platforms/pseries/pci_dlpar.c 20 21 struct pci_controller *init_phb_dynamic(struct device_node *dn) 22 { 23 struct pci_controller *phb; 24 25 pr_debug("PCI: Initializing new hotplug PHB %pOF\n", dn); 26 27 phb = pcibios_alloc_controller(dn); 28 if (!phb) 29 return NULL; 30 rtas_setup_phb(phb); 31 pci_process_bridge_OF_ranges(phb, dn, 0); 32 phb->controller_ops = pseries_pci_controller_ops; 33 34 pci_devs_phb_init_dynamic(phb); 35 36 pseries_msi_allocate_domains(phb); 37 > 38 ppc_iommu_register_device(phb); 39 40 /* Create EEH devices for the PHB */ 41 eeh_phb_pe_create(phb); 42 43 if (dn->child) 44 pseries_eeh_init_edev_recursive(PCI_DN(dn)); 45 46 pcibios_scan_phb(phb); 47 pcibios_finish_adding_to_bus(phb->bus); 48 49 return phb; 50 } 51 EXPORT_SYMBOL_GPL(init_phb_dynamic); 52 53 /* RPA-specific bits for removing PHBs */ 54 int remove_phb_dynamic(struct pci_controller *phb) 55 { 56 struct pci_bus *b = phb->bus; 57 struct pci_host_bridge *host_bridge = to_pci_host_bridge(b->bridge); 58 struct resource *res; 59 int rc, i; 60 61 pr_debug("PCI: Removing PHB %04x:%02x...\n", 62 pci_domain_nr(b), b->number); 63 64 /* We cannot to remove a root bus that has children */ 65 if (!(list_empty(&b->children) && list_empty(&b->devices))) 66 return -EBUSY; 67 68 /* We -know- there aren't any child devices anymore at this stage 69 * and thus, we can safely unmap the IO space as it's not in use 70 */ 71 res = &phb->io_resource; 72 if (res->flags & IORESOURCE_IO) { 73 rc = pcibios_unmap_io_space(b); 74 if (rc) { 75 printk(KERN_ERR "%s: failed to unmap IO on bus %s\n", 76 __func__, b->name); 77 return 1; 78 } 79 } 80 > 81 ppc_iommu_unregister_device(phb); -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki