# git rev-parse -q --verify be8d3292869350190dac9cd58c75bc005e3fd5c2^{commit} be8d3292869350190dac9cd58c75bc005e3fd5c2 already have revision, skipping fetch # git checkout -q -f -B kisskb be8d3292869350190dac9cd58c75bc005e3fd5c2 # git clean -qxdf # < git log -1 # commit be8d3292869350190dac9cd58c75bc005e3fd5c2 # Author: Oliver O'Halloran # Date: Mon Nov 18 17:55:53 2019 +1100 # # powerpc/powernv: Disable native PCIe port management # # On PowerNV the PCIe topology is (currently) managed by the powernv platform # code in Linux in cooperation with the platform firmware. Linux's native # PCIe port service drivers operate independently of both and this can cause # problems. # # The main issue is that the portbus driver will conflict with the platform # specific hotplug driver (pnv_php) over ownership of the MSI used to notify # the host when a hotplug event occurs. The portbus driver claims this MSI on # behalf of the individual port services because the same interrupt is used # for hotplug events, PMEs (on root ports), and link bandwidth change # notifications. The portbus driver will always claim the interrupt even if # the individual port service drivers, such as pciehp, are compiled out. # # The second, bigger, problem is that the hotplug port service driver # fundamentally does not work on PowerNV. The platform assumes that all # PCI devices have a corresponding arch-specific handle derived from the DT # node for the device (pci_dn) and without one the platform will not allow # a PCI device to be enabled. This problem is largely due to historical # baggage, but it can't be resolved without significant re-factoring of the # platform PCI support. # # We can fix these problems in the interim by setting the # "pcie_ports_disabled" flag during platform initialisation. The flag # indicates the platform owns the PCIe ports which stops the portbus driver # from being registered. # # This does have the side effect of disabling all port services drivers # that is: AER, PME, BW notifications, hotplug, and DPC. However, this is # not a huge disadvantage on PowerNV since these services are either unused # or handled through other means. # # Fixes: 66725152fb9f ("PCI/hotplug: PowerPC PowerNV PCI hotplug driver") # Signed-off-by: Oliver O'Halloran # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20191118065553.30362-1-oohall@gmail.com # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 be8d3292869350190dac9cd58c75bc005e3fd5c2 # < make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_powerpc-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- randconfig KCONFIG_SEED=0x159FE267 # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_CPU_BIG_ENDIAN=n # Added to kconfig CONFIG_CPU_LITTLE_ENDIAN=y # Added to kconfig CONFIG_PPC64=y # Added to kconfig CONFIG_PPC_BOOK3E_64=n # Added to kconfig CONFIG_PPC_BOOK3S_64=y # Added to kconfig CONFIG_PPC_DISABLE_WERROR=y # Added to kconfig CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # Added to kconfig CONFIG_TRIM_UNUSED_KSYMS=n # Added to kconfig CONFIG_UBSAN=n # yes \n | make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_powerpc-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- oldconfig yes: standard output: Broken pipe # make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_powerpc-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- /kisskb/src/kernel/sched/core.c: In function 'uclamp_update_active_tasks': /kisskb/src/kernel/sched/core.c:1081:23: error: storage size of 'it' isn't known struct css_task_iter it; ^~ /kisskb/src/kernel/sched/core.c:1084:2: error: implicit declaration of function 'css_task_iter_start'; did you mean 'sg_miter_start'? [-Werror=implicit-function-declaration] css_task_iter_start(css, 0, &it); ^~~~~~~~~~~~~~~~~~~ sg_miter_start /kisskb/src/kernel/sched/core.c:1085:14: error: implicit declaration of function 'css_task_iter_next'; did you mean 'disk_part_iter_next'? [-Werror=implicit-function-declaration] while ((p = css_task_iter_next(&it))) { ^~~~~~~~~~~~~~~~~~ disk_part_iter_next /kisskb/src/kernel/sched/core.c:1091:2: error: implicit declaration of function 'css_task_iter_end'; did you mean 'get_task_cred'? [-Werror=implicit-function-declaration] css_task_iter_end(&it); ^~~~~~~~~~~~~~~~~ get_task_cred /kisskb/src/kernel/sched/core.c:1081:23: warning: unused variable 'it' [-Wunused-variable] struct css_task_iter it; ^~ cc1: some warnings being treated as errors make[3]: *** [/kisskb/src/scripts/Makefile.build:265: kernel/sched/core.o] Error 1 make[2]: *** [/kisskb/src/scripts/Makefile.build:509: kernel/sched] Error 2 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [/kisskb/src/Makefile:1650: kernel] Error 2 make[1]: *** Waiting for unfinished jobs.... make: *** [Makefile:179: sub-make] Error 2 Command 'make -s -j 24 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_randconfig+ppc64le_powerpc-gcc8 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-8.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-next-rand_randconfig+ppc64le_powerpc-gcc8 # Build took: 0:03:08.986136