# git rev-parse -q --verify 4025c784c573cab7e3f84746cc82b8033923ec62^{commit} 4025c784c573cab7e3f84746cc82b8033923ec62 already have revision, skipping fetch # git checkout -q -f -B kisskb 4025c784c573cab7e3f84746cc82b8033923ec62 # git clean -qxdf # < git log -1 # commit 4025c784c573cab7e3f84746cc82b8033923ec62 # Author: Nicholas Piggin # Date: Sat Jan 23 16:12:44 2021 +1000 # # powerpc/64s: prevent recursive replay_soft_interrupts causing superfluous interrupt # # When an asynchronous interrupt calls irq_exit, it checks for softirqs # that may have been created, and runs them. Running softirqs enables # local irqs, which can replay pending interrupts causing recursion in # replay_soft_interrupts. This abridged trace shows how this can occur: # # ! NIP replay_soft_interrupts # LR interrupt_exit_kernel_prepare # Call Trace: # interrupt_exit_kernel_prepare (unreliable) # interrupt_return # --- interrupt: ea0 at __rb_reserve_next # NIP __rb_reserve_next # LR __rb_reserve_next # Call Trace: # ring_buffer_lock_reserve # trace_function # function_trace_call # ftrace_call # __do_softirq # irq_exit # timer_interrupt # ! replay_soft_interrupts # interrupt_exit_kernel_prepare # interrupt_return # --- interrupt: ea0 at arch_local_irq_restore # # This can not be prevented easily, because softirqs must not block hard # irqs, so it has to be dealt with. # # The recursion is bounded by design in the softirq code because softirq # replay disables softirqs and loops around again to check for new # softirqs created while it ran, so that's not a problem. # # However it does mess up interrupt replay state, causing superfluous # interrupts when the second replay_soft_interrupts clears a pending # interrupt, leaving it still set in the first call in the 'happened' # local variable. # # Fix this by not caching a copy of irqs_happened across interrupt # handler calls. # # Fixes: 3282a3da25bd ("powerpc/64: Implement soft interrupt replay in C") # Signed-off-by: Nicholas Piggin # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/20210123061244.2076145-1-npiggin@gmail.com # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 4025c784c573cab7e3f84746cc82b8033923ec62 # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_defconfig # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/kernel.h:10:0, from /kisskb/src/include/linux/list.h:9, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:22:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ^ /kisskb/src/include/linux/compiler.h:78:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:139:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(fep->ring_mem_addr)) ^ /kisskb/src/arch/powerpc/boot/dts/fsl/mpc8541cds.dts:330.3-21: Warning (pci_device_bus_num): /pci@e0008000/i8259@19000:bus-range: PCI bus number 1 out of range, expected (0 - 0) /kisskb/src/arch/powerpc/boot/dts/fsl/mpc8555cds.dts:330.3-21: Warning (pci_device_bus_num): /pci@e0008000/i8259@19000:bus-range: PCI bus number 1 out of range, expected (0 - 0) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd48974) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) INFO: Uncompressed kernel (size 0xd38248) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xe00000) Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444546 Bytes = 6293.50 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443708 Bytes = 6292.68 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444280 Bytes = 6293.24 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444740 Bytes = 6293.69 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e00314 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443578 Bytes = 6292.56 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444739 Bytes = 6293.69 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e00314 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443159 Bytes = 6292.15 KiB = 6.14 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443546 Bytes = 6292.53 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e00314 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6412745 Bytes = 6262.45 KiB = 6.12 MiB Load Address: 00000000 Entry Point: 00000000 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444783 Bytes = 6293.73 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e00314 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444717 Bytes = 6293.67 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443705 Bytes = 6292.68 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444522 Bytes = 6293.48 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443456 Bytes = 6292.44 KiB = 6.14 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6444486 Bytes = 6293.44 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e002a4 Image Name: Linux-5.11.0-rc2-g4025c784c573 Created: Sun Jan 24 22:47:05 2021 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 6443500 Bytes = 6292.48 KiB = 6.15 MiB Load Address: 00e00000 Entry Point: 00e00314 Completed OK # rm -rf /kisskb/build/powerpc-fixes_mpc85xx_defconfig_powerpc-gcc5 # Build took: 0:01:26.593637