# git rev-parse -q --verify 3e4724df99998b34881cd5170e845e9c10bae634^{commit} 3e4724df99998b34881cd5170e845e9c10bae634 already have revision, skipping fetch # git checkout -q -f -B kisskb 3e4724df99998b34881cd5170e845e9c10bae634 # git clean -qxdf # git log -1 commit 3e4724df99998b34881cd5170e845e9c10bae634 Author: Matt Brown Date: Wed May 24 09:45:59 2017 +1000 powerpc/lib: Split xor_vmx file to guarantee instruction ordering The xor_vmx.c file is used for the RAID5 xor operations. In these functions altivec is enabled to run the operation and then disabled. However due to compiler instruction reordering, altivec instructions are being run before enable_altivec() and after disable_altivec(). This patch splits the non-altivec code into xor_vmx_glue.c which calls the altivec functions in xor_vmx.c. By compiling xor_vmx_glue.c without -maltivec we can guarantee that altivec instruction will not be reordered outside of the enable/disable block. Signed-off-by: Matt Brown 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 3e4724df99998b34881cd5170e845e9c10bae634 # < make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- allnoconfig # make -j 10 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release GEN ./Makefile UPD include/config/kernel.release WRAP arch/powerpc/include/generated/asm/clkdev.h WRAP arch/powerpc/include/generated/asm/div64.h WRAP arch/powerpc/include/generated/asm/export.h WRAP arch/powerpc/include/generated/asm/irq_regs.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/local64.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/preempt.h WRAP arch/powerpc/include/generated/asm/rwsem.h WRAP arch/powerpc/include/generated/asm/vtime.h CHK include/generated/uapi/linux/version.h UPD include/generated/uapi/linux/version.h CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h Using /home/kisskb/slave/src as source for kernel HOSTCC scripts/sortextable HOSTCC scripts/dtc/dtc.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o CC scripts/mod/empty.o HOSTCC scripts/dtc/livetree.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o CHK scripts/mod/devicetable-offsets.h UPD scripts/mod/devicetable-offsets.h HOSTCC scripts/dtc/checks.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-lexer.lex.c SHIPPED scripts/dtc/dtc-parser.tab.h SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/mod/file2alias.o HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/mod/sumversion.o HOSTCC scripts/dtc/dtc-parser.tab.o HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h CHK include/generated/bounds.h UPD include/generated/bounds.h CC arch/powerpc/kernel/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh CC init/main.o CHK include/generated/compile.h LD usr/built-in.o CC init/do_mounts.o CC init/noinitramfs.o CC init/init_task.o UPD include/generated/compile.h CC init/version.o CC arch/powerpc/mm/fault.o LD arch/powerpc/sysdev/built-in.o AS arch/powerpc/lib/string.o LD arch/powerpc/platforms/built-in.o CC arch/powerpc/kernel/cputable.o LD arch/powerpc/math-emu/built-in.o CC arch/powerpc/lib/alloc.o LD arch/powerpc/crypto/built-in.o AS arch/powerpc/lib/crtsavres.o LD arch/powerpc/net/built-in.o CC arch/powerpc/lib/code-patching.o CC arch/powerpc/lib/feature-fixups.o CC arch/powerpc/kernel/ptrace.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/kernel/irq.o AS arch/powerpc/lib/div64.o AS arch/powerpc/lib/copy_32.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/pmc.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/mm/mem.o CC arch/powerpc/lib/checksum_wrappers.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/mm/pgtable.o LD arch/powerpc/lib/built-in.o CC arch/powerpc/kernel/process.o CPP arch/powerpc/kernel/systbl_chk.i LD init/mounts.o CC kernel/fork.o LD init/built-in.o CC arch/powerpc/kernel/idle.o LD certs/built-in.o CC arch/powerpc/kernel/signal.o CC arch/powerpc/kernel/sysfs.o CC mm/filemap.o CC mm/mempool.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init_32.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/time.o CC fs/open.o CC arch/powerpc/kernel/prom.o CC kernel/exec_domain.o CC mm/oom_kill.o CC arch/powerpc/mm/init-common.o CC arch/powerpc/mm/ppc_mmu_32.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC mm/maccess.o CC mm/page_alloc.o CC kernel/panic.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/mm/mmu_context_hash32.o CC mm/page-writeback.o CC mm/readahead.o CC arch/powerpc/kernel/udbg.o CC mm/swap.o CC fs/read_write.o CC fs/file_table.o CC arch/powerpc/mm/tlb_hash32.o AS arch/powerpc/kernel/misc.o CC fs/super.o CC arch/powerpc/kernel/io.o CC kernel/cpu.o CC arch/powerpc/kernel/dma.o CC arch/powerpc/mm/hugetlbpage.o AS arch/powerpc/kernel/misc_32.o CC arch/powerpc/kernel/of_platform.o CC fs/char_dev.o CC kernel/exit.o CC arch/powerpc/kernel/prom_parse.o LD arch/powerpc/mm/built-in.o CC mm/truncate.o LD ipc/built-in.o CC security/commoncap.o CC mm/vmscan.o CC mm/shmem.o LD crypto/built-in.o LD block/built-in.o CC fs/stat.o LD drivers/amba/built-in.o LD drivers/auxdisplay/built-in.o LD arch/powerpc/kernel/trace/built-in.o CC drivers/base/component.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o CC drivers/base/core.o CC drivers/base/bus.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o VDSO32A arch/powerpc/kernel/vdso32/note.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o LD arch/powerpc/kernel/vdso32/built-in.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/l2cr_6xx.o CC drivers/base/dd.o AS arch/powerpc/kernel/cpu_setup_6xx.o AS arch/powerpc/kernel/entry_32.o CC arch/powerpc/kernel/setup_32.o CC security/min_addr.o LD drivers/block/built-in.o LD drivers/bus/built-in.o LD drivers/cdrom/built-in.o CC mm/util.o CC fs/exec.o CC fs/pipe.o CC kernel/softirq.o LD security/built-in.o CC fs/namei.o CC drivers/char/mem.o LD drivers/char/ipmi/built-in.o CC arch/powerpc/kernel/pci_32.o LD drivers/clk/bcm/built-in.o LD drivers/clk/mvebu/built-in.o LD drivers/clk/ti/built-in.o LD drivers/clk/built-in.o LD drivers/clocksource/built-in.o LD drivers/firewire/built-in.o CC kernel/resource.o CC kernel/sysctl.o CC mm/mmzone.o CC mm/vmstat.o CC drivers/char/random.o CC drivers/base/syscore.o CC arch/powerpc/kernel/pci-common.o CC drivers/base/driver.o CC drivers/base/class.o CC mm/backing-dev.o CC drivers/char/misc.o LD drivers/char/agp/built-in.o CC mm/mm_init.o CC drivers/base/platform.o CC fs/fcntl.o CC kernel/sysctl_binary.o CC fs/ioctl.o CC mm/mmu_context.o LD drivers/firmware/broadcom/built-in.o LD drivers/firmware/meson/built-in.o LD drivers/firmware/tegra/built-in.o LD drivers/firmware/built-in.o LD sound/built-in.o CC kernel/capability.o LD drivers/char/built-in.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/iomap.o AS arch/powerpc/kernel/head_32.o CC mm/percpu.o LDS arch/powerpc/kernel/vmlinux.lds AS arch/powerpc/kernel/fpu.o CC kernel/ptrace.o CC kernel/user.o CC fs/readdir.o CC drivers/base/cpu.o CC fs/select.o LD firmware/built-in.o LD drivers/gpu/drm/bridge/synopsys/built-in.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/gpu/drm/i2c/built-in.o CC drivers/base/firmware.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD drivers/gpu/drm/omapdrm/built-in.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh LD drivers/gpu/drm/panel/built-in.o AS arch/powerpc/kernel/systbl.o LD drivers/gpu/drm/tilcdc/built-in.o LD drivers/gpu/drm/built-in.o LD arch/powerpc/kernel/built-in.o CC kernel/signal.o CC kernel/sys.o LD drivers/gpu/vga/built-in.o LD drivers/gpu/built-in.o CC kernel/kmod.o CC kernel/workqueue.o CC drivers/base/init.o CC drivers/base/map.o CC drivers/base/devres.o CC drivers/base/attribute_container.o CC mm/slab_common.o LD drivers/hwtracing/intel_th/built-in.o CC kernel/pid.o CC drivers/base/transport_class.o CC kernel/task_work.o CC drivers/base/topology.o CC drivers/base/container.o CC drivers/base/property.o CC fs/dcache.o CC fs/inode.o CC fs/attr.o CC drivers/base/cacheinfo.o CC mm/compaction.o CC kernel/extable.o CC mm/vmacache.o CC mm/swap_slots.o CC fs/bad_inode.o LD drivers/base/power/built-in.o CC mm/interval_tree.o CC mm/list_lru.o CC kernel/params.o CC mm/workingset.o CC mm/debug.o LD net/built-in.o LD drivers/base/test/built-in.o CC drivers/base/dma-mapping.o CC mm/gup.o CC lib/lockref.o CC lib/bcd.o CC lib/div64.o CC mm/highmem.o CC kernel/kthread.o CC kernel/sys_ni.o LD drivers/i2c/algos/built-in.o CC kernel/nsproxy.o LD drivers/i2c/busses/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/i2c/built-in.o CC mm/memory.o CC lib/sort.o LD virt/lib/built-in.o LD virt/built-in.o CC kernel/notifier.o CC fs/file.o CC lib/parser.o LD drivers/base/built-in.o LD drivers/idle/built-in.o CC drivers/irqchip/irqchip.o CC kernel/ksysfs.o CC fs/filesystems.o CC lib/debug_locks.o CC mm/mincore.o CC lib/random32.o LD drivers/irqchip/built-in.o LD drivers/lguest/built-in.o LD drivers/macintosh/built-in.o CC fs/namespace.o CC mm/mlock.o CC kernel/cred.o LD drivers/mfd/built-in.o LD drivers/media/common/b2c2/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/misc/cb710/built-in.o LD drivers/media/common/siano/built-in.o LD drivers/misc/eeprom/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/media/common/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/media/firewire/built-in.o LD drivers/misc/mic/built-in.o LD drivers/misc/ti-st/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/misc/built-in.o LD drivers/media/i2c/built-in.o CC fs/seq_file.o CC fs/xattr.o LD drivers/media/mmc/siano/built-in.o LD drivers/media/mmc/built-in.o CC lib/bust_spinlocks.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/media/pci/dm1105/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/pci/built-in.o CC mm/mmap.o LD drivers/media/platform/omap/built-in.o LD drivers/media/platform/built-in.o CC fs/libfs.o LD drivers/media/rc/keymaps/built-in.o LD drivers/media/rc/built-in.o LD drivers/media/spi/built-in.o LD drivers/media/tuners/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o CC lib/kasprintf.o LD drivers/media/usb/ttusb-dec/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/built-in.o LD drivers/media/built-in.o LD drivers/mmc/built-in.o CC kernel/reboot.o LD drivers/net/phy/built-in.o LD drivers/net/built-in.o LD drivers/nfc/built-in.o LD drivers/nvme/host/built-in.o LD drivers/nvme/target/built-in.o LD drivers/nvme/built-in.o CC drivers/of/base.o CC lib/bitmap.o CC mm/mprotect.o CC mm/mremap.o CC fs/fs-writeback.o CC mm/msync.o CC kernel/async.o CC kernel/range.o CC lib/scatterlist.o CC drivers/of/device.o CC kernel/smpboot.o CC kernel/ucount.o CC kernel/irq/irqdesc.o CC drivers/of/platform.o LD kernel/livepatch/built-in.o CC mm/page_vma_mapped.o CC kernel/locking/mutex.o CC kernel/power/qos.o CC kernel/irq/handle.o CC mm/pagewalk.o CC mm/pgtable-generic.o CC fs/pnode.o CC lib/gcd.o CC lib/lcm.o CC lib/list_sort.o CC lib/uuid.o CC kernel/irq/manage.o CC drivers/of/fdt.o CC drivers/pci/access.o CC lib/flex_array.o CC lib/iov_iter.o CC lib/clz_ctz.o CC mm/rmap.o CC kernel/locking/semaphore.o CC fs/splice.o CC kernel/locking/rwsem.o LD kernel/power/built-in.o CC kernel/locking/percpu-rwsem.o CC drivers/of/fdt_address.o CC lib/bsearch.o CC kernel/locking/rwsem-xadd.o LD drivers/pci/dwc/built-in.o CC lib/find_bit.o CC drivers/pci/bus.o CC kernel/irq/spurious.o CC kernel/irq/resend.o CC lib/llist.o CC drivers/of/address.o LD kernel/locking/built-in.o CC lib/memweight.o CC kernel/printk/printk.o CC kernel/irq/chip.o CC fs/sync.o CC kernel/rcu/update.o CC lib/kfifo.o CC mm/vmalloc.o CC drivers/pci/probe.o CC kernel/rcu/sync.o LD drivers/platform/built-in.o CC kernel/irq/dummychip.o CC fs/utimes.o CC kernel/rcu/srcutiny.o CC drivers/of/irq.o CC fs/stack.o CC fs/fs_struct.o CC lib/percpu-refcount.o LD kernel/printk/built-in.o CC lib/percpu_ida.o CC kernel/irq/devres.o CC kernel/rcu/tiny.o CC kernel/rcu/rcu_segcblist.o LD drivers/power/built-in.o LD drivers/ptp/built-in.o LD drivers/pwm/built-in.o LD drivers/soc/bcm/built-in.o LD drivers/tty/ipwireless/built-in.o LD drivers/soc/fsl/built-in.o CC kernel/irq/irqdomain.o LD drivers/tty/serial/built-in.o LD drivers/soc/built-in.o LD drivers/tty/vt/built-in.o LD drivers/usb/built-in.o LD drivers/tty/built-in.o CC fs/statfs.o CC mm/init-mm.o LD drivers/video/backlight/built-in.o LD drivers/video/fbdev/core/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o CC lib/rhashtable.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/video/fbdev/built-in.o LD drivers/video/built-in.o CC kernel/sched/core.o CC kernel/sched/loadavg.o CC drivers/of/of_pci.o CC drivers/pci/host-bridge.o LD kernel/rcu/built-in.o CC kernel/time/time.o CC mm/nobootmem.o CC kernel/time/timer.o CC fs/fs_pin.o LD kernel/irq/built-in.o CC drivers/of/of_pci_irq.o CC kernel/sched/clock.o CC drivers/pci/remove.o CC lib/reciprocal_div.o CC kernel/time/hrtimer.o CC drivers/pci/pci.o CC mm/memblock.o CC fs/nsfs.o CC drivers/of/of_reserved_mem.o CC lib/once.o CC kernel/time/timekeeping.o CC kernel/time/ntp.o CC drivers/pci/pci-driver.o CC fs/no-block.o CC lib/refcount.o LD drivers/of/built-in.o CC mm/dmapool.o CC lib/usercopy.o LD fs/devpts/built-in.o LD fs/exofs/built-in.o LD fs/notify/dnotify/built-in.o LD fs/notify/fanotify/built-in.o LD fs/notify/inotify/built-in.o LD fs/notify/built-in.o LD fs/quota/built-in.o CC fs/ramfs/inode.o CC lib/string_helpers.o CC mm/slub.o CC kernel/sched/cputime.o CC kernel/time/clocksource.o CC kernel/sched/idle_task.o CC lib/hexdump.o CC fs/binfmt_elf.o CC kernel/time/jiffies.o CC fs/ramfs/file-mmu.o CC lib/kstrtox.o CC kernel/dma.o CC kernel/sched/fair.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o CC kernel/up.o CC kernel/elfcore.o CC kernel/memremap.o CC drivers/pci/search.o CC lib/pci_iomap.o CC kernel/time/timer_list.o LD fs/built-in.o CC lib/iomap_copy.o CC drivers/pci/pci-sysfs.o CC kernel/sched/rt.o CC kernel/sched/deadline.o CC kernel/sched/stop_task.o LD mm/built-in.o CC kernel/sched/wait.o CC kernel/time/timeconv.o CC kernel/sched/swait.o CC lib/devres.o CC kernel/sched/completion.o CC lib/hweight.o CC lib/bitrev.o CC kernel/time/timecounter.o CC kernel/time/alarmtimer.o CC kernel/sched/idle.o HOSTCC lib/gen_crc32table CC lib/syscall.o CC lib/atomic64.o CC drivers/pci/rom.o CC drivers/pci/setup-res.o CC lib/strncpy_from_user.o CC drivers/pci/irq.o CC drivers/pci/vpd.o CC drivers/pci/setup-bus.o CC drivers/pci/vc.o CC drivers/pci/mmap.o CC lib/strnlen_user.o CC kernel/time/posix-stubs.o LD kernel/sched/built-in.o CC drivers/pci/syscall.o CC drivers/pci/of.o CC lib/argv_split.o CC lib/chacha20.o CC lib/cmdline.o CC lib/ctype.o LD drivers/pci/host/built-in.o CC lib/dec_and_lock.o CC lib/decompress.o CC lib/dump_stack.o CC lib/earlycpio.o LD drivers/pci/switch/built-in.o CC lib/extable.o CC kernel/time/clockevents.o CC kernel/time/tick-common.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC lib/fdt_ro.o CC lib/fdt_rw.o CC lib/fdt_strerror.o CC lib/fdt_sw.o CC lib/fdt_wip.o CC lib/flex_proportions.o CC lib/idr.o CC lib/int_sqrt.o CC lib/ioremap.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC lib/klist.o CC lib/kobject.o CC lib/kobject_uevent.o CC lib/nmi_backtrace.o CC lib/nodemask.o LD drivers/pci/built-in.o LD drivers/built-in.o CC lib/plist.o LD kernel/time/built-in.o LD kernel/built-in.o CC lib/radix-tree.o CC lib/ratelimit.o CC lib/rbtree.o CC lib/seq_buf.o CC lib/sha1.o CC lib/show_mem.o CC lib/siphash.o CC lib/string.o CC lib/timerqueue.o CC lib/vsprintf.o CC lib/win_minmax.o GEN lib/crc32table.h CC lib/crc32.o AR lib/lib.a EXPORTS lib/lib-ksyms.o LD lib/built-in.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD vmlinux.o MODPOST vmlinux.o LD vmlinux SORTEX vmlinux SYSMAP System.map /opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux-strip -s -R .comment vmlinux -o arch/powerpc/boot/vmlinux.strip make[1]: Leaving directory '/home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3' Completed OK # rm -rf /home/kisskb/slave/build/powerpc-fixes_powerpc-allnoconfig_powerpc-5.3 # Build took: 0:00:27.206748