# 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-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux-gcc --version # < git log --format=%s --max-count=1 e1c0d66fcb179a1737b3d5cc11c6e37bcabbd861 # < make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- randconfig KCONFIG_SEED=0x8BDF74B7 # 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 # yes \n | make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_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 -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_powerpc-randconfig_powerpc CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/powerpc-linux/bin/powerpc-linux- make[1]: Entering directory '/home/kisskb/slave/build/powerpc-next_powerpc-randconfig_powerpc' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release GEN ./Makefile 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/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 UPD include/config/kernel.release HOSTCC scripts/basic/bin2c Using /home/kisskb/slave/src as source for kernel CHK include/generated/utsrelease.h UPD include/generated/utsrelease.h HOSTCC scripts/kallsyms HOSTCC scripts/asn1_compiler HOSTCC scripts/dtc/dtc.o CC scripts/mod/empty.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/fstree.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/data.o HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/checks.o SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/dtc/util.o SHIPPED scripts/dtc/dtc-parser.tab.h SHIPPED scripts/dtc/dtc-parser.tab.c HOSTCC scripts/dtc/dtc-parser.tab.o CHK include/generated/timeconst.h CC kernel/bounds.s UPD include/generated/timeconst.h GEN scripts/mod/devicetable-offsets.h HOSTCC scripts/dtc/dtc-lexer.lex.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/modpost.o HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/sumversion.o 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 HOSTLD scripts/dtc/dtc HOSTLD scripts/mod/modpost CC init/main.o CHK include/generated/compile.h HOSTCC usr/gen_init_cpio CC init/do_mounts.o CC init/do_mounts_initrd.o CC init/initramfs.o CC init/init_task.o UPD include/generated/compile.h CC init/version.o CC arch/powerpc/mm/fault.o CC arch/powerpc/mm/mem.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init_64.o CC arch/powerpc/mm/pgtable_64.o AS arch/powerpc/mm/tlb_nohash_low.o CC arch/powerpc/mm/mmu_context_nohash.o CC arch/powerpc/mm/tlb_nohash.o AS arch/powerpc/mm/tlb_low_64e.o CC arch/powerpc/mm/pgtable-book3e.o AS arch/powerpc/lib/string.o CC arch/powerpc/mm/hugetlbpage.o CC arch/powerpc/lib/alloc.o CC arch/powerpc/mm/numa.o CC arch/powerpc/lib/ppc_ksyms.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/lib/code-patching.o CC arch/powerpc/sysdev/mpic_msi.o CC arch/powerpc/sysdev/mpic.o CC arch/powerpc/sysdev/mpic_u3msi.o CC arch/powerpc/sysdev/fsl_soc.o CC arch/powerpc/sysdev/msi_bitmap.o CC arch/powerpc/sysdev/fsl_lbc.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/kernel/ptrace.o CC arch/powerpc/lib/sstep.o AS arch/powerpc/lib/ldstfp.o CC arch/powerpc/lib/checksum_wrappers.o AS arch/powerpc/lib/feature-fixups-test.o CC arch/powerpc/lib/feature-fixups.o AS arch/powerpc/lib/copypage_64.o AS arch/powerpc/lib/checksum_64.o CC arch/powerpc/platforms/85xx/common.o CC arch/powerpc/sysdev/fsl_mpic_err.o CC arch/powerpc/sysdev/fsl_pci.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/sysdev/fsl_msi.o AS arch/powerpc/lib/copyuser_64.o LD arch/powerpc/math-emu/built-in.o CC arch/powerpc/sysdev/indirect_pci.o CC arch/powerpc/lib/usercopy_64.o CC arch/powerpc/kernel/irq.o AS arch/powerpc/lib/mem_64.o AS arch/powerpc/lib/hweight_64.o AS arch/powerpc/crypto/md5-asm.o AS arch/powerpc/lib/copyuser_power7.o AS arch/powerpc/lib/string_64.o AS arch/powerpc/lib/copypage_power7.o AS arch/powerpc/lib/memcpy_power7.o AS arch/powerpc/net/bpf_jit_asm64.o AS arch/powerpc/lib/memcpy_64.o CC arch/powerpc/crypto/md5-glue.o AS arch/powerpc/lib/memcmp_64.o CC arch/powerpc/net/bpf_jit_comp64.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/kernel/process.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/idle.o /home/kisskb/slave/src/arch/powerpc/lib/sstep.c: In function 'emulate_step': /home/kisskb/slave/src/arch/powerpc/lib/sstep.c:1992:7: error: implicit declaration of function 'cpu_has_feature' [-Werror=implicit-function-declaration] CC arch/powerpc/kernel/signal.o cc1: some warnings being treated as errors CC arch/powerpc/kernel/sysfs.o /home/kisskb/slave/src/scripts/Makefile.build:289: recipe for target 'arch/powerpc/lib/sstep.o' failed make[2]: *** [arch/powerpc/lib/sstep.o] Error 1 make[2]: *** Waiting for unfinished jobs.... CC arch/powerpc/kernel/cacheinfo.o LD arch/powerpc/platforms/85xx/built-in.o GEN usr/initramfs_data.cpio.lz4 LD arch/powerpc/platforms/built-in.o CC arch/powerpc/xmon/xmon.o CC arch/powerpc/xmon/nonstdio.o CC arch/powerpc/kernel/time.o CC arch/powerpc/kernel/prom.o AS arch/powerpc/xmon/spr_access.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/io.o CC arch/powerpc/kernel/udbg.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/dma.o AS arch/powerpc/kernel/misc_64.o CC arch/powerpc/kernel/prom_parse.o CC arch/powerpc/kernel/of_platform.o CC arch/powerpc/kernel/setup_64.o LD certs/built-in.o CC arch/powerpc/kernel/sys_ppc32.o CC arch/powerpc/kernel/signal_64.o CC arch/powerpc/kernel/paca.o CC arch/powerpc/kernel/ptrace32.o /home/kisskb/slave/src/Makefile:968: recipe for target 'arch/powerpc/lib' failed make[1]: *** [arch/powerpc/lib] Error 2 make[1]: *** Waiting for unfinished jobs.... CC arch/powerpc/kernel/nvram_64.o AS usr/initramfs_data.o CC arch/powerpc/kernel/firmware.o AS arch/powerpc/kernel/idle_book3e.o AS arch/powerpc/kernel/exceptions-64e.o CC arch/powerpc/kernel/proc_powerpc.o CC arch/powerpc/kernel/module.o CC arch/powerpc/kernel/module_64.o LD usr/built-in.o CC arch/powerpc/kernel/dma-iommu.o CC arch/powerpc/kernel/dbell.o LDS arch/powerpc/kernel/vdso32/vdso32.lds CC arch/powerpc/kernel/iommu.o VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o CC arch/powerpc/kernel/ppc_ksyms.o LDS arch/powerpc/kernel/vdso64/vdso64.lds LD arch/powerpc/crypto/md5-ppc.o LD arch/powerpc/crypto/built-in.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o CC arch/powerpc/kernel/legacy_serial.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o AS arch/powerpc/kernel/vdso64/sigtramp.o VDSO32A arch/powerpc/kernel/vdso32/note.o VDSO32A arch/powerpc/kernel/vdso32/getcpu.o AS arch/powerpc/kernel/vdso64/gettimeofday.o AS arch/powerpc/kernel/vdso64/datapage.o LD arch/powerpc/mm/built-in.o CC arch/powerpc/kernel/udbg_16550.o AS arch/powerpc/kernel/vdso64/cacheflush.o CC arch/powerpc/kernel/stacktrace.o CC arch/powerpc/kernel/pci_64.o AS arch/powerpc/kernel/vdso64/note.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg CC arch/powerpc/kernel/pci_dn.o AS arch/powerpc/kernel/vdso64/getcpu.o CC arch/powerpc/kernel/pci-hotplug.o OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so CC arch/powerpc/kernel/pci-common.o CC arch/powerpc/kernel/isa-bridge.o AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/iomap.o AS arch/powerpc/kernel/ppc_save_regs.o CC kernel/fork.o AS arch/powerpc/kernel/head_64.o LDS arch/powerpc/kernel/vmlinux.lds CC arch/powerpc/kernel/msi.o AS arch/powerpc/kernel/fpu.o VDSO64L arch/powerpc/kernel/vdso64/vdso64.so.dbg AS arch/powerpc/kernel/entry_64.o OBJCOPY arch/powerpc/kernel/vdso64/vdso64.so LD arch/powerpc/kernel/vdso32/built-in.o AS arch/powerpc/kernel/vdso64/vdso64_wrapper.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh AS arch/powerpc/kernel/systbl.o CC kernel/panic.o CC kernel/exec_domain.o CC kernel/softirq.o CC kernel/exit.o CC kernel/cpu.o CC kernel/resource.o CC kernel/sysctl.o CC kernel/sysctl_binary.o CC kernel/capability.o CC kernel/ptrace.o CC kernel/user.o CC kernel/sys.o CC kernel/signal.o LD arch/powerpc/kernel/vdso64/built-in.o CC kernel/workqueue.o CC kernel/kmod.o CC kernel/task_work.o CC kernel/extable.o CC kernel/pid.o LD init/mounts.o CC kernel/params.o CC kernel/kthread.o CC kernel/sys_ni.o LD init/built-in.o CC kernel/nsproxy.o CC kernel/ksysfs.o CC kernel/notifier.o CC kernel/cred.o CC kernel/reboot.o CC kernel/async.o CC kernel/range.o CC kernel/smpboot.o LD arch/powerpc/sysdev/built-in.o CC kernel/bpf/core.o LD kernel/livepatch/built-in.o CC kernel/printk/printk.o CC kernel/gcov/base.o CC kernel/locking/mutex.o CC kernel/rcu/update.o CC kernel/irq/irqdesc.o CC kernel/power/qos.o CC kernel/sched/core.o CC kernel/sched/loadavg.o CC kernel/stacktrace.o CC kernel/sched/clock.o CC kernel/futex.o CC kernel/time/time.o CC kernel/futex_compat.o CC kernel/time/timer.o CC kernel/up.o CC kernel/dma.o CC kernel/module.o CC kernel/time/hrtimer.o CC kernel/kallsyms.o CC kernel/backtracetest.o CC kernel/compat.o CC kernel/cgroup.o CC kernel/hung_task.o CC kernel/relay.o CC kernel/time/itimer.o CC kernel/utsname_sysctl.o CC kernel/latencytop.o CC kernel/elfcore.o CC kernel/irq_work.o CC kernel/torture.o CC kernel/gcov/fs.o CC kernel/memremap.o GZIP kernel/config_data.gz CC kernel/gcov/gcc_3_4.o CC kernel/sched/cputime.o CHK kernel/config_data.h CC kernel/rcu/sync.o CC kernel/sched/idle_task.o CC kernel/time/posix-timers.o UPD kernel/config_data.h CC [M] kernel/configs.o CC kernel/sched/fair.o CC kernel/rcu/srcu.o CC kernel/sched/rt.o LD arch/powerpc/kernel/built-in.o CC kernel/irq/handle.o CC kernel/irq/manage.o CC kernel/sched/stop_task.o CC kernel/sched/wait.o CC kernel/sched/deadline.o LD arch/powerpc/net/built-in.o CC kernel/irq/spurious.o CC kernel/sched/swait.o LD arch/powerpc/xmon/built-in.o CC kernel/irq/resend.o CC kernel/time/posix-cpu-timers.o CC kernel/sched/completion.o CC kernel/sched/idle.o CC kernel/time/timekeeping.o CC kernel/sched/auto_group.o /home/kisskb/slave/src/kernel/printk/printk.c: In function 'devkmsg_sysctl_set_loglvl': /home/kisskb/slave/src/kernel/printk/printk.c:183:16: warning: 'old' may be used uninitialized in this function [-Wuninitialized] CC kernel/time/clocksource.o CC kernel/time/ntp.o CC kernel/locking/semaphore.o CC kernel/sched/stats.o CC kernel/time/jiffies.o CC kernel/power/main.o CC kernel/power/poweroff.o CC kernel/time/timer_list.o CC kernel/rcu/rcutorture.o CC kernel/sched/debug.o CC kernel/rcu/tiny.o CC kernel/time/timeconv.o CC kernel/irq/chip.o CC kernel/time/timecounter.o CC kernel/irq/dummychip.o CC kernel/time/posix-clock.o CC kernel/irq/devres.o CC kernel/time/alarmtimer.o CC kernel/irq/generic-chip.o CC kernel/time/clockevents.o CC kernel/irq/irqdomain.o CC kernel/time/tick-common.o CC kernel/irq/proc.o CC kernel/irq/msi.o CC kernel/time/timer_stats.o CC kernel/time/timekeeping_debug.o LD kernel/gcov/built-in.o CC kernel/locking/rwsem.o LD kernel/bpf/built-in.o CC kernel/time/test_udelay.o CC kernel/locking/percpu-rwsem.o CC kernel/locking/lockdep.o CC kernel/locking/mutex-debug.o CC kernel/locking/lockdep_proc.o CC kernel/locking/spinlock.o CC kernel/locking/rtmutex.o CC kernel/locking/spinlock_debug.o CC kernel/locking/rwsem-xadd.o LD kernel/power/built-in.o LD kernel/printk/built-in.o LD kernel/irq/built-in.o LD kernel/time/built-in.o LD kernel/sched/built-in.o LD kernel/rcu/built-in.o LD kernel/locking/built-in.o /home/kisskb/slave/src/kernel/cgroup.c: In function 'cgroup_mount': /home/kisskb/slave/src/include/linux/cgroup.h:354:11: warning: 'root' may be used uninitialized in this function [-Wuninitialized] /home/kisskb/slave/src/kernel/cgroup.c:2081:22: note: 'root' was declared here LD kernel/built-in.o make[1]: *** wait: No child processes. Stop. Makefile:150: recipe for target 'sub-make' failed make: *** [sub-make] Error 2 Command 'make -j 48 ARCH=powerpc O=/home/kisskb/slave/build/powerpc-next_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 /home/kisskb/slave/build/powerpc-next_powerpc-randconfig_powerpc # Build took: 0:00:11.748228