# git rev-parse -q --verify fad87dbd48156ab940538f052f1820f4b6ed2819^{commit} fad87dbd48156ab940538f052f1820f4b6ed2819 already have revision, skipping fetch # git checkout -q -f -B kisskb fad87dbd48156ab940538f052f1820f4b6ed2819 # git clean -qxdf # < git log -1 # commit fad87dbd48156ab940538f052f1820f4b6ed2819 # Author: Nathan Lynch # Date: Thu Feb 22 16:19:14 2024 -0600 # # powerpc/rtas: use correct function name for resetting TCE tables # # The PAPR spec spells the function name as # # "ibm,reset-pe-dma-windows" # # but in practice firmware uses the singular form: # # "ibm,reset-pe-dma-window" # # in the device tree. Since we have the wrong spelling in the RTAS # function table, reverse lookups (token -> name) fail and warn: # # unexpected failed lookup for token 86 # WARNING: CPU: 1 PID: 545 at arch/powerpc/kernel/rtas.c:659 __do_enter_rtas_trace+0x2a4/0x2b4 # CPU: 1 PID: 545 Comm: systemd-udevd Not tainted 6.8.0-rc4 #30 # Hardware name: IBM,9105-22A POWER10 (raw) 0x800200 0xf000006 of:IBM,FW1060.00 (NL1060_028) hv:phyp pSeries # NIP [c0000000000417f0] __do_enter_rtas_trace+0x2a4/0x2b4 # LR [c0000000000417ec] __do_enter_rtas_trace+0x2a0/0x2b4 # Call Trace: # __do_enter_rtas_trace+0x2a0/0x2b4 (unreliable) # rtas_call+0x1f8/0x3e0 # enable_ddw.constprop.0+0x4d0/0xc84 # dma_iommu_dma_supported+0xe8/0x24c # dma_set_mask+0x5c/0xd8 # mlx5_pci_init.constprop.0+0xf0/0x46c [mlx5_core] # probe_one+0xfc/0x32c [mlx5_core] # local_pci_probe+0x68/0x12c # pci_call_probe+0x68/0x1ec # pci_device_probe+0xbc/0x1a8 # really_probe+0x104/0x570 # __driver_probe_device+0xb8/0x224 # driver_probe_device+0x54/0x130 # __driver_attach+0x158/0x2b0 # bus_for_each_dev+0xa8/0x120 # driver_attach+0x34/0x48 # bus_add_driver+0x174/0x304 # driver_register+0x8c/0x1c4 # __pci_register_driver+0x68/0x7c # mlx5_init+0xb8/0x118 [mlx5_core] # do_one_initcall+0x60/0x388 # do_init_module+0x7c/0x2a4 # init_module_from_file+0xb4/0x108 # idempotent_init_module+0x184/0x34c # sys_finit_module+0x90/0x114 # # And oopses are possible when lockdep is enabled or the RTAS # tracepoints are active, since those paths dereference the result of # the lookup. # # Use the correct spelling to match firmware's behavior, adjusting the # related constants to match. # # Signed-off-by: Nathan Lynch # Fixes: 8252b88294d2 ("powerpc/rtas: improve function information lookups") # Reported-by: Gaurav Batra # Signed-off-by: Michael Ellerman # Link: https://msgid.link/20240222-rtas-fix-ibm-reset-pe-dma-window-v1-1-7aaf235ac63c@linux.ibm.com # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 fad87dbd48156ab940538f052f1820f4b6ed2819 # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_le_defconfig+NO_NUMA_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_le_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config Merging /kisskb/src/arch/powerpc/configs/guest.config Value of CONFIG_VIRTIO_BLK is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BLK=m New value: CONFIG_VIRTIO_BLK=y Value of CONFIG_SCSI_VIRTIO is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_SCSI_VIRTIO=m New value: CONFIG_SCSI_VIRTIO=y Value of CONFIG_VIRTIO_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_NET=m New value: CONFIG_VIRTIO_NET=y Value of CONFIG_VIRTIO_CONSOLE is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_CONSOLE=m New value: CONFIG_VIRTIO_CONSOLE=y Value of CONFIG_VIRTIO_PCI is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_PCI=m New value: CONFIG_VIRTIO_PCI=y Value of CONFIG_VIRTIO_BALLOON is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BALLOON=m New value: CONFIG_VIRTIO_BALLOON=y Value of CONFIG_VHOST_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VHOST_NET=m New value: CONFIG_VHOST_NET=y Value of CONFIG_IBMVETH is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVETH=m New value: CONFIG_IBMVETH=y Value of CONFIG_IBMVNIC is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVNIC=m New value: CONFIG_IBMVNIC=y Merging /kisskb/src/arch/powerpc/configs/kvm_guest.config # # merged configuration written to .config (needs make) # # Added to kconfig CONFIG_NUMA=n # < make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_le_defconfig+NO_NUMA_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_le_defconfig+NO_NUMA_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 160 ARCH=powerpc O=/kisskb/build/powerpc-fixes_pseries_le_defconfig+NO_NUMA_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/powerpc-fixes_pseries_le_defconfig+NO_NUMA_powerpc-gcc13 # Build took: 0:03:20.876756