# git rev-parse -q --verify e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861^{commit} e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861 already have revision, skipping fetch # git checkout -q -f -B kisskb e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861 # git clean -qxdf # git log -1 commit e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861 Author: Simon Guo Date: Tue Jul 26 16:06:01 2016 +0800 powerpc: Set used_(vsr|vr|spe) in sigreturn path when MSR bits are active Normally, when MSR[VSX/VR/SPE] bits == 1, the used_vsr/used_vr/used_spe bit have already been set. However when loading a signal frame from user space we need to explicitly set used_vsr/used_vr/used_spe to make them consistent with the MSR bits from the signal frame. For example, CRIU application, who utilizes sigreturn to restore checkpointed process, will lead to the case where MSR[VSX] bit is active in signal frame, but used_vsr bit is not set in the kernel. (the same applies to VR/SPE). This patch fixes this by always setting used_* bit when MSR related bits are active in signal frame and we are doing sigreturn. Based on a proposal by Benh. Signed-off-by: Benjamin Herrenschmidt Signed-off-by: Simon Guo [mpe: Massage change log] 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 e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861 # < make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc-5.3 CROSS_COMPILE=/opt/cross/kisskb/gcc-5.3.0-nolibc/powerpc64-linux/bin/powerpc64-linux- allnoconfig # make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_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-next_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/irq_regs.h WRAP arch/powerpc/include/generated/asm/irq_work.h WRAP arch/powerpc/include/generated/asm/mcs_spinlock.h WRAP arch/powerpc/include/generated/asm/local64.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/dtc/dtc.o HOSTCC scripts/dtc/flattree.o CC scripts/mod/empty.o HOSTCC scripts/dtc/fstree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/data.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/treesource.o SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/dtc/checks.o SHIPPED scripts/dtc/dtc-parser.tab.h HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/dtc-lexer.lex.o HOSTCC scripts/dtc/dtc-parser.tab.o GEN scripts/mod/devicetable-offsets.h MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/sumversion.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 LD usr/built-in.o CC init/main.o CHK include/generated/compile.h CC init/do_mounts.o CC init/noinitramfs.o CC init/init_task.o UPD include/generated/compile.h CC arch/powerpc/mm/fault.o CC init/version.o CC arch/powerpc/mm/mem.o LD arch/powerpc/sysdev/built-in.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/mmap.o AS arch/powerpc/lib/string.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/init_32.o CC arch/powerpc/mm/ppc_mmu_32.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/lib/code-patching.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/lib/ppc_ksyms.o AS arch/powerpc/lib/div64.o CC arch/powerpc/mm/mmu_context_hash32.o CC arch/powerpc/lib/alloc.o AS arch/powerpc/lib/copy_32.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/mm/hugetlbpage.o CC arch/powerpc/lib/checksum_wrappers.o CC arch/powerpc/mm/tlb_hash32.o CC arch/powerpc/lib/feature-fixups.o LD arch/powerpc/platforms/built-in.o LD arch/powerpc/math-emu/built-in.o CC arch/powerpc/kernel/ptrace.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/process.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/irq.o CC arch/powerpc/kernel/udbg.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/signal.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/idle.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/sysfs.o CC arch/powerpc/kernel/time.o CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/dma.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/io.o AS arch/powerpc/kernel/misc_32.o LD arch/powerpc/crypto/built-in.o CC arch/powerpc/kernel/prom_parse.o CC arch/powerpc/kernel/of_platform.o LD arch/powerpc/net/built-in.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/cpu_setup_6xx.o AS arch/powerpc/kernel/l2cr_6xx.o AS arch/powerpc/kernel/entry_32.o CC arch/powerpc/kernel/setup_32.o CC arch/powerpc/kernel/pci_32.o VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o CC arch/powerpc/kernel/pci-common.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/iomap.o AS arch/powerpc/kernel/head_32.o VDSO32A arch/powerpc/kernel/vdso32/note.o LD arch/powerpc/lib/built-in.o LDS arch/powerpc/kernel/vmlinux.lds AS arch/powerpc/kernel/fpu.o LD certs/built-in.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so AS arch/powerpc/kernel/systbl.o AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o LD arch/powerpc/kernel/vdso32/built-in.o LD arch/powerpc/mm/built-in.o LD ipc/built-in.o CC security/commoncap.o CC security/min_addr.o LD init/mounts.o CC mm/oom_kill.o CC mm/mempool.o CC mm/filemap.o CC kernel/cpu.o CC kernel/panic.o CC kernel/softirq.o CC kernel/exec_domain.o LD crypto/built-in.o CC mm/page_alloc.o CC mm/truncate.o CC mm/maccess.o CC kernel/fork.o CC mm/readahead.o CC kernel/exit.o CC mm/swap.o CC mm/page-writeback.o CC mm/mmzone.o CC kernel/sysctl.o CC kernel/resource.o CC mm/vmscan.o CC mm/vmstat.o CC mm/shmem.o CC mm/util.o CC kernel/sysctl_binary.o CC kernel/ptrace.o CC kernel/capability.o CC mm/backing-dev.o CC mm/mm_init.o LD init/built-in.o CC mm/mmu_context.o LD block/built-in.o CC mm/percpu.o CC mm/compaction.o CC kernel/user.o CC mm/slab_common.o CC mm/vmacache.o CC kernel/signal.o CC kernel/sys.o CC kernel/kmod.o CC mm/interval_tree.o CC fs/open.o CC fs/read_write.o CC mm/list_lru.o CC fs/file_table.o CC fs/super.o LD sound/built-in.o CC mm/workingset.o CC mm/debug.o CC kernel/workqueue.o CC mm/gup.o LD firmware/built-in.o CC kernel/pid.o CC mm/highmem.o CC mm/memory.o CC mm/mlock.o CC mm/mincore.o CC mm/mmap.o CC kernel/task_work.o CC kernel/extable.o CC mm/mprotect.o CC mm/mremap.o LD net/built-in.o CC mm/msync.o CC mm/rmap.o LD arch/powerpc/kernel/built-in.o CC mm/vmalloc.o CC fs/char_dev.o CC kernel/params.o LD security/built-in.o CC fs/stat.o CC mm/pagewalk.o CC mm/pgtable-generic.o CC mm/init-mm.o CC kernel/kthread.o CC mm/nobootmem.o CC mm/memblock.o CC mm/dmapool.o CC mm/slub.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC kernel/notifier.o CC fs/exec.o CC kernel/ksysfs.o LD drivers/amba/built-in.o CC fs/pipe.o LD virt/lib/built-in.o LD drivers/auxdisplay/built-in.o CC kernel/cred.o LD virt/built-in.o CC kernel/reboot.o CC fs/namei.o LD drivers/block/built-in.o LD drivers/bus/built-in.o CC fs/fcntl.o CC kernel/async.o LD drivers/cdrom/built-in.o CC kernel/range.o CC kernel/smpboot.o CC lib/lockref.o CC lib/bcd.o CC drivers/char/mem.o LD drivers/clocksource/built-in.o CC drivers/char/random.o CC drivers/base/component.o LD drivers/clk/bcm/built-in.o LD kernel/livepatch/built-in.o CC lib/div64.o LD drivers/firewire/built-in.o CC fs/ioctl.o CC fs/select.o CC fs/readdir.o CC kernel/locking/mutex.o CC kernel/irq/irqdesc.o LD drivers/clk/mvebu/built-in.o LD drivers/hwtracing/intel_th/built-in.o LD drivers/gpu/vga/built-in.o CC kernel/printk/printk.o CC kernel/power/qos.o CC lib/sort.o LD drivers/firmware/broadcom/built-in.o LD drivers/clk/ti/built-in.o CC kernel/rcu/update.o CC kernel/rcu/sync.o CC kernel/rcu/tiny.o CC kernel/up.o CC kernel/dma.o LD drivers/firmware/built-in.o LD drivers/clk/built-in.o CC lib/parser.o LD drivers/i2c/algos/built-in.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/idle/built-in.o CC kernel/elfcore.o CC kernel/memremap.o CC drivers/irqchip/irqchip.o LD drivers/i2c/busses/built-in.o CC kernel/sched/core.o LD drivers/lguest/built-in.o CC kernel/time/time.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/gpu/drm/i2c/built-in.o LD drivers/macintosh/built-in.o CC lib/halfmd4.o LD drivers/i2c/muxes/built-in.o CC fs/dcache.o LD drivers/gpu/drm/panel/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD drivers/i2c/built-in.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/mfd/built-in.o CC drivers/char/misc.o LD drivers/mmc/built-in.o LD drivers/gpu/drm/omapdrm/built-in.o CC lib/debug_locks.o LD drivers/net/built-in.o CC lib/random32.o LD drivers/nfc/built-in.o CC kernel/sched/loadavg.o CC fs/inode.o LD drivers/gpu/drm/built-in.o LD drivers/platform/built-in.o LD drivers/nvme/target/built-in.o LD drivers/nvme/host/built-in.o LD drivers/power/built-in.o LD drivers/pwm/built-in.o CC kernel/locking/semaphore.o LD drivers/misc/cb710/built-in.o CC lib/bust_spinlocks.o LD drivers/char/agp/built-in.o CC lib/kasprintf.o CC drivers/of/base.o LD drivers/nvme/built-in.o LD drivers/gpu/built-in.o CC drivers/base/core.o LD drivers/media/firewire/built-in.o CC kernel/locking/rwsem.o LD drivers/misc/eeprom/built-in.o CC kernel/locking/percpu-rwsem.o LD drivers/soc/bcm/built-in.o LD drivers/usb/host/built-in.o CC lib/scatterlist.o CC lib/bitmap.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/video/backlight/built-in.o CC fs/attr.o LD drivers/tty/ipwireless/built-in.o LD drivers/misc/ti-st/built-in.o CC drivers/pci/access.o LD drivers/tty/serial/built-in.o LD drivers/usb/built-in.o LD drivers/media/common/b2c2/built-in.o LD kernel/rcu/built-in.o LD drivers/misc/mic/bus/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/video/fbdev/core/built-in.o CC drivers/pci/bus.o CC kernel/time/timer.o CC kernel/irq/handle.o CC kernel/irq/manage.o LD drivers/tty/vt/built-in.o LD drivers/soc/built-in.o CC kernel/locking/rwsem-xadd.o CC fs/bad_inode.o LD drivers/misc/mic/built-in.o LD drivers/media/i2c/built-in.o CC lib/gcd.o CC lib/lcm.o CC kernel/irq/spurious.o CC kernel/irq/resend.o LD drivers/media/common/saa7146/built-in.o CC lib/list_sort.o LD drivers/tty/built-in.o LD drivers/irqchip/built-in.o LD drivers/media/common/siano/built-in.o LD drivers/misc/built-in.o LD kernel/printk/built-in.o CC lib/flex_array.o CC lib/iov_iter.o CC lib/uuid.o LD kernel/power/built-in.o LD drivers/media/mmc/siano/built-in.o CC lib/clz_ctz.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o CC lib/bsearch.o CC lib/find_bit.o LD drivers/media/common/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o CC lib/llist.o LD drivers/char/built-in.o CC lib/memweight.o LD drivers/media/tuners/built-in.o CC lib/kfifo.o LD drivers/media/mmc/built-in.o CC kernel/sched/clock.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/media/platform/omap/built-in.o CC kernel/sched/cputime.o CC lib/percpu-refcount.o CC fs/filesystems.o CC fs/file.o CC lib/percpu_ida.o CC drivers/of/device.o CC lib/rhashtable.o LD drivers/media/rc/keymaps/built-in.o CC drivers/pci/probe.o LD drivers/media/platform/built-in.o CC fs/namespace.o CC drivers/pci/host-bridge.o LD drivers/video/fbdev/omap2/built-in.o CC kernel/irq/chip.o CC kernel/time/hrtimer.o CC lib/reciprocal_div.o CC lib/once.o LD drivers/media/rc/built-in.o CC lib/string_helpers.o LD drivers/video/fbdev/built-in.o CC lib/hexdump.o CC lib/kstrtox.o CC fs/seq_file.o CC lib/pci_iomap.o CC lib/iomap_copy.o CC lib/devres.o CC fs/libfs.o CC fs/xattr.o LD kernel/locking/built-in.o CC lib/hweight.o LD drivers/video/built-in.o CC kernel/irq/dummychip.o LD drivers/media/pci/b2c2/built-in.o CC kernel/irq/devres.o CC drivers/of/platform.o CC lib/bitrev.o LD drivers/media/usb/b2c2/built-in.o CC kernel/irq/irqdomain.o LD drivers/media/pci/ddbridge/built-in.o CC fs/fs-writeback.o HOSTCC lib/gen_crc32table CC lib/syscall.o LD drivers/media/usb/dvb-usb/built-in.o CC lib/atomic64.o CC kernel/sched/idle_task.o CC lib/strncpy_from_user.o LD drivers/media/pci/dm1105/built-in.o LD mm/built-in.o CC kernel/sched/fair.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/s2255/built-in.o CC lib/strnlen_user.o CC lib/argv_split.o LD drivers/media/pci/mantis/built-in.o CC drivers/of/fdt.o CC fs/splice.o CC fs/pnode.o CC drivers/pci/remove.o CC lib/chacha20.o LD drivers/media/usb/siano/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/usb/stkwebcam/built-in.o CC lib/cmdline.o CC lib/ctype.o CC kernel/time/itimer.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o CC kernel/time/posix-timers.o CC lib/dec_and_lock.o LD drivers/media/pci/ngene/built-in.o CC lib/dma-noop.o CC lib/decompress.o LD drivers/media/usb/zr364xx/built-in.o CC lib/earlycpio.o CC lib/dump_stack.o LD drivers/media/pci/pluto2/built-in.o CC drivers/pci/pci.o CC lib/extable.o CC drivers/pci/pci-driver.o LD drivers/media/usb/built-in.o CC drivers/pci/search.o CC drivers/pci/pci-sysfs.o LD drivers/media/pci/pt1/built-in.o CC kernel/sched/rt.o CC kernel/sched/stop_task.o CC kernel/sched/wait.o CC fs/sync.o CC drivers/pci/rom.o CC kernel/sched/deadline.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/pci/pt3/built-in.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC lib/fdt_ro.o CC drivers/pci/setup-res.o CC drivers/pci/irq.o CC fs/utimes.o CC drivers/pci/vpd.o CC drivers/pci/setup-bus.o CC drivers/pci/vc.o CC drivers/pci/syscall.o CC kernel/sched/swait.o CC lib/fdt_rw.o LD drivers/media/pci/smipcie/built-in.o CC lib/fdt_strerror.o CC fs/stack.o CC fs/fs_struct.o LD drivers/media/pci/ttpci/built-in.o CC kernel/time/posix-cpu-timers.o CC kernel/time/clocksource.o CC drivers/base/bus.o CC kernel/time/ntp.o LD drivers/media/pci/built-in.o CC kernel/time/timekeeping.o CC kernel/time/jiffies.o CC drivers/of/fdt_address.o CC fs/statfs.o CC drivers/of/address.o CC lib/fdt_sw.o CC drivers/of/irq.o CC drivers/of/of_pci.o CC kernel/sched/completion.o CC drivers/of/of_pci_irq.o CC drivers/pci/of.o LD drivers/media/built-in.o CC lib/fdt_wip.o CC lib/flex_proportions.o LD drivers/pci/host/built-in.o CC lib/idr.o CC fs/fs_pin.o CC lib/int_sqrt.o CC fs/nsfs.o CC lib/ioremap.o CC kernel/sched/idle.o CC fs/no-block.o LD fs/devpts/built-in.o CC lib/irq_regs.o CC lib/is_single_threaded.o LD kernel/irq/built-in.o CC kernel/time/timer_list.o CC lib/klist.o LD fs/exofs/built-in.o CC kernel/time/timeconv.o LD fs/quota/built-in.o CC fs/binfmt_elf.o CC lib/kobject.o CC drivers/base/dd.o CC lib/kobject_uevent.o CC drivers/base/syscore.o CC drivers/of/of_reserved_mem.o LD fs/notify/dnotify/built-in.o CC fs/ramfs/file-mmu.o CC fs/ramfs/inode.o CC drivers/base/driver.o CC lib/md5.o LD fs/notify/inotify/built-in.o CC lib/nmi_backtrace.o CC drivers/base/class.o LD fs/notify/fanotify/built-in.o CC drivers/base/cpu.o CC drivers/base/platform.o CC lib/nodemask.o CC lib/plist.o CC drivers/base/firmware.o LD fs/notify/built-in.o CC kernel/time/timecounter.o CC drivers/base/init.o CC drivers/base/map.o CC drivers/base/devres.o CC kernel/time/posix-clock.o CC kernel/time/alarmtimer.o CC drivers/base/attribute_container.o CC drivers/base/topology.o CC drivers/base/transport_class.o CC kernel/time/clockevents.o CC drivers/base/container.o CC drivers/base/property.o CC lib/radix-tree.o CC lib/seq_buf.o CC drivers/base/cacheinfo.o CC lib/ratelimit.o CC lib/rbtree.o CC kernel/time/tick-common.o CC lib/sha1.o LD drivers/base/power/built-in.o CC lib/string.o CC lib/show_mem.o CC lib/timerqueue.o CC lib/vsprintf.o CC drivers/base/dma-mapping.o GEN lib/crc32table.h CC lib/crc32.o LD kernel/sched/built-in.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o LD drivers/of/built-in.o LD fs/built-in.o LD lib/built-in.o LD drivers/base/built-in.o LD kernel/time/built-in.o LD kernel/built-in.o LD drivers/pci/built-in.o LD drivers/built-in.o AR lib/lib.a LINK vmlinux LD vmlinux.o MODPOST vmlinux.o GEN .version CHK include/generated/compile.h UPD include/generated/compile.h CC init/version.o LD init/built-in.o LD 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-next_powerpc-allnoconfig_powerpc-5.3' Completed OK # rm -rf /home/kisskb/slave/build/powerpc-next_powerpc-allnoconfig_powerpc-5.3 # Build took: 0:00:15.996534