# 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/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux-gcc --version # < /opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux-ld --version # < git log --format=%s --max-count=1 be8d3292869350190dac9cd58c75bc005e3fd5c2 # < make -s -j 120 ARCH=arm64 O=/kisskb/build/powerpc-next_arm64-defconfig_arm64-gcc5.4 CROSS_COMPILE=/opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux- defconfig # make -s -j 120 ARCH=arm64 O=/kisskb/build/powerpc-next_arm64-defconfig_arm64-gcc5.4 CROSS_COMPILE=/opt/cross/kisskb/br-aarch64-glibc-2016.08-613-ge98b4dd/bin/aarch64-linux- arch/arm64/Makefile:27: ld does not support --fix-cortex-a53-843419; kernel may be susceptible to erratum arch/arm64/Makefile:38: LSE atomics not supported by binutils arch/arm64/Makefile:62: CROSS_COMPILE_COMPAT not defined or empty, the compat vDSO will not be built In file included from /kisskb/src/include/linux/list.h:9:0, from /kisskb/src/include/linux/wait.h:7, from /kisskb/src/include/linux/wait_bit.h:8, from /kisskb/src/include/linux/fs.h:6, from /kisskb/src/fs/btrfs/send.c:7: /kisskb/src/fs/btrfs/send.c: In function 'process_extent': /kisskb/src/include/linux/kernel.h:37:33: warning: 'clone_src_i_size' may be used uninitialized in this function [-Wmaybe-uninitialized] #define IS_ALIGNED(x, a) (((x) & ((typeof(x))(a) - 1)) == 0) ^ /kisskb/src/fs/btrfs/send.c:5088:6: note: 'clone_src_i_size' was declared here u64 clone_src_i_size; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c: In function 'sh_mobile_i2c_isr': /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:399:26: warning: 'data' may be used uninitialized in this function [-Wmaybe-uninitialized] pd->msg->buf[real_pos] = data; ^ /kisskb/src/drivers/i2c/busses/i2c-sh_mobile.c:372:16: note: 'data' was declared here unsigned char data; ^ In file included from /kisskb/src/include/linux/rwsem.h:16:0, from /kisskb/src/include/linux/notifier.h:15, from /kisskb/src/include/linux/clk.h:14, from /kisskb/src/drivers/tty/serial/sh-sci.c:24: /kisskb/src/drivers/tty/serial/sh-sci.c: In function 'sci_dma_rx_submit': /kisskb/src/include/linux/spinlock.h:288:3: warning: 'flags' may be used uninitialized in this function [-Wmaybe-uninitialized] _raw_spin_unlock_irqrestore(lock, flags); \ ^ /kisskb/src/drivers/tty/serial/sh-sci.c:1351:16: note: 'flags' was declared here unsigned long flags; ^ Completed OK # rm -rf /kisskb/build/powerpc-next_arm64-defconfig_arm64-gcc5.4 # Build took: 0:02:42.469095