# git rev-parse -q --verify 178f358208ceb8b38e5cff3f815e0db4a6a70a07^{commit} 178f358208ceb8b38e5cff3f815e0db4a6a70a07 already have revision, skipping fetch # git checkout -q -f -B kisskb 178f358208ceb8b38e5cff3f815e0db4a6a70a07 # git clean -qxdf # git log -1 commit 178f358208ceb8b38e5cff3f815e0db4a6a70a07 Author: Anton Blanchard Date: Thu Jan 19 14:19:10 2017 +1100 powerpc: Ignore reserved field in DCSR and PVR reads and writes IBM bit 31 (for the rest of us - bit 0) is a reserved field in the instruction definition of mtspr and mfspr. Hardware is encouraged to (and does) ignore it. As a result, if userspace executes an mtspr DSCR with the reserved bit set, we get a DSCR facility unavailable exception. The kernel fails to match against the expected value/mask, and we silently return to userspace to try and re-execute the same mtspr DSCR instruction. We loop forever until the process is killed. We should do something here, and it seems mirroring what hardware does is the better option vs killing the process. While here, relax the matching of mfspr PVR too. Cc: stable@vger.kernel.org Signed-off-by: Anton Blanchard 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 178f358208ceb8b38e5cff3f815e0db4a6a70a07 # < make -j 48 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 48 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/rwsem.h WRAP arch/powerpc/include/generated/asm/preempt.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 CC scripts/mod/empty.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/checks.o SHIPPED scripts/dtc/dtc-parser.tab.h SHIPPED scripts/dtc/dtc-parser.tab.c SHIPPED scripts/dtc/dtc-lexer.lex.c HOSTCC scripts/dtc/util.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/data.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/dtc-parser.tab.o GEN scripts/mod/devicetable-offsets.h HOSTCC scripts/dtc/dtc-lexer.lex.o MKELF scripts/mod/elfconfig.h HOSTCC scripts/mod/file2alias.o HOSTCC scripts/mod/modpost.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 CC init/main.o LD usr/built-in.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 arch/powerpc/mm/mem.o CC init/version.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init-common.o CC arch/powerpc/mm/init_32.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/hugetlbpage.o CC arch/powerpc/mm/mmu_context_hash32.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/mm/tlb_hash32.o CC arch/powerpc/mm/ppc_mmu_32.o LD arch/powerpc/sysdev/built-in.o CC arch/powerpc/lib/alloc.o AS arch/powerpc/lib/crtsavres.o AS arch/powerpc/lib/string.o CC arch/powerpc/lib/code-patching.o AS arch/powerpc/lib/checksum_32.o AS arch/powerpc/lib/div64.o AS arch/powerpc/lib/copy_32.o CC arch/powerpc/lib/feature-fixups.o CC arch/powerpc/lib/checksum_wrappers.o LD arch/powerpc/platforms/built-in.o CC arch/powerpc/kernel/cputable.o CC arch/powerpc/kernel/irq.o CC arch/powerpc/kernel/align.o CC arch/powerpc/kernel/syscalls.o CC arch/powerpc/kernel/ptrace.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/kernel/signal.o CC arch/powerpc/kernel/of_platform.o CC arch/powerpc/kernel/prom_parse.o CC arch/powerpc/kernel/process.o AS arch/powerpc/kernel/misc_32.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/idle.o CC arch/powerpc/kernel/dma.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/time.o CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/udbg.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/io.o CC arch/powerpc/kernel/setup_32.o AS arch/powerpc/kernel/l2cr_6xx.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/cpu_setup_6xx.o AS arch/powerpc/kernel/entry_32.o CC arch/powerpc/kernel/sysfs.o LD arch/powerpc/math-emu/built-in.o CC arch/powerpc/kernel/pci_32.o CC arch/powerpc/kernel/pci_of_scan.o CC arch/powerpc/kernel/pci-common.o LDS arch/powerpc/kernel/vmlinux.lds AS arch/powerpc/kernel/head_32.o CC arch/powerpc/kernel/iomap.o AS arch/powerpc/kernel/fpu.o CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh LD arch/powerpc/crypto/built-in.o LDS arch/powerpc/kernel/vdso32/vdso32.lds VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o VDSO32A arch/powerpc/kernel/vdso32/note.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o AS arch/powerpc/kernel/systbl.o LD init/mounts.o LD arch/powerpc/net/built-in.o VDSO32L arch/powerpc/kernel/vdso32/vdso32.so.dbg LD arch/powerpc/mm/built-in.o OBJCOPY arch/powerpc/kernel/vdso32/vdso32.so LD arch/powerpc/lib/built-in.o AS arch/powerpc/kernel/vdso32/vdso32_wrapper.o LD certs/built-in.o LD arch/powerpc/kernel/vdso32/built-in.o LD init/built-in.o LD ipc/built-in.o CC security/commoncap.o CC security/min_addr.o LD crypto/built-in.o CC kernel/fork.o CC kernel/exec_domain.o CC kernel/cpu.o CC kernel/exit.o CC kernel/panic.o CC kernel/resource.o CC kernel/softirq.o CC kernel/sysctl.o CC kernel/sysctl_binary.o CC kernel/capability.o CC kernel/user.o CC kernel/ptrace.o CC kernel/kmod.o CC kernel/sys.o CC kernel/task_work.o CC kernel/pid.o CC kernel/workqueue.o CC kernel/signal.o CC kernel/params.o CC kernel/notifier.o CC mm/maccess.o CC kernel/sys_ni.o CC mm/page-writeback.o CC kernel/kthread.o CC mm/page_alloc.o CC kernel/nsproxy.o CC mm/oom_kill.o CC mm/truncate.o CC mm/mempool.o CC kernel/reboot.o CC mm/swap.o CC mm/filemap.o CC kernel/extable.o CC mm/readahead.o CC kernel/cred.o CC kernel/ksysfs.o CC mm/vmscan.o LD block/built-in.o CC kernel/async.o CC mm/shmem.o CC kernel/range.o CC mm/util.o CC fs/open.o CC mm/mmzone.o CC fs/read_write.o CC fs/file_table.o CC fs/super.o CC kernel/smpboot.o CC fs/char_dev.o CC kernel/ucount.o LD sound/built-in.o CC mm/vmstat.o CC mm/backing-dev.o LD kernel/livepatch/built-in.o CC mm/mm_init.o LD firmware/built-in.o CC kernel/locking/mutex.o CC kernel/power/qos.o CC kernel/printk/printk.o CC kernel/irq/irqdesc.o CC kernel/rcu/update.o CC kernel/irq/handle.o CC kernel/rcu/sync.o CC kernel/rcu/tiny.o CC kernel/irq/manage.o CC kernel/irq/spurious.o CC kernel/irq/resend.o LD net/built-in.o CC kernel/dma.o CC kernel/sched/core.o CC kernel/irq/chip.o LD arch/powerpc/kernel/built-in.o CC kernel/locking/semaphore.o CC fs/stat.o CC kernel/up.o CC kernel/elfcore.o CC fs/exec.o CC kernel/irq/dummychip.o CC kernel/memremap.o CC kernel/time/time.o CC fs/pipe.o CC fs/namei.o CC kernel/time/timer.o CC kernel/irq/devres.o CC fs/fcntl.o LD security/built-in.o LD kernel/power/built-in.o CC kernel/time/hrtimer.o CC kernel/time/ntp.o CC kernel/time/timekeeping.o CC kernel/time/clocksource.o CC kernel/time/jiffies.o CC kernel/irq/irqdomain.o CC mm/mmu_context.o CC fs/ioctl.o CC mm/percpu.o LD drivers/amba/built-in.o CC fs/readdir.o LD virt/lib/built-in.o CC kernel/locking/rwsem.o CC kernel/locking/percpu-rwsem.o LD drivers/auxdisplay/built-in.o LD virt/built-in.o LD kernel/printk/built-in.o CC mm/slab_common.o CC mm/compaction.o CC mm/vmacache.o CC mm/interval_tree.o LD kernel/rcu/built-in.o CC mm/list_lru.o CC kernel/locking/rwsem-xadd.o LD drivers/block/built-in.o LD drivers/bus/built-in.o CC mm/workingset.o CC mm/debug.o CC kernel/sched/loadavg.o CC fs/select.o CC mm/gup.o CC mm/highmem.o CC lib/lockref.o CC lib/bcd.o CC lib/div64.o CC kernel/time/timer_list.o CC fs/inode.o CC fs/dcache.o CC fs/attr.o CC kernel/time/timeconv.o CC fs/bad_inode.o CC lib/sort.o LD drivers/cdrom/built-in.o CC fs/file.o CC kernel/sched/clock.o CC lib/parser.o CC kernel/sched/cputime.o CC mm/memory.o CC kernel/time/timecounter.o CC drivers/base/component.o CC drivers/base/core.o CC kernel/time/posix-stubs.o CC kernel/time/clockevents.o CC kernel/time/alarmtimer.o CC drivers/base/bus.o CC drivers/base/dd.o CC drivers/base/syscore.o CC drivers/base/driver.o LD drivers/char/ipmi/built-in.o CC drivers/base/class.o CC drivers/char/mem.o CC mm/mincore.o CC fs/filesystems.o CC fs/namespace.o CC fs/seq_file.o CC kernel/sched/idle_task.o CC kernel/time/tick-common.o LD kernel/irq/built-in.o LD drivers/clk/bcm/built-in.o LD drivers/clk/mvebu/built-in.o CC lib/halfmd4.o CC kernel/sched/fair.o CC kernel/sched/rt.o CC kernel/sched/deadline.o CC lib/debug_locks.o CC drivers/base/platform.o CC lib/random32.o CC drivers/base/cpu.o LD kernel/locking/built-in.o LD drivers/clk/ti/built-in.o CC lib/bust_spinlocks.o LD drivers/clk/built-in.o CC lib/kasprintf.o CC drivers/char/random.o CC lib/bitmap.o CC drivers/char/misc.o CC fs/xattr.o CC lib/scatterlist.o LD drivers/char/agp/built-in.o CC mm/mmap.o CC mm/mlock.o CC fs/libfs.o CC lib/lcm.o CC lib/gcd.o CC fs/fs-writeback.o CC lib/list_sort.o CC lib/uuid.o CC lib/flex_array.o CC lib/iov_iter.o CC lib/clz_ctz.o CC drivers/base/firmware.o CC mm/mremap.o CC mm/mprotect.o CC mm/msync.o CC drivers/base/init.o CC mm/rmap.o CC drivers/base/map.o CC lib/bsearch.o CC mm/vmalloc.o CC fs/pnode.o CC lib/find_bit.o CC lib/llist.o CC lib/memweight.o CC drivers/base/devres.o CC drivers/base/attribute_container.o CC drivers/base/topology.o CC drivers/base/transport_class.o CC drivers/base/container.o CC lib/kfifo.o CC lib/percpu-refcount.o CC lib/percpu_ida.o CC drivers/base/property.o CC drivers/base/cacheinfo.o CC mm/pagewalk.o CC lib/rhashtable.o CC mm/pgtable-generic.o CC lib/reciprocal_div.o CC lib/once.o LD drivers/base/power/built-in.o CC kernel/sched/stop_task.o CC kernel/sched/wait.o LD drivers/firewire/built-in.o CC kernel/sched/swait.o LD drivers/clocksource/built-in.o CC kernel/sched/completion.o CC kernel/sched/idle.o CC lib/string_helpers.o LD drivers/base/test/built-in.o LD kernel/time/built-in.o CC lib/pci_iomap.o CC lib/hexdump.o CC lib/kstrtox.o CC drivers/base/dma-mapping.o LD drivers/hwtracing/intel_th/built-in.o CC lib/iomap_copy.o CC lib/devres.o CC lib/hweight.o CC mm/init-mm.o CC lib/bitrev.o HOSTCC lib/gen_crc32table LD drivers/idle/built-in.o LD drivers/firmware/broadcom/built-in.o LD drivers/i2c/algos/built-in.o LD drivers/gpu/vga/built-in.o CC lib/syscall.o LD drivers/i2c/busses/built-in.o CC mm/nobootmem.o LD drivers/firmware/tegra/built-in.o LD drivers/firmware/meson/built-in.o CC lib/atomic64.o CC fs/splice.o LD drivers/i2c/muxes/built-in.o CC mm/memblock.o CC mm/dmapool.o CC fs/sync.o CC mm/slub.o CC fs/utimes.o LD drivers/gpu/drm/bridge/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/firmware/built-in.o LD drivers/i2c/built-in.o CC fs/stack.o CC fs/fs_struct.o LD drivers/lguest/built-in.o CC fs/statfs.o CC drivers/irqchip/irqchip.o LD drivers/gpu/drm/i2c/built-in.o CC fs/fs_pin.o CC fs/nsfs.o CC fs/no-block.o LD fs/devpts/built-in.o LD fs/exofs/built-in.o LD drivers/macintosh/built-in.o CC lib/strncpy_from_user.o LD drivers/gpu/drm/panel/built-in.o CC lib/argv_split.o CC lib/strnlen_user.o CC lib/chacha20.o LD drivers/gpu/drm/omapdrm/displays/built-in.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD fs/quota/built-in.o LD fs/notify/fanotify/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD fs/notify/dnotify/built-in.o CC lib/cmdline.o LD fs/notify/inotify/built-in.o CC fs/binfmt_elf.o CC lib/dec_and_lock.o CC lib/ctype.o LD drivers/gpu/drm/omapdrm/built-in.o CC lib/decompress.o LD fs/notify/built-in.o LD drivers/mmc/built-in.o LD drivers/nfc/built-in.o LD drivers/net/built-in.o LD drivers/mfd/built-in.o CC fs/ramfs/inode.o LD drivers/char/built-in.o LD kernel/sched/built-in.o CC fs/ramfs/file-mmu.o LD drivers/gpu/drm/built-in.o CC lib/earlycpio.o CC lib/dma-noop.o CC lib/dump_stack.o LD kernel/built-in.o CC lib/extable.o CC lib/fdt.o CC lib/fdt_empty_tree.o LD drivers/nvme/host/built-in.o CC lib/fdt_ro.o CC lib/fdt_rw.o CC lib/fdt_strerror.o CC lib/fdt_wip.o CC lib/fdt_sw.o LD drivers/platform/built-in.o LD drivers/irqchip/built-in.o LD drivers/nvme/target/built-in.o LD drivers/media/firewire/built-in.o CC lib/int_sqrt.o CC lib/flex_proportions.o CC lib/idr.o LD drivers/power/built-in.o LD drivers/ptp/built-in.o LD drivers/misc/eeprom/built-in.o CC lib/ioremap.o LD drivers/gpu/built-in.o CC lib/irq_regs.o CC lib/is_single_threaded.o LD drivers/misc/cb710/built-in.o LD drivers/nvme/built-in.o LD drivers/pwm/built-in.o LD drivers/media/mmc/siano/built-in.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/media/common/b2c2/built-in.o LD drivers/media/common/saa7146/built-in.o CC lib/klist.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/base/built-in.o CC drivers/of/base.o CC lib/kobject.o CC lib/kobject_uevent.o LD drivers/media/mmc/built-in.o LD drivers/misc/ti-st/built-in.o CC lib/md5.o CC lib/nmi_backtrace.o LD drivers/media/platform/omap/built-in.o CC lib/nodemask.o CC lib/plist.o CC lib/radix-tree.o LD drivers/media/common/siano/built-in.o CC lib/rbtree.o LD drivers/media/platform/built-in.o LD drivers/misc/mic/bus/built-in.o CC lib/ratelimit.o CC lib/seq_buf.o LD drivers/soc/bcm/built-in.o LD drivers/media/i2c/built-in.o LD drivers/media/rc/keymaps/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/usb/host/built-in.o LD drivers/media/spi/built-in.o CC drivers/of/device.o LD drivers/misc/mic/built-in.o LD drivers/video/backlight/built-in.o LD drivers/media/tuners/built-in.o CC drivers/of/platform.o CC drivers/of/fdt.o LD drivers/media/rc/built-in.o LD drivers/media/common/built-in.o CC lib/sha1.o CC drivers/of/fdt_address.o LD drivers/video/fbdev/core/built-in.o CC drivers/of/address.o LD drivers/tty/ipwireless/built-in.o CC lib/show_mem.o LD drivers/usb/built-in.o LD drivers/misc/built-in.o CC drivers/pci/access.o LD drivers/soc/built-in.o CC drivers/pci/bus.o LD drivers/tty/vt/built-in.o CC drivers/pci/probe.o LD drivers/tty/serial/built-in.o CC drivers/pci/host-bridge.o CC lib/timerqueue.o CC lib/string.o CC drivers/of/irq.o CC drivers/of/of_pci.o CC drivers/pci/remove.o CC drivers/pci/pci.o CC drivers/pci/pci-driver.o CC drivers/of/of_pci_irq.o CC lib/vsprintf.o CC drivers/of/of_reserved_mem.o LD drivers/tty/built-in.o CC drivers/pci/search.o CC lib/win_minmax.o CC drivers/pci/pci-sysfs.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o GEN lib/crc32table.h LD drivers/media/pci/dm1105/built-in.o CC drivers/pci/setup-res.o CC drivers/pci/rom.o LD drivers/media/pci/ngene/built-in.o CC drivers/pci/irq.o CC drivers/pci/vpd.o LD drivers/media/pci/mantis/built-in.o CC drivers/pci/setup-bus.o LD drivers/media/pci/netup_unidvb/built-in.o CC drivers/pci/vc.o CC lib/crc32.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/pci/pluto2/built-in.o LD drivers/media/pci/pt1/built-in.o LD fs/ramfs/ramfs.o LD drivers/video/fbdev/omap2/omapfb/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/saa7146/built-in.o LD fs/ramfs/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o CC drivers/pci/of.o CC drivers/pci/syscall.o LD drivers/media/pci/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/pci/host/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o LD drivers/media/usb/stkwebcam/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/video/fbdev/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o LD drivers/media/usb/built-in.o LD drivers/video/built-in.o LD drivers/media/built-in.o LD mm/built-in.o LD fs/built-in.o LD drivers/of/built-in.o LD drivers/pci/built-in.o LD drivers/built-in.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:15.338473