# git rev-parse -q --verify 78e7b15e17ac175e7eed9e21c6f92d03d3b0a6fa^{commit} 78e7b15e17ac175e7eed9e21c6f92d03d3b0a6fa already have revision, skipping fetch # git checkout -q -f -B kisskb 78e7b15e17ac175e7eed9e21c6f92d03d3b0a6fa # git clean -qxdf # < git log -1 # commit 78e7b15e17ac175e7eed9e21c6f92d03d3b0a6fa # Author: Radu Rendec # Date: Tue Nov 27 22:20:48 2018 -0500 # # powerpc/msi: Fix NULL pointer access in teardown code # # The arch_teardown_msi_irqs() function assumes that controller ops # pointers were already checked in arch_setup_msi_irqs(), but this # assumption is wrong: arch_teardown_msi_irqs() can be called even when # arch_setup_msi_irqs() returns an error (-ENOSYS). # # This can happen in the following scenario: # - msi_capability_init() calls pci_msi_setup_msi_irqs() # - pci_msi_setup_msi_irqs() returns -ENOSYS # - msi_capability_init() notices the error and calls free_msi_irqs() # - free_msi_irqs() calls pci_msi_teardown_msi_irqs() # # This is easier to see when CONFIG_PCI_MSI_IRQ_DOMAIN is not set and # pci_msi_setup_msi_irqs() and pci_msi_teardown_msi_irqs() are just # aliases to arch_setup_msi_irqs() and arch_teardown_msi_irqs(). # # The call to free_msi_irqs() upon pci_msi_setup_msi_irqs() failure # seems legit, as it does additional cleanup; e.g. # list_del(&entry->list) and kfree(entry) inside free_msi_irqs() do # happen (MSI descriptors are allocated before pci_msi_setup_msi_irqs() # is called and need to be cleaned up if that fails). # # Fixes: 6b2fd7efeb88 ("PCI/MSI/PPC: Remove arch_msi_check_device()") # Cc: stable@vger.kernel.org # v3.18+ # Signed-off-by: Radu Rendec # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux-gcc --version # < git log --format=%s --max-count=1 78e7b15e17ac175e7eed9e21c6f92d03d3b0a6fa # < make -s -j 48 ARCH=s390 O=/kisskb/build/powerpc-fixes_s390-defconfig_s390x CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux- defconfig # make -s -j 48 ARCH=s390 O=/kisskb/build/powerpc-fixes_s390-defconfig_s390x CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/s390x-linux/bin/s390x-linux- /kisskb/src/kernel/cgroup/cgroup-v1.c: In function 'cgroup1_mount': /kisskb/src/kernel/cgroup/cgroup-v1.c:1256:20: warning: 'root' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/mm/hugetlb.c: In function 'alloc_pool_huge_page': /kisskb/src/mm/hugetlb.c:1433:5: warning: 'page' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /kisskb/src/kernel/printk/printk.c:186:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c: In function 'proc_reg_open': /kisskb/src/include/linux/list.h:65:12: warning: 'pdeo' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/fs/proc/inode.c:341:21: note: 'pdeo' was declared here /kisskb/src/drivers/net/tun.c: In function 'tun_get_user': /kisskb/src/drivers/net/tun.c:1819:30: warning: 'copylen' may be used uninitialized in this function [-Wuninitialized] /kisskb/src/drivers/net/tun.c:1729:46: warning: 'linear' may be used uninitialized in this function [-Wuninitialized] Completed OK # rm -rf /kisskb/build/powerpc-fixes_s390-defconfig_s390x # Build took: 0:01:57.669002