# 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/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux-gcc --version # < git log --format=%s --max-count=1 fedb8da96355f5f64353625bf96dc69423ad1826 # < make -s -j 48 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- allmodconfig # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_HAVE_FTRACE_MCOUNT_RECORD=n # Added to kconfig CONFIG_SAMPLES=n # Added to kconfig CONFIG_MODULE_SIG=n # yes \n | make -s -j 48 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- oldconfig yes: standard output: Broken pipe yes: write error # make -s -j 48 ARCH=sparc64 O=/kisskb/build/linus_sparc64-allmodconfig_sparc64 CROSS_COMPILE=/opt/cross/kisskb/br-sparc64-full-2016.08-613-ge98b4dd/bin/sparc64-linux- :1332:2: warning: #warning syscall io_pgetevents not implemented [-Wcpp] :1335:2: warning: #warning syscall rseq not implemented [-Wcpp] In file included from /kisskb/src/arch/sparc/include/asm/cmpxchg.h:5:0, from /kisskb/src/arch/sparc/include/asm/atomic_64.h:12, from /kisskb/src/arch/sparc/include/asm/atomic.h:5, from /kisskb/src/include/linux/atomic.h:5, from /kisskb/src/include/asm-generic/qspinlock_types.h:28, from /kisskb/src/arch/sparc/include/asm/spinlock_types.h:6, from /kisskb/src/include/linux/spinlock_types.h:13, from /kisskb/src/include/linux/spinlock.h:82, from /kisskb/src/include/linux/wait.h:9, from /kisskb/src/include/linux/wait_bit.h:8, from /kisskb/src/include/linux/fs.h:6, from /kisskb/src/fs/ocfs2/file.c:27: /kisskb/src/fs/ocfs2/file.c: In function 'ocfs2_file_write_iter': /kisskb/src/arch/sparc/include/asm/cmpxchg_64.h:55:22: warning: value computed is not used [-Wunused-value] #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) ^ /kisskb/src/fs/ocfs2/file.c:2386:3: note: in expansion of macro 'xchg' xchg(&iocb->ki_complete, saved_ki_complete); ^ /kisskb/src/drivers/input/joystick/analog.c:176:2: warning: #warning Precise timer not defined for this architecture. [-Wcpp] #warning Precise timer not defined for this architecture. ^ In file included from /kisskb/src/arch/sparc/include/asm/cmpxchg.h:5:0, from /kisskb/src/arch/sparc/include/asm/atomic_64.h:12, from /kisskb/src/arch/sparc/include/asm/atomic.h:5, from /kisskb/src/include/linux/atomic.h:5, from /kisskb/src/include/asm-generic/qspinlock_types.h:28, from /kisskb/src/arch/sparc/include/asm/spinlock_types.h:6, from /kisskb/src/include/linux/spinlock_types.h:13, from /kisskb/src/include/linux/spinlock.h:82, 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/module.h:10, from /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:12: /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c: In function 'ixgbevf_xdp_setup': /kisskb/src/arch/sparc/include/asm/cmpxchg_64.h:55:22: warning: value computed is not used [-Wunused-value] #define xchg(ptr,x) ((__typeof__(*(ptr)))__xchg((unsigned long)(x),(ptr),sizeof(*(ptr)))) ^ /kisskb/src/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c:4448:4: note: in expansion of macro 'xchg' xchg(&adapter->rx_ring[i]->xdp_prog, adapter->xdp_prog); ^ kernel: arch/sparc/boot/image is ready kernel: arch/sparc/boot/zImage is ready Completed OK # rm -rf /kisskb/build/linus_sparc64-allmodconfig_sparc64 # Build took: 0:10:57.050687