# git rev-parse -q --verify b03897cf318dfc47de33a7ecbc7655584266f034^{commit} b03897cf318dfc47de33a7ecbc7655584266f034 already have revision, skipping fetch # git checkout -q -f -B kisskb b03897cf318dfc47de33a7ecbc7655584266f034 # git clean -qxdf # < git log -1 # commit b03897cf318dfc47de33a7ecbc7655584266f034 # Author: Gautham R. Shenoy # Date: Wed Jul 18 14:03:16 2018 +0530 # # powerpc/powernv: Fix save/restore of SPRG3 on entry/exit from stop (idle) # # On 64-bit servers, SPRN_SPRG3 and its userspace read-only mirror # SPRN_USPRG3 are used as userspace VDSO write and read registers # respectively. # # SPRN_SPRG3 is lost when we enter stop4 and above, and is currently not # restored. As a result, any read from SPRN_USPRG3 returns zero on an # exit from stop4 (Power9 only) and above. # # Thus in this situation, on POWER9, any call from sched_getcpu() always # returns zero, as on powerpc, we call __kernel_getcpu() which relies # upon SPRN_USPRG3 to report the CPU and NUMA node information. # # Fix this by restoring SPRN_SPRG3 on wake up from a deep stop state # with the sprg_vdso value that is cached in PACA. # # Fixes: e1c1cfed5432 ("powerpc/powernv: Save/Restore additional SPRs for stop4 cpuidle") # Cc: stable@vger.kernel.org # v4.14+ # Reported-by: Florian Weimer # Signed-off-by: Gautham R. Shenoy # Reviewed-by: Michael Ellerman # Signed-off-by: Michael Ellerman # < /opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < git log --format=%s --max-count=1 b03897cf318dfc47de33a7ecbc7655584266f034 # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- randconfig KCONFIG_SEED=0x25926B26 # 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=y # Added to kconfig CONFIG_PPC64=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_CC_STACKPROTECTOR_STRONG=n # Added to kconfig CONFIG_GCC_PLUGINS=n # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # Added to kconfig # yes \n | make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- /kisskb/src/net/Makefile:24: CC cannot link executables. Skipping bpfilter. In file included from /kisskb/src/arch/powerpc/include/asm/mmu.h:338:0, from /kisskb/src/arch/powerpc/include/asm/paca.h:22, from /kisskb/src/arch/powerpc/include/asm/hw_irq.h:64, from /kisskb/src/arch/powerpc/include/asm/irqflags.h:12, from /kisskb/src/include/linux/irqflags.h:16, from /kisskb/src/include/linux/spinlock.h:54, from /kisskb/src/include/linux/seqlock.h:36, from /kisskb/src/include/linux/time.h:6, from /kisskb/src/include/linux/stat.h:19, from /kisskb/src/include/linux/compat.h:12, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:16: /kisskb/src/arch/powerpc/include/asm/mmu-book3e.h:275:2: error: #error Unsupported page size In file included from /kisskb/src/arch/powerpc/include/asm/nohash/pgtable.h:6:0, from /kisskb/src/arch/powerpc/include/asm/pgtable.h:20, from /kisskb/src/include/linux/memremap.h:7, from /kisskb/src/include/linux/mm.h:27, from /kisskb/src/include/linux/mman.h:5, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:13:2: error: #error "Page size not supported" In file included from /kisskb/src/arch/powerpc/include/asm/nohash/pgtable.h:6:0, from /kisskb/src/arch/powerpc/include/asm/pgtable.h:20, from /kisskb/src/include/linux/memremap.h:7, from /kisskb/src/include/linux/mm.h:27, from /kisskb/src/include/linux/mman.h:5, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:121:28: error: unknown type name 'pud_t' /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:126:30: error: unknown type name 'pud_t' /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:137:30: error: unknown type name 'pud_t' /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:139:29: error: unknown type name 'pud_t' /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:144:1: error: unknown type name 'pud_t' /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h: In function 'pte_pud': /kisskb/src/arch/powerpc/include/asm/nohash/64/pgtable.h:146:2: error: implicit declaration of function '__pud' [-Werror=implicit-function-declaration] In file included from /kisskb/src/arch/powerpc/include/asm/pgtable.h:51:0, from /kisskb/src/include/linux/memremap.h:7, from /kisskb/src/include/linux/mm.h:27, from /kisskb/src/include/linux/mman.h:5, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/include/asm-generic/pgtable.h: At top level: /kisskb/src/include/asm-generic/pgtable.h:16:2: error: #error CONFIG_PGTABLE_LEVELS is not consistent with __PAGETABLE_{P4D,PUD,PMD}_FOLDED /kisskb/src/include/asm-generic/pgtable.h:52:29: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:53:6: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:215:1: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:217:10: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:280:34: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:395:28: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:395:41: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:524:20: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:549:41: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:871:34: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:1029:32: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:1041:34: error: unknown type name 'pud_t' /kisskb/src/include/asm-generic/pgtable.h:1049:37: error: unknown type name 'pud_t' In file included from /kisskb/src/include/linux/mman.h:5:0, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/include/linux/mm.h:349:2: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h:464:30: error: unknown type name 'pud_t' In file included from /kisskb/src/include/linux/mm.h:479:0, from /kisskb/src/include/linux/mman.h:5, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/include/linux/huge_mm.h:15:5: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:15:21: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:21:64: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:39:4: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:52:4: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:318:47: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:334:37: error: unknown type name 'pud_t' /kisskb/src/include/linux/huge_mm.h:351:23: error: unknown type name 'pud_t' In file included from /kisskb/src/include/linux/mman.h:5:0, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/include/linux/mm.h:1351:19: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h: In function 'mm_inc_nr_puds': /kisskb/src/include/linux/mm.h:1716:40: error: 'pud_t' undeclared (first use in this function) /kisskb/src/include/linux/mm.h:1716:40: note: each undeclared identifier is reported only once for each function it appears in /kisskb/src/include/linux/mm.h: In function 'mm_dec_nr_puds': /kisskb/src/include/linux/mm.h:1721:40: error: 'pud_t' undeclared (first use in this function) /kisskb/src/include/linux/mm.h: At top level: /kisskb/src/include/linux/mm.h:1736:39: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h:1806:54: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h:1992:61: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h:1997:58: error: unknown type name 'pud_t' In file included from /kisskb/src/include/linux/mman.h:5:0, from /kisskb/src/arch/powerpc/kernel/asm-offsets.c:23: /kisskb/src/include/linux/mm.h:2659:1: error: unknown type name 'pud_t' /kisskb/src/include/linux/mm.h:2660:29: error: unknown type name 'pud_t' cc1: some warnings being treated as errors /kisskb/src/./Kbuild:56: recipe for target 'arch/powerpc/kernel/asm-offsets.s' failed make[2]: *** [arch/powerpc/kernel/asm-offsets.s] Error 1 /kisskb/src/Makefile:1086: recipe for target 'prepare0' failed make[1]: *** [prepare0] Error 2 make[1]: *** Waiting for unfinished jobs.... Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-fixes_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/powerpc-fixes_powerpc-randconfig_powerpc # Build took: 0:00:22.407135