# git rev-parse -q --verify 1ca30f3cf6988cc67c86b6b0b6e220538f39ed2c^{commit} 1ca30f3cf6988cc67c86b6b0b6e220538f39ed2c already have revision, skipping fetch # git checkout -q -f -B kisskb 1ca30f3cf6988cc67c86b6b0b6e220538f39ed2c # git clean -qxdf # git log -1 commit 1ca30f3cf6988cc67c86b6b0b6e220538f39ed2c Author: Aneesh Kumar K.V Date: Mon Oct 24 08:50:43 2016 +0530 powerpc/mm/radix: Use tlbiel only if we ever ran on the current cpu Before this patch, we used tlbiel, if we ever ran only on this core. That was mostly derived from the nohash usage of the same. But is incorrect, the ISA 3.0 clarifies tlbiel such that: "All TLB entries that have all of the following properties are made invalid on the thread executing the tlbiel instruction" ie. tlbiel only invalidates TLB entries on the current thread. So if the mm has been used on any other thread (aka. cpu) then we must broadcast the invalidate. This bug could lead to invalid TLB entries if a program runs on multiple threads of a core. Hence use tlbiel, if we only ever ran on only the current cpu. Fixes: 1a472c9dba6b ("powerpc/mm/radix: Add tlbflush routines") Cc: stable@vger.kernel.org # v4.7+ Signed-off-by: Aneesh Kumar K.V 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 1ca30f3cf6988cc67c86b6b0b6e220538f39ed2c # < 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/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 CC scripts/mod/empty.o HOSTCC scripts/dtc/flattree.o HOSTCC scripts/mod/mk_elfconfig HOSTCC scripts/dtc/fstree.o HOSTCC scripts/dtc/data.o CC scripts/mod/devicetable-offsets.s HOSTCC scripts/dtc/livetree.o HOSTCC scripts/dtc/treesource.o HOSTCC scripts/dtc/srcpos.o HOSTCC scripts/dtc/util.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/checks.o HOSTCC scripts/dtc/dtc-parser.tab.o HOSTCC scripts/dtc/dtc-lexer.lex.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 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 CC arch/powerpc/mm/mem.o CC arch/powerpc/mm/pgtable.o CC arch/powerpc/mm/mmap.o CC arch/powerpc/mm/init_32.o LD arch/powerpc/sysdev/built-in.o AS arch/powerpc/lib/string.o CC arch/powerpc/lib/alloc.o CC arch/powerpc/mm/pgtable_32.o CC arch/powerpc/mm/ppc_mmu_32.o CC arch/powerpc/lib/code-patching.o AS arch/powerpc/mm/hash_low_32.o CC arch/powerpc/lib/feature-fixups.o AS arch/powerpc/lib/crtsavres.o CC arch/powerpc/mm/tlb_hash32.o AS arch/powerpc/lib/div64.o AS arch/powerpc/lib/copy_32.o AS arch/powerpc/lib/checksum_32.o CC arch/powerpc/lib/checksum_wrappers.o CC arch/powerpc/mm/hugetlbpage.o CC arch/powerpc/mm/mmu_context_hash32.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/irq.o CC arch/powerpc/kernel/vdso.o CC arch/powerpc/kernel/signal_32.o CC arch/powerpc/kernel/pmc.o CC arch/powerpc/kernel/idle.o CPP arch/powerpc/kernel/systbl_chk.i CC arch/powerpc/kernel/process.o CC arch/powerpc/kernel/signal.o CC arch/powerpc/kernel/sysfs.o CC arch/powerpc/kernel/cacheinfo.o CC arch/powerpc/kernel/time.o CC arch/powerpc/kernel/traps.o CC arch/powerpc/kernel/setup-common.o CC arch/powerpc/kernel/prom.o CC arch/powerpc/kernel/io.o AS arch/powerpc/kernel/misc.o CC arch/powerpc/kernel/udbg.o CC arch/powerpc/kernel/of_platform.o CC arch/powerpc/kernel/dma.o CC arch/powerpc/kernel/prom_parse.o AS arch/powerpc/kernel/misc_32.o LD arch/powerpc/crypto/built-in.o AS arch/powerpc/kernel/idle_6xx.o AS arch/powerpc/kernel/l2cr_6xx.o AS arch/powerpc/kernel/cpu_setup_6xx.o LD arch/powerpc/net/built-in.o AS arch/powerpc/kernel/entry_32.o CC arch/powerpc/kernel/setup_32.o CC arch/powerpc/kernel/pci_32.o CC arch/powerpc/kernel/pci-common.o CC arch/powerpc/kernel/pci_of_scan.o LDS arch/powerpc/kernel/vdso32/vdso32.lds AS arch/powerpc/kernel/head_32.o CC arch/powerpc/kernel/iomap.o LDS arch/powerpc/kernel/vmlinux.lds CALL /home/kisskb/slave/src/arch/powerpc/kernel/systbl_chk.sh AS arch/powerpc/kernel/fpu.o VDSO32A arch/powerpc/kernel/vdso32/sigtramp.o VDSO32A arch/powerpc/kernel/vdso32/gettimeofday.o VDSO32A arch/powerpc/kernel/vdso32/datapage.o VDSO32A arch/powerpc/kernel/vdso32/cacheflush.o AS arch/powerpc/kernel/systbl.o LD certs/built-in.o VDSO32A arch/powerpc/kernel/vdso32/note.o LD arch/powerpc/lib/built-in.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 CC security/commoncap.o CC security/min_addr.o LD crypto/built-in.o LD block/built-in.o LD ipc/built-in.o LD arch/powerpc/mm/built-in.o CC kernel/fork.o CC kernel/exec_domain.o CC kernel/exit.o CC kernel/cpu.o CC kernel/panic.o CC kernel/pid.o CC kernel/capability.o CC kernel/task_work.o CC kernel/signal.o CC kernel/ptrace.o CC kernel/sys.o CC kernel/user.o CC kernel/softirq.o CC kernel/sysctl.o CC kernel/resource.o CC kernel/workqueue.o CC kernel/sysctl_binary.o CC kernel/kmod.o CC kernel/extable.o CC kernel/params.o CC kernel/kthread.o CC kernel/sys_ni.o CC kernel/nsproxy.o CC mm/filemap.o CC mm/mempool.o CC kernel/notifier.o CC mm/oom_kill.o CC fs/open.o CC kernel/ksysfs.o CC fs/read_write.o CC fs/super.o CC fs/file_table.o CC kernel/cred.o CC kernel/reboot.o CC mm/maccess.o CC kernel/async.o CC kernel/range.o CC mm/page_alloc.o LD sound/built-in.o LD init/mounts.o CC kernel/smpboot.o LD init/built-in.o CC kernel/ucount.o LD firmware/built-in.o LD kernel/livepatch/built-in.o LD net/built-in.o CC fs/char_dev.o CC kernel/power/qos.o CC kernel/printk/printk.o CC kernel/locking/mutex.o CC kernel/rcu/update.o CC kernel/dma.o CC kernel/irq/irqdesc.o CC kernel/up.o CC kernel/elfcore.o LD virt/lib/built-in.o CC kernel/sched/core.o CC kernel/memremap.o CC kernel/locking/semaphore.o LD virt/built-in.o CC kernel/time/time.o CC kernel/time/timer.o CC mm/page-writeback.o CC mm/readahead.o CC mm/swap.o CC kernel/time/hrtimer.o CC kernel/locking/rwsem.o CC mm/truncate.o CC kernel/locking/percpu-rwsem.o CC mm/vmscan.o CC mm/shmem.o CC kernel/time/itimer.o CC mm/util.o CC kernel/time/posix-timers.o LD security/built-in.o CC mm/mmzone.o CC fs/stat.o CC mm/vmstat.o CC fs/exec.o CC mm/backing-dev.o CC kernel/locking/rwsem-xadd.o CC kernel/time/posix-cpu-timers.o CC kernel/rcu/sync.o LD arch/powerpc/kernel/built-in.o CC lib/lockref.o CC lib/bcd.o LD drivers/amba/built-in.o CC lib/div64.o CC kernel/rcu/tiny.o CC lib/sort.o CC mm/mmu_context.o LD drivers/auxdisplay/built-in.o CC mm/mm_init.o CC fs/pipe.o CC kernel/time/timekeeping.o CC lib/parser.o LD drivers/block/built-in.o LD drivers/bus/built-in.o LD drivers/cdrom/built-in.o CC kernel/irq/manage.o CC kernel/irq/handle.o LD drivers/clocksource/built-in.o CC lib/halfmd4.o CC lib/debug_locks.o CC fs/namei.o CC drivers/char/mem.o LD drivers/clk/bcm/built-in.o CC fs/fcntl.o LD drivers/firewire/built-in.o CC fs/ioctl.o CC lib/random32.o LD kernel/printk/built-in.o CC mm/percpu.o CC drivers/char/random.o LD drivers/clk/mvebu/built-in.o CC drivers/char/misc.o CC drivers/base/component.o LD kernel/power/built-in.o CC mm/slab_common.o LD drivers/firmware/broadcom/built-in.o CC kernel/time/ntp.o CC lib/bust_spinlocks.o CC lib/kasprintf.o LD drivers/clk/ti/built-in.o CC mm/compaction.o CC mm/vmacache.o CC kernel/time/clocksource.o CC mm/interval_tree.o LD drivers/firmware/meson/built-in.o CC mm/list_lru.o LD drivers/clk/built-in.o CC mm/workingset.o LD kernel/locking/built-in.o CC kernel/time/jiffies.o LD drivers/firmware/built-in.o CC kernel/irq/spurious.o CC fs/readdir.o CC fs/select.o LD drivers/gpu/drm/bridge/built-in.o CC fs/dcache.o CC mm/debug.o LD drivers/hwtracing/intel_th/built-in.o CC lib/bitmap.o CC kernel/irq/resend.o CC kernel/irq/chip.o LD drivers/gpu/drm/hisilicon/built-in.o LD drivers/idle/built-in.o CC mm/gup.o CC lib/scatterlist.o CC mm/highmem.o LD drivers/i2c/algos/built-in.o LD kernel/rcu/built-in.o LD drivers/gpu/drm/i2c/built-in.o CC drivers/irqchip/irqchip.o CC kernel/sched/loadavg.o LD drivers/char/agp/built-in.o CC mm/memory.o LD drivers/i2c/busses/built-in.o CC lib/gcd.o CC kernel/time/timer_list.o CC mm/mincore.o CC kernel/time/timeconv.o LD drivers/gpu/drm/omapdrm/displays/built-in.o CC mm/mlock.o CC kernel/sched/clock.o CC lib/lcm.o CC kernel/time/timecounter.o CC kernel/time/posix-clock.o LD drivers/i2c/muxes/built-in.o CC fs/inode.o CC mm/mmap.o CC lib/list_sort.o CC mm/mprotect.o LD drivers/gpu/drm/omapdrm/dss/built-in.o LD drivers/i2c/built-in.o LD drivers/gpu/vga/built-in.o CC lib/uuid.o CC kernel/time/alarmtimer.o CC mm/mremap.o CC drivers/base/core.o LD drivers/gpu/drm/omapdrm/built-in.o CC kernel/time/clockevents.o CC drivers/base/bus.o CC kernel/time/tick-common.o LD drivers/lguest/built-in.o CC kernel/irq/dummychip.o CC mm/msync.o CC kernel/sched/cputime.o LD drivers/gpu/drm/panel/built-in.o CC lib/flex_array.o CC kernel/irq/devres.o CC fs/attr.o CC mm/rmap.o CC mm/vmalloc.o CC kernel/irq/irqdomain.o LD drivers/macintosh/built-in.o CC mm/pagewalk.o CC fs/bad_inode.o CC lib/iov_iter.o LD drivers/gpu/drm/tilcdc/built-in.o CC lib/clz_ctz.o CC kernel/sched/idle_task.o CC fs/file.o LD drivers/gpu/drm/built-in.o LD drivers/irqchip/built-in.o CC mm/pgtable-generic.o LD drivers/mfd/built-in.o CC fs/filesystems.o CC lib/bsearch.o CC fs/namespace.o LD drivers/gpu/built-in.o CC fs/seq_file.o CC lib/find_bit.o CC fs/xattr.o CC kernel/sched/fair.o CC lib/llist.o CC lib/memweight.o CC mm/init-mm.o LD drivers/mmc/built-in.o CC mm/nobootmem.o CC mm/memblock.o LD drivers/misc/cb710/built-in.o LD drivers/misc/eeprom/built-in.o CC mm/dmapool.o LD drivers/net/built-in.o CC lib/kfifo.o LD drivers/misc/lis3lv02d/built-in.o LD drivers/nfc/built-in.o CC lib/percpu_ida.o LD drivers/char/built-in.o CC fs/libfs.o LD drivers/misc/ti-st/built-in.o CC lib/percpu-refcount.o CC mm/slub.o CC kernel/sched/rt.o CC lib/reciprocal_div.o CC lib/rhashtable.o CC fs/fs-writeback.o CC drivers/base/dd.o LD drivers/misc/mic/bus/built-in.o CC drivers/base/syscore.o CC kernel/sched/deadline.o CC drivers/base/driver.o CC kernel/sched/stop_task.o LD drivers/media/common/b2c2/built-in.o LD drivers/misc/mic/built-in.o LD drivers/nvme/host/built-in.o CC kernel/sched/wait.o CC kernel/sched/swait.o CC drivers/of/base.o LD drivers/misc/built-in.o LD drivers/media/common/saa7146/built-in.o LD drivers/nvme/target/built-in.o CC lib/once.o CC kernel/sched/completion.o CC fs/pnode.o LD drivers/media/common/siano/built-in.o CC kernel/sched/idle.o LD kernel/irq/built-in.o LD drivers/nvme/built-in.o CC fs/splice.o LD drivers/platform/built-in.o LD drivers/power/built-in.o LD kernel/time/built-in.o LD drivers/media/common/v4l2-tpg/built-in.o CC drivers/pci/access.o LD drivers/media/firewire/built-in.o CC drivers/pci/bus.o CC drivers/pci/probe.o CC drivers/base/class.o LD drivers/media/i2c/soc_camera/built-in.o CC lib/string_helpers.o LD drivers/pwm/built-in.o LD drivers/media/common/built-in.o CC fs/sync.o LD drivers/media/i2c/built-in.o LD drivers/media/mmc/siano/built-in.o LD drivers/soc/bcm/built-in.o CC lib/hexdump.o LD drivers/tty/ipwireless/built-in.o LD drivers/media/mmc/built-in.o LD drivers/usb/host/built-in.o CC fs/utimes.o CC drivers/base/platform.o LD drivers/video/backlight/built-in.o CC drivers/base/cpu.o LD drivers/soc/fsl/built-in.o CC lib/kstrtox.o CC drivers/base/firmware.o LD drivers/tty/serial/built-in.o CC drivers/base/init.o LD drivers/media/spi/built-in.o CC fs/stack.o LD drivers/usb/built-in.o LD drivers/soc/built-in.o CC fs/fs_struct.o LD drivers/media/platform/omap/built-in.o CC fs/statfs.o LD drivers/media/rc/keymaps/built-in.o CC drivers/base/map.o CC drivers/base/devres.o CC drivers/of/device.o CC drivers/base/attribute_container.o LD drivers/media/tuners/built-in.o LD drivers/media/platform/built-in.o LD drivers/media/rc/built-in.o LD drivers/tty/vt/built-in.o CC drivers/pci/host-bridge.o LD drivers/video/fbdev/core/built-in.o CC drivers/base/transport_class.o CC drivers/base/topology.o CC drivers/of/platform.o LD drivers/tty/built-in.o CC lib/pci_iomap.o CC fs/fs_pin.o CC fs/no-block.o CC fs/nsfs.o CC lib/devres.o CC lib/iomap_copy.o CC lib/hweight.o LD kernel/sched/built-in.o LD kernel/built-in.o LD drivers/video/fbdev/omap2/omapfb/displays/built-in.o CC drivers/base/container.o CC drivers/of/fdt.o LD drivers/media/pci/b2c2/built-in.o LD drivers/video/fbdev/omap2/omapfb/dss/built-in.o HOSTCC lib/gen_crc32table LD drivers/media/usb/b2c2/built-in.o CC lib/bitrev.o LD fs/exofs/built-in.o LD drivers/media/pci/ddbridge/built-in.o LD fs/devpts/built-in.o LD drivers/video/fbdev/omap2/omapfb/built-in.o CC drivers/base/property.o LD fs/quota/built-in.o CC drivers/base/cacheinfo.o CC drivers/pci/remove.o CC fs/binfmt_elf.o CC lib/syscall.o CC drivers/base/dma-mapping.o LD drivers/base/power/built-in.o LD drivers/media/usb/dvb-usb-v2/built-in.o LD drivers/media/usb/dvb-usb/built-in.o LD drivers/media/pci/dm1105/built-in.o CC lib/atomic64.o LD fs/notify/dnotify/built-in.o LD drivers/video/fbdev/omap2/built-in.o CC fs/ramfs/inode.o CC lib/strncpy_from_user.o LD drivers/video/fbdev/built-in.o CC drivers/pci/pci.o LD drivers/media/usb/siano/built-in.o LD drivers/media/usb/s2255/built-in.o LD fs/notify/fanotify/built-in.o LD drivers/media/pci/mantis/built-in.o LD drivers/media/pci/netup_unidvb/built-in.o CC drivers/of/fdt_address.o CC drivers/of/address.o LD fs/notify/inotify/built-in.o LD drivers/media/usb/stkwebcam/built-in.o CC drivers/pci/pci-driver.o CC lib/strnlen_user.o LD drivers/video/built-in.o LD drivers/media/usb/ttusb-budget/built-in.o CC drivers/pci/search.o LD drivers/media/pci/ngene/built-in.o LD drivers/media/usb/zr364xx/built-in.o LD drivers/media/usb/ttusb-dec/built-in.o LD drivers/media/pci/pt1/built-in.o LD fs/notify/built-in.o LD drivers/media/pci/pluto2/built-in.o CC lib/cmdline.o CC lib/chacha20.o CC lib/argv_split.o CC drivers/of/irq.o CC drivers/of/of_pci.o CC drivers/of/of_pci_irq.o CC drivers/of/of_reserved_mem.o LD drivers/media/pci/saa7146/built-in.o LD drivers/media/usb/built-in.o CC lib/dec_and_lock.o CC lib/ctype.o LD drivers/media/pci/pt3/built-in.o LD drivers/media/pci/smipcie/built-in.o CC drivers/pci/pci-sysfs.o LD drivers/media/pci/ttpci/built-in.o CC fs/ramfs/file-mmu.o CC lib/decompress.o CC drivers/pci/rom.o CC lib/dma-noop.o LD drivers/media/pci/built-in.o CC drivers/pci/irq.o CC lib/earlycpio.o CC drivers/pci/setup-res.o CC lib/dump_stack.o CC drivers/pci/vpd.o CC lib/extable.o CC drivers/pci/setup-bus.o CC lib/fdt.o CC lib/fdt_empty_tree.o CC drivers/pci/vc.o CC lib/fdt_ro.o CC lib/fdt_sw.o CC lib/fdt_strerror.o CC lib/fdt_rw.o CC lib/fdt_wip.o CC lib/idr.o CC lib/flex_proportions.o CC lib/int_sqrt.o CC lib/ioremap.o CC drivers/pci/syscall.o CC lib/irq_regs.o CC lib/is_single_threaded.o CC lib/klist.o CC lib/kobject.o CC drivers/pci/of.o CC lib/md5.o CC lib/kobject_uevent.o LD drivers/media/built-in.o CC lib/nmi_backtrace.o LD drivers/pci/host/built-in.o CC lib/plist.o CC lib/nodemask.o CC lib/radix-tree.o CC lib/ratelimit.o LD mm/built-in.o CC lib/rbtree.o CC lib/seq_buf.o CC lib/string.o CC lib/show_mem.o CC lib/timerqueue.o CC lib/sha1.o CC lib/win_minmax.o CC lib/vsprintf.o GEN lib/crc32table.h CC lib/crc32.o LD fs/ramfs/ramfs.o LD fs/ramfs/built-in.o LD fs/built-in.o LD drivers/of/built-in.o LD drivers/base/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 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-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:13.241182