# git rev-parse -q --verify 6040e57658eee6eb1315a26119101ca832d1f854^{commit} 6040e57658eee6eb1315a26119101ca832d1f854 already have revision, skipping fetch # git checkout -q -f -B kisskb 6040e57658eee6eb1315a26119101ca832d1f854 # git clean -qxdf # git log -1 commit 6040e57658eee6eb1315a26119101ca832d1f854 Author: Linus Torvalds Date: Fri Aug 19 12:47:01 2016 -0700 Make the hardened user-copy code depend on having a hardened allocator The kernel test robot reported a usercopy failure in the new hardened sanity checks, due to a page-crossing copy of the FPU state into the task structure. This happened because the kernel test robot was testing with SLOB, which doesn't actually do the required book-keeping for slab allocations, and as a result the hardening code didn't realize that the task struct allocation was one single allocation - and the sanity checks fail. Since SLOB doesn't even claim to support hardening (and you really shouldn't use it), the straightforward solution is to just make the usercopy hardening code depend on the allocator supporting it. Reported-by: kernel test robot Cc: Kees Cook Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/gcc-4.6.3-nolibc/xtensa-linux/bin/xtensa-linux-gcc --version # < git log --format=%s --max-count=1 6040e57658eee6eb1315a26119101ca832d1f854 # < make -j 48 ARCH=xtensa O=/home/kisskb/slave/build/linus_xtensa-allnoconfig_xtensa CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/xtensa-linux/bin/xtensa-linux- allnoconfig # make -j 48 ARCH=xtensa O=/home/kisskb/slave/build/linus_xtensa-allnoconfig_xtensa CROSS_COMPILE=/opt/cross/kisskb/gcc-4.6.3-nolibc/xtensa-linux/bin/xtensa-linux- make[1]: Entering directory '/home/kisskb/slave/build/linus_xtensa-allnoconfig_xtensa' GEN ./Makefile scripts/kconfig/conf --silentoldconfig Kconfig CHK include/config/kernel.release UPD include/config/kernel.release GEN ./Makefile WRAP arch/xtensa/include/generated/asm/bitsperlong.h WRAP arch/xtensa/include/generated/asm/bug.h WRAP arch/xtensa/include/generated/asm/clkdev.h WRAP arch/xtensa/include/generated/asm/cputime.h WRAP arch/xtensa/include/generated/asm/div64.h WRAP arch/xtensa/include/generated/asm/errno.h WRAP arch/xtensa/include/generated/asm/emergency-restart.h WRAP arch/xtensa/include/generated/asm/exec.h WRAP arch/xtensa/include/generated/asm/fcntl.h WRAP arch/xtensa/include/generated/asm/hardirq.h WRAP arch/xtensa/include/generated/asm/ioctl.h WRAP arch/xtensa/include/generated/asm/irq_regs.h WRAP arch/xtensa/include/generated/asm/irq_work.h WRAP arch/xtensa/include/generated/asm/kdebug.h WRAP arch/xtensa/include/generated/asm/kmap_types.h WRAP arch/xtensa/include/generated/asm/kvm_para.h WRAP arch/xtensa/include/generated/asm/linkage.h WRAP arch/xtensa/include/generated/asm/local.h WRAP arch/xtensa/include/generated/asm/local64.h WRAP arch/xtensa/include/generated/asm/mcs_spinlock.h WRAP arch/xtensa/include/generated/asm/mm-arch-hooks.h WRAP arch/xtensa/include/generated/asm/percpu.h WRAP arch/xtensa/include/generated/asm/preempt.h WRAP arch/xtensa/include/generated/asm/resource.h WRAP arch/xtensa/include/generated/asm/rwsem.h WRAP arch/xtensa/include/generated/asm/sections.h WRAP arch/xtensa/include/generated/asm/siginfo.h WRAP arch/xtensa/include/generated/asm/statfs.h WRAP arch/xtensa/include/generated/asm/termios.h WRAP arch/xtensa/include/generated/asm/topology.h WRAP arch/xtensa/include/generated/asm/trace_clock.h WRAP arch/xtensa/include/generated/asm/word-at-a-time.h WRAP arch/xtensa/include/generated/asm/xor.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 CC scripts/mod/empty.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/mod/mk_elfconfig 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/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/xtensa/kernel/asm-offsets.s CHK include/generated/asm-offsets.h UPD include/generated/asm-offsets.h CALL /home/kisskb/slave/src/scripts/checksyscalls.sh :1298:2: warning: #warning syscall userfaultfd not implemented [-Wcpp] :1301:2: warning: #warning syscall membarrier not implemented [-Wcpp] :1304:2: warning: #warning syscall mlock2 not implemented [-Wcpp] :1307:2: warning: #warning syscall copy_file_range not implemented [-Wcpp] :1310:2: warning: #warning syscall preadv2 not implemented [-Wcpp] :1313:2: warning: #warning syscall pwritev2 not implemented [-Wcpp] 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 LD usr/built-in.o CC init/version.o AS arch/xtensa/kernel/align.o AS arch/xtensa/kernel/entry.o AS arch/xtensa/kernel/coprocessor.o CC arch/xtensa/kernel/platform.o CC arch/xtensa/kernel/irq.o CC arch/xtensa/kernel/pci-dma.o CC arch/xtensa/kernel/stacktrace.o CC arch/xtensa/kernel/setup.o CC arch/xtensa/kernel/ptrace.o CC arch/xtensa/kernel/signal.o CC arch/xtensa/kernel/process.o CC arch/xtensa/kernel/time.o CC arch/xtensa/kernel/syscall.o CC arch/xtensa/kernel/traps.o AS arch/xtensa/kernel/head.o LDS arch/xtensa/kernel/vmlinux.lds AS arch/xtensa/kernel/vectors.o CC arch/xtensa/mm/ioremap.o CC arch/xtensa/mm/mmu.o CC arch/xtensa/mm/init.o CC arch/xtensa/mm/cache.o AS arch/xtensa/mm/misc.o CC arch/xtensa/mm/fault.o CC arch/xtensa/mm/tlb.o CC arch/xtensa/platforms/iss/setup.o LD certs/built-in.o CC kernel/fork.o CC kernel/panic.o CC kernel/exit.o CC kernel/cpu.o CC kernel/softirq.o CC kernel/sysctl.o CC kernel/user.o CC kernel/signal.o CC kernel/resource.o CC kernel/sys.o CC kernel/kmod.o CC kernel/exec_domain.o CC kernel/sysctl_binary.o CC kernel/workqueue.o CC kernel/capability.o CC kernel/extable.o CC kernel/params.o CC kernel/ksysfs.o CC kernel/cred.o CC kernel/ptrace.o CC kernel/reboot.o CC kernel/pid.o CC kernel/task_work.o CC kernel/kthread.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC kernel/notifier.o LD kernel/livepatch/built-in.o CC kernel/rcu/update.o CC kernel/sched/core.o CC kernel/rcu/sync.o CC kernel/async.o CC kernel/range.o CC kernel/smpboot.o CC kernel/rcu/srcu.o LD arch/xtensa/kernel/built-in.o CC kernel/up.o CC kernel/sched/loadavg.o LD arch/xtensa/mm/built-in.o CC kernel/power/qos.o CC kernel/printk/printk.o CC kernel/rcu/tiny.o CC kernel/sched/clock.o CC kernel/locking/mutex.o CC kernel/sched/cputime.o CC kernel/sched/idle_task.o CC kernel/sched/fair.o CC kernel/irq/handle.o CC kernel/irq/irqdesc.o CC kernel/irq/manage.o LD arch/xtensa/platforms/iss/built-in.o CC kernel/locking/semaphore.o CC kernel/irq/spurious.o CC kernel/memremap.o CC kernel/irq/resend.o CC kernel/time/time.o CC kernel/time/timer.o CC kernel/sched/rt.o CC kernel/time/hrtimer.o CC kernel/sched/deadline.o CC kernel/time/itimer.o CC kernel/irq/chip.o CC kernel/time/posix-timers.o CC kernel/irq/dummychip.o CC kernel/irq/devres.o CC kernel/sched/stop_task.o CC kernel/irq/irqdomain.o CC mm/filemap.o CC kernel/sched/wait.o LD init/mounts.o LD init/built-in.o CC mm/mempool.o CC kernel/time/posix-cpu-timers.o CC kernel/locking/rwsem.o CC mm/oom_kill.o LD ipc/built-in.o CC mm/maccess.o CC kernel/time/timekeeping.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 mm/page_alloc.o CC kernel/sched/swait.o CC mm/page-writeback.o CC kernel/sched/completion.o CC mm/readahead.o CC kernel/sched/idle.o CC mm/swap.o CC kernel/time/ntp.o CC kernel/time/clocksource.o CC mm/truncate.o CC kernel/time/jiffies.o CC fs/open.o CC kernel/locking/percpu-rwsem.o CC mm/vmscan.o CC security/commoncap.o CC fs/read_write.o CC security/min_addr.o CC kernel/locking/rwsem-xadd.o CC mm/shmem.o CC kernel/time/timer_list.o LD kernel/rcu/built-in.o CC kernel/time/timeconv.o CC fs/file_table.o CC mm/mmzone.o CC kernel/time/timecounter.o LD kernel/power/built-in.o CC mm/util.o CC kernel/time/posix-clock.o CC kernel/time/alarmtimer.o LD kernel/printk/built-in.o CC fs/super.o CC kernel/time/clockevents.o CC kernel/time/tick-common.o CC kernel/time/sched_clock.o CC mm/vmstat.o CC mm/backing-dev.o CC mm/mm_init.o LD crypto/built-in.o CC fs/char_dev.o CC mm/mmu_context.o CC mm/percpu.o CC fs/stat.o CC mm/slab_common.o CC fs/pipe.o CC mm/compaction.o CC fs/exec.o CC fs/namei.o CC mm/vmacache.o CC fs/fcntl.o CC fs/ioctl.o CC mm/interval_tree.o CC mm/list_lru.o LD kernel/irq/built-in.o CC mm/workingset.o CC mm/debug.o CC fs/readdir.o CC fs/select.o LD block/built-in.o CC fs/dcache.o CC mm/gup.o CC mm/highmem.o CC mm/memory.o CC mm/mincore.o CC mm/mlock.o CC fs/inode.o LD kernel/locking/built-in.o CC mm/mmap.o CC fs/attr.o CC fs/bad_inode.o CC mm/mprotect.o CC mm/mremap.o CC fs/file.o CC mm/rmap.o CC mm/msync.o CC mm/vmalloc.o CC fs/filesystems.o CC fs/namespace.o LD kernel/sched/built-in.o CC fs/seq_file.o LD security/built-in.o CC fs/xattr.o CC mm/pagewalk.o CC fs/libfs.o CC mm/init-mm.o CC mm/pgtable-generic.o CC fs/fs-writeback.o CC mm/bootmem.o CC mm/dmapool.o CC fs/pnode.o CC fs/splice.o CC mm/slub.o CC fs/sync.o CC fs/utimes.o CC fs/stack.o LD sound/built-in.o CC fs/fs_struct.o CC fs/statfs.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 fs/quota/built-in.o CC fs/ramfs/file-mmu.o CC fs/ramfs/inode.o LD fs/notify/inotify/built-in.o LD fs/notify/dnotify/built-in.o LD fs/notify/fanotify/built-in.o LD fs/notify/built-in.o LD firmware/built-in.o LD net/built-in.o LD drivers/lguest/built-in.o LD drivers/amba/built-in.o LD drivers/hwtracing/intel_th/built-in.o LD drivers/cdrom/built-in.o LD drivers/macintosh/built-in.o LD drivers/clocksource/built-in.o LD drivers/block/built-in.o LD drivers/auxdisplay/built-in.o LD drivers/firewire/built-in.o LD drivers/bus/built-in.o LD drivers/mfd/built-in.o LD drivers/idle/built-in.o CC drivers/irqchip/irq-xtensa-pic.o LD drivers/nfc/built-in.o LD drivers/net/built-in.o LD drivers/power/built-in.o CC drivers/char/mem.o LD drivers/platform/built-in.o CC drivers/clk/clkdev.o LD drivers/misc/cb710/built-in.o LD fs/ramfs/ramfs.o LD drivers/mmc/built-in.o LD drivers/pwm/built-in.o CC drivers/char/random.o CC drivers/char/misc.o CC drivers/clk/clk-devres.o LD drivers/misc/ti-st/built-in.o CC drivers/clk/clk.o LD drivers/misc/eeprom/built-in.o CC drivers/clk/clk-divider.o LD drivers/gpu/vga/built-in.o LD drivers/char/agp/built-in.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/firmware/broadcom/built-in.o LD fs/ramfs/built-in.o CC drivers/clk/clk-fixed-factor.o CC drivers/clk/clk-fixed-rate.o LD drivers/misc/mic/bus/built-in.o LD drivers/media/firewire/built-in.o CC drivers/clk/clk-gate.o LD drivers/i2c/algos/built-in.o LD drivers/video/backlight/built-in.o LD drivers/nvme/host/built-in.o LD drivers/i2c/busses/built-in.o LD drivers/tty/ipwireless/built-in.o CC drivers/clk/clk-multiplier.o LD drivers/misc/mic/built-in.o LD drivers/i2c/muxes/built-in.o LD drivers/soc/bcm/built-in.o LD drivers/media/common/b2c2/built-in.o CC drivers/clk/clk-mux.o LD drivers/firmware/built-in.o CC drivers/clk/clk-composite.o CC drivers/base/component.o LD drivers/tty/serial/built-in.o LD drivers/misc/built-in.o LD drivers/tty/vt/built-in.o LD drivers/soc/fsl/built-in.o LD drivers/nvme/target/built-in.o LD drivers/i2c/built-in.o CC drivers/clk/clk-fractional-divider.o LD drivers/video/fbdev/core/built-in.o LD drivers/media/i2c/soc_camera/built-in.o LD drivers/media/common/saa7146/built-in.o CC drivers/clk/clk-gpio.o LD drivers/media/mmc/siano/built-in.o LD drivers/media/common/siano/built-in.o LD drivers/clk/ti/built-in.o LD drivers/clk/mvebu/built-in.o LD drivers/clk/bcm/built-in.o LD drivers/gpu/drm/bridge/built-in.o CC drivers/base/core.o LD drivers/nvme/built-in.o LD drivers/media/mmc/built-in.o LD drivers/media/platform/omap/built-in.o LD drivers/soc/built-in.o LD drivers/tty/built-in.o LD drivers/media/rc/keymaps/built-in.o LD arch/xtensa/lib/built-in.o LD drivers/media/i2c/built-in.o AS arch/xtensa/lib/checksum.o LD drivers/media/tuners/built-in.o CC drivers/base/bus.o CC drivers/base/dd.o LD drivers/gpu/drm/panel/built-in.o LD drivers/gpu/drm/i2c/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o LD drivers/gpu/drm/tilcdc/built-in.o LD fs/built-in.o LD drivers/media/platform/built-in.o LD drivers/gpu/drm/omapdrm/displays/built-in.o AS arch/xtensa/lib/memcopy.o AS arch/xtensa/lib/memset.o CC drivers/base/class.o CC drivers/base/driver.o CC drivers/base/syscore.o LD drivers/media/rc/built-in.o CC drivers/base/cpu.o CC drivers/base/firmware.o LD drivers/gpu/drm/omapdrm/dss/built-in.o AS arch/xtensa/lib/usercopy.o AS arch/xtensa/lib/strnlen_user.o LD drivers/media/common/built-in.o CC drivers/base/platform.o AS arch/xtensa/lib/strncpy_user.o LD drivers/video/fbdev/omap2/omapfb/built-in.o CC drivers/base/init.o CC drivers/base/map.o CC drivers/base/devres.o CC drivers/base/attribute_container.o CC drivers/base/container.o CC drivers/base/dma-mapping.o LD drivers/gpu/drm/omapdrm/built-in.o CC drivers/base/property.o CC drivers/base/topology.o CC drivers/base/transport_class.o CC drivers/base/cacheinfo.o CC drivers/base/power/clock_ops.o LD drivers/gpu/drm/built-in.o LD drivers/video/fbdev/omap2/built-in.o LD drivers/video/fbdev/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD drivers/media/pci/b2c2/built-in.o LD drivers/media/pci/dm1105/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/irqchip/built-in.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/pci/pluto2/built-in.o AR arch/xtensa/lib/lib.a LD drivers/media/pci/pt1/built-in.o LD drivers/gpu/built-in.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o LD drivers/media/pci/ttpci/built-in.o LD drivers/media/pci/smipcie/built-in.o LD drivers/media/pci/saa7146/built-in.o LD drivers/video/built-in.o LD drivers/media/pci/built-in.o LD virt/lib/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/b2c2/built-in.o LD drivers/media/usb/s2255/built-in.o LD drivers/media/usb/ttusb-dec/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/dvb-usb/built-in.o LD kernel/time/built-in.o LD virt/built-in.o CC lib/sort.o CC lib/div64.o CC lib/parser.o CC lib/halfmd4.o CC lib/bcd.o CC lib/debug_locks.o CC lib/bust_spinlocks.o CC lib/kasprintf.o CC lib/bitmap.o LD drivers/media/usb/built-in.o CC lib/random32.o CC lib/lockref.o CC lib/memweight.o CC lib/iov_iter.o CC lib/llist.o CC lib/clz_ctz.o CC lib/gcd.o CC lib/lcm.o CC lib/scatterlist.o CC lib/bsearch.o CC lib/list_sort.o CC lib/find_bit.o CC lib/uuid.o CC lib/flex_array.o CC lib/percpu-refcount.o CC lib/kfifo.o CC lib/rhashtable.o CC lib/percpu_ida.o CC lib/reciprocal_div.o CC lib/once.o CC lib/hexdump.o CC lib/kstrtox.o CC lib/iomap_copy.o CC lib/string_helpers.o CC lib/pci_iomap.o CC lib/devres.o CC lib/hweight.o CC lib/rational.o LD kernel/built-in.o LD drivers/base/power/built-in.o CC lib/atomic64.o CC lib/argv_split.o LD drivers/media/built-in.o CC lib/chacha20.o CC lib/ctype.o CC lib/decompress.o CC lib/dma-noop.o CC lib/dec_and_lock.o CC lib/cmdline.o CC lib/dump_stack.o CC lib/earlycpio.o CC lib/extable.o CC lib/flex_proportions.o CC lib/int_sqrt.o CC lib/idr.o CC lib/ioremap.o CC lib/irq_regs.o CC lib/klist.o CC lib/kobject.o CC lib/is_single_threaded.o CC lib/kobject_uevent.o CC lib/nmi_backtrace.o CC lib/md5.o CC lib/plist.o CC lib/nodemask.o CC lib/radix-tree.o CC lib/ratelimit.o CC lib/show_mem.o LD drivers/char/built-in.o CC lib/seq_buf.o CC lib/sha1.o CC lib/rbtree.o CC lib/timerqueue.o CC lib/string.o CC lib/vsprintf.o LD drivers/base/built-in.o LD mm/built-in.o LD drivers/clk/built-in.o LD drivers/built-in.o LD lib/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 SORTEX vmlinux SYSMAP System.map OBJCOPY vmlinux.bin LD arch/xtensa/boot/lib/built-in.o COPY arch/xtensa/boot/lib/inffast.c COPY arch/xtensa/boot/lib/inflate.c COPY arch/xtensa/boot/lib/inftrees.c CC arch/xtensa/boot/lib/zmem.o CC arch/xtensa/boot/lib/inffast.o CC arch/xtensa/boot/lib/inflate.o CC arch/xtensa/boot/lib/inftrees.o AR arch/xtensa/boot/lib/lib.a AS arch/xtensa/boot/boot-elf/bootstrap.o LDS arch/xtensa/boot/boot-elf/boot.lds Kernel: arch/xtensa/boot/boot-elf/../Image.elf is ready make[1]: Leaving directory '/home/kisskb/slave/build/linus_xtensa-allnoconfig_xtensa' Completed OK # rm -rf /home/kisskb/slave/build/linus_xtensa-allnoconfig_xtensa # Build took: 0:00:18.451884