# git rev-parse -q --verify daebe06ec4af252eba275f602a08086bc2bca5dc^{commit} daebe06ec4af252eba275f602a08086bc2bca5dc already have revision, skipping fetch # git checkout -q -f -B kisskb daebe06ec4af252eba275f602a08086bc2bca5dc # git clean -qxdf # < git log -1 # commit daebe06ec4af252eba275f602a08086bc2bca5dc # Author: Shilpasri G Bhat # Date: Wed Apr 25 16:29:31 2018 +0530 # # cpufreq: powernv: Fix the hardlockup by synchronus smp_call in timer interrupt # # gpstate_timer_handler() uses synchronous smp_call to set the pstate # on the requested core. This causes the below hard lockup: # # smp_call_function_single+0x110/0x180 (unreliable) # smp_call_function_any+0x180/0x250 # gpstate_timer_handler+0x1e8/0x580 # call_timer_fn+0x50/0x1c0 # expire_timers+0x138/0x1f0 # run_timer_softirq+0x1e8/0x270 # __do_softirq+0x158/0x3e4 # irq_exit+0xe8/0x120 # timer_interrupt+0x9c/0xe0 # decrementer_common+0x114/0x120 # -- interrupt: 901 at doorbell_global_ipi+0x34/0x50 # LR = arch_send_call_function_ipi_mask+0x120/0x130 # arch_send_call_function_ipi_mask+0x4c/0x130 # smp_call_function_many+0x340/0x450 # pmdp_invalidate+0x98/0xe0 # change_huge_pmd+0xe0/0x270 # change_protection_range+0xb88/0xe40 # mprotect_fixup+0x140/0x340 # SyS_mprotect+0x1b4/0x350 # system_call+0x58/0x6c # # One way to avoid this is removing the smp-call. We can ensure that the # timer always runs on one of the policy-cpus. If the timer gets # migrated to a cpu outside the policy then re-queue it back on the # policy->cpus. This way we can get rid of the smp-call which was being # used to set the pstate on the policy->cpus. # # Fixes: 7bc54b652f13 ("timers, cpufreq/powernv: Initialize the gpstate timer as pinned") # Cc: stable@vger.kernel.org # v4.8+ # Reported-by: Nicholas Piggin # Reported-by: Pridhiviraj Paidipeddi # Signed-off-by: Shilpasri G Bhat # Acked-by: Nicholas Piggin # Acked-by: Viresh Kumar # Acked-by: Vaidyanathan Srinivasan # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < git log --format=%s --max-count=1 daebe06ec4af252eba275f602a08086bc2bca5dc # < make -s -j 20 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc6xx_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc6xx_defconfig # make -s -j 20 ARCH=powerpc O=/kisskb/build/powerpc-fixes_ppc6xx_defconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/sound/ppc/pmac.h:25:0, from /kisskb/src/sound/ppc/awacs.c:29: /kisskb/src/sound/ppc/awacs.c: In function 'snd_pmac_awacs_init': /kisskb/src/include/sound/control.h:220:9: warning: 'speaker_vol' may be used uninitialized in this function [-Wmaybe-uninitialized] return _snd_ctl_add_slave(master, slave, 0); ^ /kisskb/src/sound/ppc/awacs.c:886:36: note: 'speaker_vol' was declared here struct snd_kcontrol *master_vol, *speaker_vol; ^ arch/powerpc/boot/mpc8272ads.dtb: Warning (pci_bridge): /pci@f0010800: missing bus-range for PCI bridge arch/powerpc/boot/mpc8272ads.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge' arch/powerpc/boot/pq2fads.dtb: Warning (pci_bridge): /pci@f0010800: missing bus-range for PCI bridge arch/powerpc/boot/pq2fads.dtb: Warning (pci_device_bus_num): Failed prerequisite 'pci_bridge' arch/powerpc/boot/mpc832x_rdb.dtb: Warning (interrupts_property): /qe@e0100000/mdio@3120/ethernet-phy@0:#interrupt-cells: size is (4), expected multiple of 8 arch/powerpc/boot/mpc832x_rdb.dtb: Warning (interrupts_property): /qe@e0100000/mdio@3120/ethernet-phy@4:#interrupt-cells: size is (4), expected multiple of 8 INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa5b0c8) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa6b820) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) INFO: Uncompressed kernel (size 0xa5b0c8) overlaps the address of the wrapper(0x400000) INFO: Fixing the link_address of wrapper to (0xb00000) Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:04 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4905861 Bytes = 4790.88 kB = 4.68 MB Load Address: 00000000 Entry Point: 00000000 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:04 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929075 Bytes = 4813.55 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b007a0 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:04 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929394 Bytes = 4813.86 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:04 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4930016 Bytes = 4814.47 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:05 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929507 Bytes = 4813.97 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b007a0 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:05 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929456 Bytes = 4813.92 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:05 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929579 Bytes = 4814.04 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:05 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929290 Bytes = 4813.76 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Image Name: Linux-4.17.0-rc2+ Created: Thu Apr 26 21:21:05 2018 Image Type: PowerPC Linux Kernel Image (gzip compressed) Data Size: 4929346 Bytes = 4813.81 kB = 4.70 MB Load Address: 00b00000 Entry Point: 00b001f4 Completed OK # rm -rf /kisskb/build/powerpc-fixes_ppc6xx_defconfig_powerpc-5.3 # Build took: 0:03:56.607534