# git rev-parse -q --verify fedb8da96355f5f64353625bf96dc69423ad1826^{commit} fedb8da96355f5f64353625bf96dc69423ad1826 already have revision, skipping fetch # git checkout -q -f -B kisskb fedb8da96355f5f64353625bf96dc69423ad1826 # git clean -qxdf # < git log -1 # commit fedb8da96355f5f64353625bf96dc69423ad1826 # Author: John David Anglin # Date: Sun Aug 5 13:30:31 2018 -0400 # # parisc: Define mb() and add memory barriers to assembler unlock sequences # # For years I thought all parisc machines executed loads and stores in # order. However, Jeff Law recently indicated on gcc-patches that this is # not correct. There are various degrees of out-of-order execution all the # way back to the PA7xxx processor series (hit-under-miss). The PA8xxx # series has full out-of-order execution for both integer operations, and # loads and stores. # # This is described in the following article: # http://web.archive.org/web/20040214092531/http://www.cpus.hp.com/technical_references/advperf.shtml # # For this reason, we need to define mb() and to insert a memory barrier # before the store unlocking spinlocks. This ensures that all memory # accesses are complete prior to unlocking. The ldcw instruction performs # the same function on entry. # # Signed-off-by: John David Anglin # Cc: stable@vger.kernel.org # 4.0+ # Signed-off-by: Helge Deller # < /opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux-gcc --version # < git log --format=%s --max-count=1 fedb8da96355f5f64353625bf96dc69423ad1826 # < make -s -j 48 ARCH=powerpc O=/kisskb/build/linus-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- randconfig KCONFIG_SEED=0x5F63A1D8 # 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=n # Added to kconfig CONFIG_CPU_LITTLE_ENDIAN=y # Added to kconfig CONFIG_PPC_64=y # Added to kconfig CONFIG_PPC_BOOK3E_64=n # Added to kconfig CONFIG_PPC_BOOK3S_64=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_LD_HEAD_STUB_CATCH=y # Added to kconfig # Added to kconfig # yes \n | make -s -j 48 ARCH=powerpc O=/kisskb/build/linus-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -s -j 48 ARCH=powerpc O=/kisskb/build/linus-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- /opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/../lib/gcc/powerpc64le-linux/5.2.0/../../../../powerpc64le-linux/bin/ld: unrecognised emulation mode: elf32ppclinux Supported emulations: elf64lppc elf32lppc elf32lppclinux elf32lppcsim collect2: error: ld returned 1 exit status /kisskb/src/arch/powerpc/kernel/vdso32/Makefile:42: recipe for target 'arch/powerpc/kernel/vdso32/vdso32.so.dbg' failed make[3]: *** [arch/powerpc/kernel/vdso32/vdso32.so.dbg] Error 1 /kisskb/src/scripts/Makefile.build:558: recipe for target 'arch/powerpc/kernel/vdso32' failed make[2]: *** [arch/powerpc/kernel/vdso32] Error 2 make[2]: *** Waiting for unfinished jobs.... In file included from /kisskb/src/arch/powerpc/include/asm/nohash/pgtable.h:8:0, from /kisskb/src/arch/powerpc/include/asm/pgtable.h:20, from /kisskb/src/include/linux/hugetlb.h:12, from /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:19: /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c: In function 'populate_markers': /kisskb/src/arch/powerpc/include/asm/nohash/32/pgtable.h:72:19: error: 'PKMAP_BASE' undeclared (first use in this function) #define KVIRT_TOP PKMAP_BASE ^ /kisskb/src/arch/powerpc/include/asm/nohash/32/pgtable.h:85:21: note: in expansion of macro 'KVIRT_TOP' #define IOREMAP_TOP KVIRT_TOP ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 'IOREMAP_TOP' address_markers[i++].start_address = IOREMAP_TOP; ^ /kisskb/src/arch/powerpc/include/asm/nohash/32/pgtable.h:72:19: note: each undeclared identifier is reported only once for each function it appears in #define KVIRT_TOP PKMAP_BASE ^ /kisskb/src/arch/powerpc/include/asm/nohash/32/pgtable.h:85:21: note: in expansion of macro 'KVIRT_TOP' #define IOREMAP_TOP KVIRT_TOP ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:456:39: note: in expansion of macro 'IOREMAP_TOP' address_markers[i++].start_address = IOREMAP_TOP; ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:464:39: error: implicit declaration of function 'PKMAP_ADDR' [-Werror=implicit-function-declaration] address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP); ^ /kisskb/src/arch/powerpc/mm/dump_linuxpagetables.c:464:50: error: 'LAST_PKMAP' undeclared (first use in this function) address_markers[i++].start_address = PKMAP_ADDR(LAST_PKMAP); ^ cc1: some warnings being treated as errors /kisskb/src/scripts/Makefile.build:317: recipe for target 'arch/powerpc/mm/dump_linuxpagetables.o' failed make[2]: *** [arch/powerpc/mm/dump_linuxpagetables.o] Error 1 make[2]: *** Waiting for unfinished jobs.... /kisskb/src/Makefile:1029: recipe for target 'arch/powerpc/mm' failed make[1]: *** [arch/powerpc/mm] Error 2 make[1]: *** Waiting for unfinished jobs.... /kisskb/src/Makefile:1029: recipe for target 'arch/powerpc/kernel' failed make[1]: *** [arch/powerpc/kernel] Error 2 make[1]: *** wait: No child processes. Stop. Makefile:146: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -s -j 48 ARCH=powerpc O=/kisskb/build/linus-rand_randconfig+ppc64le_ppc64le CROSS_COMPILE=/opt/cross/kisskb/gcc-5.2.0-nolibc/powerpc64le-linux/bin/powerpc64le-linux- ' returned non-zero exit status 2 # rm -rf /kisskb/build/linus-rand_randconfig+ppc64le_ppc64le # Build took: 0:00:09.170314