Push to branch refs/heads/master: eee1550b3e89217321b63efba64f03b2546180d6 --> 04cd74a759bf381f8f2c12e9ddb5fe8d0651c483
Documentation/ABI/testing/sysfs-bus-iio | 2 +- Documentation/ABI/testing/sysfs-devices-system-cpu | 16 + Documentation/arm64/silicon-errata.txt | 44 +- Documentation/arm64/tagged-pointers.txt | 62 +- .../devicetree/bindings/arm/arch_timer.txt | 11 + .../bindings/clock/amlogic,meson8b-clkc.txt | 11 +- .../devicetree/bindings/clock/qoriq-clock.txt | 1 + .../bindings/display/bridge/ti,ths8135.txt | 46 + .../bindings/display/panel/toppoly,td028ttec1.txt | 30 - .../bindings/display/panel/tpo,td028ttec1.txt | 30 + .../bindings/display/sunxi/sun4i-drm.txt | 19 +- Documentation/devicetree/bindings/dma/snps-dma.txt | 2 +- Documentation/devicetree/bindings/hwmon/jc42.txt | 4 + .../devicetree/bindings/iio/adc/avia-hx711.txt | 18 + .../bindings/input/tps65218-pwrbutton.txt | 4 +- Documentation/devicetree/bindings/mfd/axp20x.txt | 3 + .../devicetree/bindings/net/mediatek-net.txt | 2 +- Documentation/devicetree/bindings/net/phy.txt | 9 + .../devicetree/bindings/net/ti,dp83867.txt | 6 +- .../devicetree/bindings/pinctrl/pinctrl-palmas.txt | 9 + .../bindings/power/supply/tps65217_charger.txt | 7 +- .../devicetree/bindings/usb/usb-device.txt | 2 +- Documentation/devicetree/bindings/usb/usb-xhci.txt | 1 + .../devicetree/bindings/vendor-prefixes.txt | 1 + .../devicetree/bindings/watchdog/samsung-wdt.txt | 9 +- Documentation/filesystems/ext4.txt | 2 +- Documentation/kernel-parameters.txt | 71 +- Documentation/media/uapi/v4l/pixfmt-007.rst | 23 +- Documentation/speculation.txt | 90 + Documentation/stable_kernel_rules.txt | 2 +- Documentation/virtual/kvm/api.txt | 9 +- Documentation/virtual/kvm/arm/psci.txt | 30 + Documentation/x86/pti.txt | 186 ++ Makefile | 56 +- arch/alpha/include/asm/types.h | 2 +- arch/alpha/include/uapi/asm/types.h | 12 +- arch/alpha/kernel/console.c | 1 + arch/alpha/kernel/osf_sys.c | 6 +- arch/alpha/kernel/pci_impl.h | 3 +- arch/alpha/kernel/process.c | 3 +- arch/alpha/kernel/traps.c | 13 +- arch/arc/include/asm/atomic.h | 3 +- arch/arc/include/asm/cache.h | 2 + arch/arc/include/asm/entry-arcv2.h | 2 + arch/arc/include/asm/ptrace.h | 2 +- arch/arc/include/asm/uaccess.h | 5 +- arch/arc/kernel/entry.S | 6 + arch/arc/kernel/head.S | 14 +- arch/arc/kernel/mcip.c | 4 + arch/arc/kernel/smp.c | 25 +- arch/arc/mm/cache.c | 13 +- arch/arc/mm/mmap.c | 2 +- arch/arc/mm/tlb.c | 3 - arch/arm/Kconfig-nommu | 3 +- arch/arm/boot/dts/am335x-chilisom.dtsi | 8 + arch/arm/boot/dts/am335x-evmsk.dts | 1 + arch/arm/boot/dts/am33xx.dtsi | 3 +- arch/arm/boot/dts/am4372.dtsi | 6 +- arch/arm/boot/dts/am437x-cm-t43.dts | 4 +- arch/arm/boot/dts/am57xx-beagle-x15-common.dtsi | 1 + arch/arm/boot/dts/am57xx-idk-common.dtsi | 3 +- arch/arm/boot/dts/arm-realview-eb-mp.dtsi | 5 - arch/arm/boot/dts/armada-375.dtsi | 4 +- arch/arm/boot/dts/armada-388-gp.dts | 4 +- arch/arm/boot/dts/armada-38x.dtsi | 4 +- arch/arm/boot/dts/armada-39x.dtsi | 4 +- arch/arm/boot/dts/aspeed-ast2500-evb.dts | 2 +- arch/arm/boot/dts/at91-sama5d2_xplained.dts | 2 + arch/arm/boot/dts/at91-sama5d3_xplained.dts | 5 +- arch/arm/boot/dts/at91-sama5d4_xplained.dts | 2 + arch/arm/boot/dts/at91sam9g25.dtsi | 2 +- arch/arm/boot/dts/bcm-nsp.dtsi | 4 +- arch/arm/boot/dts/bcm283x-rpi-smsc9512.dtsi | 2 +- arch/arm/boot/dts/bcm283x-rpi-smsc9514.dtsi | 2 +- arch/arm/boot/dts/bcm5301x.dtsi | 4 +- arch/arm/boot/dts/bcm953012k.dts | 2 +- arch/arm/boot/dts/bcm958522er.dts | 1 + arch/arm/boot/dts/bcm958525er.dts | 1 + arch/arm/boot/dts/bcm958525xmc.dts | 1 + arch/arm/boot/dts/bcm958622hr.dts | 1 + arch/arm/boot/dts/bcm958623hr.dts | 1 + arch/arm/boot/dts/bcm958625hr.dts | 1 + arch/arm/boot/dts/bcm988312hr.dts | 1 + arch/arm/boot/dts/dm814x.dtsi | 9 +- arch/arm/boot/dts/dm816x.dtsi | 6 +- arch/arm/boot/dts/dra7-evm.dts | 2 + arch/arm/boot/dts/dra7.dtsi | 2 + arch/arm/boot/dts/exynos4412-odroid-common.dtsi | 4 +- arch/arm/boot/dts/exynos4412-odroidu3.dts | 5 +- arch/arm/boot/dts/exynos4412-odroidx2.dts | 1 + arch/arm/boot/dts/exynos4412-prime.dtsi | 41 + arch/arm/boot/dts/exynos4412-trats2.dts | 2 +- arch/arm/boot/dts/exynos4412.dtsi | 2 +- arch/arm/boot/dts/exynos5250.dtsi | 8 +- arch/arm/boot/dts/exynos5410.dtsi | 1 - arch/arm/boot/dts/imx53-qsrb.dts | 2 +- arch/arm/boot/dts/imx6qdl-wandboard.dtsi | 1 + arch/arm/boot/dts/imx6sx-sdb.dts | 17 - arch/arm/boot/dts/kirkwood-openblocks_a7.dts | 10 +- arch/arm/boot/dts/logicpd-som-lv-37xx-devkit.dts | 3 +- arch/arm/boot/dts/logicpd-som-lv.dtsi | 25 +- arch/arm/boot/dts/logicpd-torpedo-37xx-devkit.dts | 8 +- arch/arm/boot/dts/logicpd-torpedo-som.dtsi | 10 +- arch/arm/boot/dts/lpc3250-ea3250.dts | 4 +- arch/arm/boot/dts/lpc3250-phy3250.dts | 4 +- arch/arm/boot/dts/ls1021a-qds.dts | 2 +- arch/arm/boot/dts/ls1021a-twr.dts | 2 +- arch/arm/boot/dts/ls1021a.dtsi | 2 +- arch/arm/boot/dts/moxart-uc7112lx.dts | 2 +- arch/arm/boot/dts/moxart.dtsi | 17 +- arch/arm/boot/dts/mt2701.dtsi | 38 + arch/arm/boot/dts/omap3-n900.dts | 2 + arch/arm/boot/dts/omap4.dtsi | 4 +- arch/arm/boot/dts/omap5-uevm.dts | 21 + arch/arm/boot/dts/qcom-ipq4019.dtsi | 4 +- arch/arm/boot/dts/qcom-ipq8064.dtsi | 4 +- arch/arm/boot/dts/r7s72100.dtsi | 2 +- arch/arm/boot/dts/r8a7740-armadillo800eva.dts | 2 + arch/arm/boot/dts/r8a7790.dtsi | 19 +- arch/arm/boot/dts/r8a7791-koelsch.dts | 2 +- arch/arm/boot/dts/r8a7791.dtsi | 10 +- arch/arm/boot/dts/r8a7792.dtsi | 3 +- arch/arm/boot/dts/r8a7793.dtsi | 10 +- arch/arm/boot/dts/r8a7794-silk.dts | 2 +- arch/arm/boot/dts/r8a7794.dtsi | 13 +- arch/arm/boot/dts/rk322x.dtsi | 6 +- arch/arm/boot/dts/s5pv210.dtsi | 1 + arch/arm/boot/dts/sama5d2.dtsi | 2 +- arch/arm/boot/dts/sama5d4.dtsi | 2 +- arch/arm/boot/dts/spear1310-evb.dts | 2 +- arch/arm/boot/dts/spear1340.dtsi | 4 +- arch/arm/boot/dts/spear13xx.dtsi | 6 +- arch/arm/boot/dts/spear600.dtsi | 1 + arch/arm/boot/dts/ste-nomadik-stn8815.dtsi | 1 + arch/arm/boot/dts/stih407-family.dtsi | 1 + arch/arm/boot/dts/stih407.dtsi | 3 +- arch/arm/boot/dts/stih410.dtsi | 5 +- arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts | 2 +- .../boot/dts/sun7i-a20-olinuxino-lime2-emmc.dts | 2 +- arch/arm/boot/dts/tango4-vantage-1172.dts | 2 +- arch/arm/boot/dts/tegra20-paz00.dts | 1 + arch/arm/common/bL_switcher_dummy_if.c | 4 + arch/arm/configs/bcm2835_defconfig | 4 +- arch/arm/configs/ezx_defconfig | 4 +- arch/arm/configs/imote2_defconfig | 4 +- arch/arm/configs/omap2plus_defconfig | 1 + arch/arm/configs/s3c2410_defconfig | 6 +- arch/arm/configs/sunxi_defconfig | 2 + arch/arm/crypto/aesbs-glue.c | 6 +- arch/arm/include/asm/Kbuild | 1 - arch/arm/include/asm/assembler.h | 18 + arch/arm/include/asm/elf.h | 8 +- arch/arm/include/asm/ftrace.h | 18 + arch/arm/include/asm/kvm_arm.h | 4 +- arch/arm/include/asm/kvm_coproc.h | 3 +- arch/arm/include/asm/kvm_host.h | 9 + arch/arm/include/asm/kvm_mmu.h | 19 +- arch/arm/include/asm/kvm_psci.h | 27 - arch/arm/include/asm/module.h | 9 +- arch/arm/include/asm/uaccess.h | 44 +- arch/arm/include/asm/unaligned.h | 27 + arch/arm/include/asm/xen/events.h | 2 +- arch/arm/include/uapi/asm/kvm.h | 6 + arch/arm/kernel/armksyms.c | 4 +- arch/arm/kernel/entry-header.S | 6 + arch/arm/kernel/ftrace.c | 11 +- arch/arm/kernel/module-plts.c | 87 +- arch/arm/kernel/module.lds | 1 + arch/arm/kernel/setup.c | 10 +- arch/arm/kernel/smccc-call.S | 14 +- arch/arm/kernel/traps.c | 28 +- arch/arm/kvm/arm.c | 12 +- arch/arm/kvm/coproc.c | 77 +- arch/arm/kvm/emulate.c | 6 +- arch/arm/kvm/guest.c | 13 + arch/arm/kvm/handle_exit.c | 40 +- arch/arm/kvm/hyp/Makefile | 7 + arch/arm/kvm/hyp/banked-sr.c | 4 + arch/arm/kvm/hyp/switch.c | 6 +- arch/arm/kvm/init.S | 5 +- arch/arm/kvm/mmio.c | 6 +- arch/arm/kvm/mmu.c | 48 +- arch/arm/kvm/psci.c | 211 +- arch/arm/lib/csumpartialcopyuser.S | 4 + arch/arm/lib/getuser.S | 2 +- arch/arm/mach-at91/pm.c | 20 +- arch/arm/mach-bcm/Kconfig | 1 + arch/arm/mach-bcm/bcm_5301x.c | 28 + arch/arm/mach-bcm/bcm_kona_smc.c | 2 +- arch/arm/mach-cns3xxx/core.c | 2 +- arch/arm/mach-davinci/da8xx-dt.c | 1 + arch/arm/mach-davinci/devices-da8xx.c | 10 + arch/arm/mach-imx/cpu.c | 3 + arch/arm/mach-imx/mxc.h | 6 + arch/arm/mach-mvebu/Kconfig | 4 +- arch/arm/mach-omap1/dma.c | 16 +- arch/arm/mach-omap2/clockdomains7xx_data.c | 2 +- arch/arm/mach-omap2/gpmc-onenand.c | 10 +- arch/arm/mach-omap2/omap-headsmp.S | 3 +- arch/arm/mach-omap2/omap-secure.c | 21 + arch/arm/mach-omap2/omap-secure.h | 4 + arch/arm/mach-omap2/omap_device.c | 8 + arch/arm/mach-omap2/omap_hwmod.c | 8 +- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 25 +- arch/arm/mach-omap2/pdata-quirks.c | 5 +- arch/arm/mach-omap2/pm.h | 4 - arch/arm/mach-omap2/pm34xx.c | 13 +- arch/arm/mach-omap2/prm33xx.c | 12 - arch/arm/mach-omap2/prm_common.c | 2 +- arch/arm/mach-omap2/sleep34xx.S | 26 +- arch/arm/mach-omap2/vc.c | 2 +- arch/arm/mach-pxa/tosa-bt.c | 4 + arch/arm/mach-spear/time.c | 2 +- arch/arm/mm/dma-mapping.c | 20 +- arch/arm/mm/dump.c | 4 +- arch/arm/mm/fault.c | 5 +- arch/arm/mm/init.c | 4 +- arch/arm/mm/mmap.c | 4 +- arch/arm/mm/mmu.c | 77 +- arch/arm/mm/nommu.c | 8 +- arch/arm/mm/proc-v7m.S | 4 +- arch/arm/probes/kprobes/core.c | 24 +- arch/arm/probes/kprobes/test-core.c | 11 +- arch/arm/vfp/vfpmodule.c | 2 +- arch/arm/xen/mm.c | 1 + arch/arm64/Kconfig | 41 +- arch/arm64/Kconfig.platforms | 2 + arch/arm64/Makefile | 8 +- .../arm64/boot/dts/amlogic/meson-gxbb-odroidc2.dts | 12 + arch/arm64/boot/dts/broadcom/ns2.dtsi | 2 + arch/arm64/boot/dts/hisilicon/hi6220.dtsi | 3 + arch/arm64/boot/dts/hisilicon/hip06.dtsi | 2 +- arch/arm64/boot/dts/marvell/armada-37xx.dtsi | 13 +- arch/arm64/boot/dts/mediatek/mt8173.dtsi | 2 + arch/arm64/boot/dts/qcom/msm8916.dtsi | 5 +- arch/arm64/boot/dts/renesas/r8a7795.dtsi | 1 + arch/arm64/boot/dts/renesas/r8a7796.dtsi | 3 +- arch/arm64/boot/dts/xilinx/zynqmp-ep108.dts | 2 +- arch/arm64/boot/dts/xilinx/zynqmp.dtsi | 6 +- arch/arm64/crypto/crc32-arm64.c | 2 + arch/arm64/crypto/sha256-core.S | 2061 ++++++++++++++++++++ arch/arm64/crypto/sha512-core.S | 1085 +++++++++++ arch/arm64/include/asm/acpi.h | 6 +- arch/arm64/include/asm/asm-uaccess.h | 13 + arch/arm64/include/asm/assembler.h | 58 +- arch/arm64/include/asm/barrier.h | 43 +- arch/arm64/include/asm/bug.h | 33 +- arch/arm64/include/asm/cmpxchg.h | 2 +- arch/arm64/include/asm/cpucaps.h | 4 +- arch/arm64/include/asm/cputype.h | 9 + arch/arm64/include/asm/elf.h | 12 +- arch/arm64/include/asm/fixmap.h | 6 + arch/arm64/include/asm/futex.h | 15 +- arch/arm64/include/asm/kvm_arm.h | 3 +- arch/arm64/include/asm/kvm_emulate.h | 6 + arch/arm64/include/asm/kvm_host.h | 8 + arch/arm64/include/asm/kvm_mmu.h | 41 +- arch/arm64/include/asm/kvm_psci.h | 27 - arch/arm64/include/asm/memory.h | 21 +- arch/arm64/include/asm/mmu.h | 50 + arch/arm64/include/asm/mmu_context.h | 7 + arch/arm64/include/asm/pgtable-hwdef.h | 1 + arch/arm64/include/asm/pgtable-prot.h | 35 +- arch/arm64/include/asm/pgtable.h | 30 +- arch/arm64/include/asm/proc-fns.h | 6 - arch/arm64/include/asm/processor.h | 24 + arch/arm64/include/asm/sysreg.h | 7 + arch/arm64/include/asm/tlbflush.h | 16 +- arch/arm64/include/asm/uaccess.h | 158 +- arch/arm64/include/uapi/asm/kvm.h | 6 + arch/arm64/kernel/Makefile | 4 + arch/arm64/kernel/arm64ksyms.c | 8 +- arch/arm64/kernel/armv8_deprecated.c | 3 +- arch/arm64/kernel/asm-offsets.c | 11 +- arch/arm64/kernel/bpi.S | 75 + arch/arm64/kernel/cpu-reset.S | 2 +- arch/arm64/kernel/cpu_errata.c | 189 +- arch/arm64/kernel/cpufeature.c | 145 +- arch/arm64/kernel/entry.S | 219 ++- arch/arm64/kernel/fpsimd.c | 2 + arch/arm64/kernel/head.S | 3 +- arch/arm64/kernel/hw_breakpoint.c | 3 +- arch/arm64/kernel/kaslr.c | 10 +- arch/arm64/kernel/pci.c | 30 +- arch/arm64/kernel/perf_event.c | 23 +- arch/arm64/kernel/process.c | 21 +- arch/arm64/kernel/sleep.S | 2 +- arch/arm64/kernel/smccc-call.S | 23 +- arch/arm64/kernel/smp.c | 2 +- arch/arm64/kernel/traps.c | 8 +- arch/arm64/kernel/vdso.c | 5 +- arch/arm64/kernel/vdso/gettimeofday.S | 1 - arch/arm64/kernel/vmlinux.lds.S | 22 +- arch/arm64/kvm/guest.c | 14 +- arch/arm64/kvm/handle_exit.c | 39 +- arch/arm64/kvm/hyp-init.S | 11 +- arch/arm64/kvm/hyp/Makefile | 2 + arch/arm64/kvm/hyp/hyp-entry.S | 20 +- arch/arm64/kvm/hyp/switch.c | 6 +- arch/arm64/kvm/hyp/tlb.c | 64 +- arch/arm64/kvm/inject_fault.c | 16 +- arch/arm64/kvm/sys_regs.c | 8 +- arch/arm64/lib/clear_user.S | 6 +- arch/arm64/lib/copy_in_user.S | 4 +- arch/arm64/mm/context.c | 37 +- arch/arm64/mm/dma-mapping.c | 26 +- arch/arm64/mm/fault.c | 91 +- arch/arm64/mm/init.c | 2 +- arch/arm64/mm/mmap.c | 19 +- arch/arm64/mm/mmu.c | 43 +- arch/arm64/mm/proc.S | 221 ++- arch/arm64/net/bpf_jit_comp.c | 18 +- arch/blackfin/Kconfig | 7 +- arch/blackfin/Kconfig.debug | 1 + arch/c6x/kernel/ptrace.c | 41 - arch/frv/include/asm/atomic.h | 35 +- arch/frv/include/asm/timex.h | 6 + arch/frv/mm/elf-fdpic.c | 2 +- arch/h8300/kernel/ptrace.c | 8 +- arch/ia64/kernel/module.c | 4 +- arch/m68k/kernel/vmlinux-nommu.lds | 2 + arch/m68k/kernel/vmlinux-std.lds | 2 + arch/m68k/kernel/vmlinux-sun3.lds | 2 + arch/m68k/mm/mcfmmu.c | 2 +- arch/metag/include/asm/uaccess.h | 64 +- arch/metag/kernel/ptrace.c | 19 +- arch/metag/lib/usercopy.c | 312 ++- arch/mips/Kconfig | 17 +- arch/mips/ar7/platform.c | 5 + arch/mips/ar7/prom.c | 2 - arch/mips/ath25/board.c | 2 + arch/mips/ath79/clock.c | 7 +- arch/mips/bcm47xx/buttons.c | 10 +- arch/mips/bcm47xx/leds.c | 2 +- arch/mips/boot/Makefile | 10 +- arch/mips/boot/dts/brcm/Makefile | 1 - arch/mips/cavium-octeon/octeon-irq.c | 2 + arch/mips/cavium-octeon/octeon-memcpy.S | 20 +- arch/mips/configs/ip22_defconfig | 4 +- arch/mips/configs/ip27_defconfig | 3 +- arch/mips/configs/lemote2f_defconfig | 2 +- arch/mips/configs/malta_defconfig | 4 +- arch/mips/configs/malta_kvm_defconfig | 4 +- arch/mips/configs/malta_kvm_guest_defconfig | 4 +- arch/mips/configs/maltaup_xpa_defconfig | 4 +- arch/mips/configs/nlm_xlp_defconfig | 2 +- arch/mips/configs/nlm_xlr_defconfig | 2 +- arch/mips/dec/int-handler.S | 34 +- arch/mips/include/asm/asm.h | 10 +- arch/mips/include/asm/asmmacro.h | 8 +- arch/mips/include/asm/branch.h | 5 +- arch/mips/include/asm/checksum.h | 2 + arch/mips/include/asm/irq.h | 27 + arch/mips/include/asm/kprobes.h | 3 +- arch/mips/include/asm/mach-ip27/spaces.h | 6 +- arch/mips/include/asm/mips-cm.h | 11 +- arch/mips/include/asm/pgtable-32.h | 7 +- arch/mips/include/asm/spinlock.h | 8 +- arch/mips/include/asm/stackframe.h | 7 + arch/mips/include/asm/uaccess.h | 11 +- arch/mips/kernel/asm-offsets.c | 2 + arch/mips/kernel/branch.c | 75 +- arch/mips/kernel/cevt-r4k.c | 2 +- arch/mips/kernel/cps-vec.S | 2 +- arch/mips/kernel/cpu-probe.c | 2 +- arch/mips/kernel/elf.c | 2 +- arch/mips/kernel/entry.S | 3 + arch/mips/kernel/genex.S | 89 +- arch/mips/kernel/head.S | 2 +- arch/mips/kernel/irq.c | 11 + arch/mips/kernel/kgdb.c | 48 +- arch/mips/kernel/mips-r2-to-r6-emul.c | 28 +- arch/mips/kernel/pm-cps.c | 9 +- arch/mips/kernel/proc.c | 2 +- arch/mips/kernel/process.c | 238 ++- arch/mips/kernel/ptrace.c | 165 +- arch/mips/kernel/scall32-o32.S | 2 +- arch/mips/kernel/scall64-64.S | 2 +- arch/mips/kernel/scall64-n32.S | 2 +- arch/mips/kernel/scall64-o32.S | 2 +- arch/mips/kernel/setup.c | 78 +- arch/mips/kernel/smp-bmips.c | 12 +- arch/mips/kernel/smp.c | 29 +- arch/mips/kernel/syscall.c | 15 +- arch/mips/kernel/traps.c | 82 +- arch/mips/kernel/vmlinux.lds.S | 2 +- arch/mips/lantiq/xway/sysctrl.c | 14 +- arch/mips/lib/Makefile | 3 +- arch/mips/lib/libgcc.h | 17 + arch/mips/lib/memset.S | 11 +- arch/mips/lib/multi3.c | 54 + arch/mips/math-emu/cp1emu.c | 68 +- arch/mips/math-emu/dp_fmax.c | 84 +- arch/mips/math-emu/dp_fmin.c | 86 +- arch/mips/math-emu/dp_maddf.c | 245 ++- arch/mips/math-emu/ieee754int.h | 4 + arch/mips/math-emu/ieee754sp.h | 4 + arch/mips/math-emu/sp_fmax.c | 84 +- arch/mips/math-emu/sp_fmin.c | 86 +- arch/mips/math-emu/sp_maddf.c | 226 +-- arch/mips/mm/c-r4k.c | 2 + arch/mips/mm/mmap.c | 2 +- arch/mips/mm/pgtable-32.c | 6 +- arch/mips/mm/sc-ip22.c | 54 +- arch/mips/mm/tlbex.c | 25 +- arch/mips/mm/uasm-micromips.c | 2 +- arch/mips/net/bpf_jit.c | 16 +- arch/mips/net/bpf_jit_asm.S | 23 +- arch/mips/netlogic/common/irq.c | 4 +- arch/mips/pci/pci-mt7620.c | 2 +- arch/mips/pic32/pic32mzda/Makefile | 5 +- arch/mips/ralink/mt7620.c | 22 +- arch/mips/ralink/prom.c | 9 +- arch/mips/ralink/reset.c | 7 - arch/mips/ralink/rt288x.c | 10 - arch/mips/ralink/rt305x.c | 11 - arch/mips/ralink/rt3883.c | 16 +- arch/mips/ralink/timer.c | 14 - arch/mips/sgi-ip22/Platform | 2 +- arch/mn10300/include/asm/switch_to.h | 2 +- arch/mn10300/mm/misalignment.c | 2 +- arch/nios2/kernel/prom.c | 7 + arch/nios2/kernel/setup.c | 3 + arch/openrisc/include/asm/uaccess.h | 2 +- arch/openrisc/kernel/traps.c | 10 +- arch/openrisc/kernel/vmlinux.lds.S | 2 + arch/parisc/include/asm/cacheflush.h | 24 +- arch/parisc/include/asm/dma-mapping.h | 11 +- arch/parisc/include/asm/ldcw.h | 2 + arch/parisc/include/asm/mmu_context.h | 15 +- arch/parisc/include/asm/uaccess.h | 139 +- arch/parisc/kernel/cache.c | 77 +- arch/parisc/kernel/drivers.c | 4 + arch/parisc/kernel/entry.S | 13 +- arch/parisc/kernel/pacache.S | 31 +- arch/parisc/kernel/parisc_ksyms.c | 10 - arch/parisc/kernel/perf.c | 94 +- arch/parisc/kernel/process.c | 45 + arch/parisc/kernel/sys_parisc.c | 15 +- arch/parisc/kernel/syscall.S | 12 +- arch/parisc/kernel/syscall_table.S | 2 +- arch/parisc/lib/Makefile | 2 +- arch/parisc/lib/fixup.S | 98 - arch/parisc/lib/lusercopy.S | 319 +++ arch/parisc/lib/memcpy.c | 461 +---- arch/parisc/mm/fault.c | 19 +- arch/powerpc/Kconfig | 10 +- arch/powerpc/Makefile | 11 +- arch/powerpc/boot/dts/fsl/kmcoge4.dts | 4 + arch/powerpc/boot/zImage.lds.S | 1 + arch/powerpc/crypto/crc32c-vpmsum_glue.c | 6 +- arch/powerpc/include/asm/atomic.h | 4 +- arch/powerpc/include/asm/barrier.h | 3 +- arch/powerpc/include/asm/book3s/64/hash.h | 4 + arch/powerpc/include/asm/checksum.h | 19 +- arch/powerpc/include/asm/code-patching.h | 1 + arch/powerpc/include/asm/cputable.h | 3 +- arch/powerpc/include/asm/elf.h | 13 +- arch/powerpc/include/asm/exception-64e.h | 6 + arch/powerpc/include/asm/exception-64s.h | 55 +- arch/powerpc/include/asm/feature-fixups.h | 15 + arch/powerpc/include/asm/hvcall.h | 18 + arch/powerpc/include/asm/mmu.h | 1 + arch/powerpc/include/asm/mmu_context.h | 57 +- arch/powerpc/include/asm/module.h | 4 + arch/powerpc/include/asm/opal.h | 3 + arch/powerpc/include/asm/paca.h | 9 + arch/powerpc/include/asm/page.h | 12 + arch/powerpc/include/asm/pgtable-be-types.h | 1 + arch/powerpc/include/asm/pgtable-types.h | 1 + arch/powerpc/include/asm/plpar_wrappers.h | 14 + arch/powerpc/include/asm/reg.h | 4 +- arch/powerpc/include/asm/setup.h | 13 + arch/powerpc/include/asm/synch.h | 4 - arch/powerpc/kernel/Makefile | 2 +- arch/powerpc/kernel/align.c | 146 +- arch/powerpc/kernel/asm-offsets.c | 3 + arch/powerpc/kernel/cpu_setup_power.S | 6 + arch/powerpc/kernel/eeh.c | 10 +- arch/powerpc/kernel/eeh_driver.c | 80 +- arch/powerpc/kernel/eeh_pe.c | 3 +- arch/powerpc/kernel/entry_64.S | 70 +- arch/powerpc/kernel/exceptions-64e.S | 12 + arch/powerpc/kernel/exceptions-64s.S | 164 +- arch/powerpc/kernel/hw_breakpoint.c | 4 +- arch/powerpc/kernel/idle_book3s.S | 27 +- arch/powerpc/kernel/irq.c | 23 +- arch/powerpc/kernel/kprobes.c | 11 + arch/powerpc/kernel/mce.c | 2 + arch/powerpc/kernel/misc_64.S | 4 +- arch/powerpc/kernel/module_64.c | 12 +- arch/powerpc/kernel/nvram_64.c | 1 + arch/powerpc/kernel/process.c | 27 +- arch/powerpc/kernel/ptrace.c | 13 +- arch/powerpc/kernel/setup-common.c | 2 +- arch/powerpc/kernel/setup_64.c | 137 ++ arch/powerpc/kernel/signal.c | 2 +- arch/powerpc/kernel/signal_64.c | 13 +- arch/powerpc/kernel/time.c | 15 +- arch/powerpc/kernel/traps.c | 4 +- arch/powerpc/kernel/vmlinux.lds.S | 9 + arch/powerpc/kvm/book3s_64_mmu_host.c | 5 +- arch/powerpc/kvm/book3s_64_vio.c | 57 +- arch/powerpc/kvm/book3s_hv.c | 45 + arch/powerpc/kvm/book3s_hv_rm_xics.c | 5 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 48 +- arch/powerpc/kvm/book3s_pr.c | 6 +- arch/powerpc/kvm/book3s_pr_papr.c | 34 +- arch/powerpc/kvm/book3s_rmhandlers.S | 7 +- arch/powerpc/kvm/book3s_segment.S | 4 +- arch/powerpc/kvm/powerpc.c | 3 +- arch/powerpc/lib/code-patching.c | 5 + arch/powerpc/lib/feature-fixups.c | 44 +- arch/powerpc/lib/sstep.c | 39 +- arch/powerpc/mm/fault.c | 2 +- arch/powerpc/mm/hash_native_64.c | 7 +- arch/powerpc/mm/hash_utils_64.c | 4 +- arch/powerpc/mm/hugetlbpage-radix.c | 2 +- arch/powerpc/mm/hugetlbpage.c | 18 + arch/powerpc/mm/init_64.c | 36 +- arch/powerpc/mm/mmap.c | 4 +- arch/powerpc/mm/mmu_context_book3s64.c | 18 +- arch/powerpc/mm/mmu_context_iommu.c | 66 +- arch/powerpc/mm/pgtable-book3s64.c | 18 + arch/powerpc/mm/pgtable-radix.c | 4 + arch/powerpc/mm/slice.c | 2 +- arch/powerpc/mm/tlb_nohash.c | 2 +- arch/powerpc/net/bpf_jit_comp64.c | 1 + arch/powerpc/perf/core-book3s.c | 12 +- arch/powerpc/perf/hv-24x7.c | 2 +- arch/powerpc/perf/isa207-common.h | 4 + arch/powerpc/perf/perf_regs.c | 3 +- arch/powerpc/perf/power9-pmu.c | 2 +- arch/powerpc/platforms/cell/spu_base.c | 4 +- arch/powerpc/platforms/cell/spufs/coredump.c | 2 + arch/powerpc/platforms/powernv/opal-async.c | 6 +- arch/powerpc/platforms/powernv/opal-nvram.c | 11 +- arch/powerpc/platforms/powernv/opal-rtc.c | 8 +- arch/powerpc/platforms/powernv/opal-wrappers.S | 2 +- arch/powerpc/platforms/powernv/pci-ioda.c | 3 + arch/powerpc/platforms/powernv/setup.c | 52 +- arch/powerpc/platforms/pseries/dlpar.c | 1 - arch/powerpc/platforms/pseries/hotplug-memory.c | 2 + arch/powerpc/platforms/pseries/lpar.c | 11 +- arch/powerpc/platforms/pseries/mobility.c | 4 +- arch/powerpc/platforms/pseries/reconfig.c | 1 - arch/powerpc/platforms/pseries/setup.c | 35 + arch/powerpc/sysdev/axonram.c | 5 +- arch/powerpc/sysdev/ipic.c | 4 +- arch/powerpc/sysdev/mpc8xx_pic.c | 2 +- arch/powerpc/sysdev/simple_gpio.c | 3 +- arch/powerpc/sysdev/xics/icp-opal.c | 16 +- arch/powerpc/sysdev/xics/xics-common.c | 17 +- arch/s390/Kconfig | 50 +- arch/s390/Makefile | 10 + arch/s390/boot/compressed/misc.c | 35 +- arch/s390/crypto/aes_s390.c | 7 + arch/s390/crypto/crc32-vx.c | 3 + arch/s390/crypto/prng.c | 40 +- arch/s390/hypfs/inode.c | 2 +- arch/s390/include/asm/alternative.h | 149 ++ arch/s390/include/asm/asm-prototypes.h | 8 + arch/s390/include/asm/barrier.h | 24 + arch/s390/include/asm/ctl_reg.h | 4 +- arch/s390/include/asm/elf.h | 15 +- arch/s390/include/asm/facility.h | 20 +- arch/s390/include/asm/kvm_host.h | 3 +- arch/s390/include/asm/lowcore.h | 7 +- arch/s390/include/asm/mmu.h | 2 + arch/s390/include/asm/mmu_context.h | 8 +- arch/s390/include/asm/nospec-branch.h | 17 + arch/s390/include/asm/pci_insn.h | 2 +- arch/s390/include/asm/pgtable.h | 8 +- arch/s390/include/asm/processor.h | 7 +- arch/s390/include/asm/runtime_instr.h | 4 +- arch/s390/include/asm/switch_to.h | 21 +- arch/s390/include/asm/syscall.h | 6 + arch/s390/include/asm/thread_info.h | 4 + arch/s390/include/asm/tlbflush.h | 30 +- arch/s390/include/asm/uaccess.h | 2 +- arch/s390/include/uapi/asm/kvm.h | 5 +- arch/s390/kernel/Makefile | 6 +- arch/s390/kernel/alternative.c | 112 ++ arch/s390/kernel/compat_linux.c | 9 +- arch/s390/kernel/crash_dump.c | 21 +- arch/s390/kernel/dis.c | 5 +- arch/s390/kernel/early.c | 21 +- arch/s390/kernel/entry.S | 290 ++- arch/s390/kernel/ipl.c | 2 + arch/s390/kernel/module.c | 65 +- arch/s390/kernel/nospec-branch.c | 169 ++ arch/s390/kernel/process.c | 4 +- arch/s390/kernel/processor.c | 18 + arch/s390/kernel/runtime_instr.c | 30 +- arch/s390/kernel/setup.c | 22 +- arch/s390/kernel/smp.c | 7 +- arch/s390/kernel/syscalls.S | 6 +- arch/s390/kernel/topology.c | 11 +- arch/s390/kernel/uprobes.c | 9 + arch/s390/kernel/vmlinux.lds.S | 45 +- arch/s390/kvm/gaccess.c | 15 +- arch/s390/kvm/kvm-s390.c | 17 +- arch/s390/kvm/priv.c | 11 +- arch/s390/kvm/sthyi.c | 7 +- arch/s390/kvm/vsie.c | 30 + arch/s390/mm/gmap.c | 39 +- arch/s390/mm/gup.c | 7 +- arch/s390/mm/mmap.c | 4 +- arch/s390/mm/pgtable.c | 19 +- arch/s390/net/bpf_jit_comp.c | 3 +- arch/s390/pci/pci.c | 5 +- arch/s390/pci/pci_insn.c | 6 +- arch/sh/boards/mach-se/770x/setup.c | 10 +- arch/sh/kernel/cpu/sh3/setup-sh770x.c | 1 - arch/sh/kernel/traps_32.c | 3 +- arch/sh/mm/mmap.c | 4 +- arch/sparc/Kconfig | 7 +- arch/sparc/crypto/crc32c_glue.c | 1 + arch/sparc/include/asm/mmu_64.h | 2 +- arch/sparc/include/asm/mmu_context_64.h | 46 +- arch/sparc/include/asm/pgtable_32.h | 4 +- arch/sparc/include/asm/pgtable_64.h | 15 +- arch/sparc/include/asm/pil.h | 1 - arch/sparc/include/asm/setup.h | 7 +- arch/sparc/include/asm/trap_block.h | 1 + arch/sparc/include/asm/vio.h | 1 + arch/sparc/kernel/ftrace.c | 13 +- arch/sparc/kernel/head_64.S | 6 + arch/sparc/kernel/irq_64.c | 19 +- arch/sparc/kernel/kernel.h | 1 - arch/sparc/kernel/ldc.c | 7 +- arch/sparc/kernel/pci_sun4v.c | 2 - arch/sparc/kernel/ptrace_64.c | 2 +- arch/sparc/kernel/smp_64.c | 222 ++- arch/sparc/kernel/sun4v_ivec.S | 15 + arch/sparc/kernel/sys_sparc_64.c | 4 +- arch/sparc/kernel/traps_64.c | 78 +- arch/sparc/kernel/tsb.S | 23 +- arch/sparc/kernel/ttable_64.S | 2 +- arch/sparc/kernel/vio.c | 68 +- arch/sparc/lib/GENbzero.S | 2 +- arch/sparc/lib/Makefile | 1 + arch/sparc/lib/NGbzero.S | 2 +- arch/sparc/lib/U3memcpy.S | 4 +- arch/sparc/lib/multi3.S | 35 + arch/sparc/mm/hugetlbpage.c | 2 +- arch/sparc/mm/init_32.c | 2 +- arch/sparc/mm/init_64.c | 97 +- arch/sparc/mm/srmmu.c | 1 + arch/sparc/mm/tsb.c | 7 +- arch/sparc/mm/ultra.S | 5 - arch/sparc/power/hibernate.c | 3 +- arch/tile/mm/hugetlbpage.c | 2 +- arch/um/Makefile | 2 +- arch/um/kernel/initrd.c | 4 +- arch/um/kernel/um_arch.c | 6 + arch/um/os-Linux/file.c | 1 + arch/um/os-Linux/signal.c | 3 +- arch/x86/Kconfig | 22 +- arch/x86/Kconfig.debug | 1 + arch/x86/Makefile | 20 + arch/x86/boot/Makefile | 5 +- arch/x86/boot/boot.h | 2 +- arch/x86/boot/compressed/Makefile | 2 +- arch/x86/boot/compressed/error.h | 4 +- arch/x86/boot/compressed/kaslr.c | 14 +- arch/x86/boot/compressed/misc.c | 8 +- arch/x86/boot/compressed/misc.h | 3 +- arch/x86/boot/string.c | 1 + arch/x86/boot/string.h | 9 + arch/x86/crypto/aesni-intel_asm.S | 5 +- arch/x86/crypto/aesni-intel_glue.c | 2 +- arch/x86/crypto/camellia-aesni-avx-asm_64.S | 3 +- arch/x86/crypto/camellia-aesni-avx2-asm_64.S | 3 +- arch/x86/crypto/cast5_avx_glue.c | 3 +- arch/x86/crypto/crc32-pclmul_glue.c | 1 + arch/x86/crypto/crc32c-intel_glue.c | 1 + arch/x86/crypto/crc32c-pcl-intel-asm_64.S | 3 +- arch/x86/crypto/poly1305_glue.c | 1 - arch/x86/crypto/salsa20_glue.c | 7 - arch/x86/crypto/sha1-mb/sha1_mb_mgr_flush_avx2.S | 12 +- arch/x86/crypto/sha1_avx2_x86_64_asm.S | 67 +- .../crypto/sha256-mb/sha256_mb_mgr_flush_avx2.S | 12 +- .../x86/crypto/sha512-mb/sha512_mb_mgr_init_avx2.c | 10 +- arch/x86/crypto/twofish-x86_64-asm_64-3way.S | 112 +- arch/x86/entry/common.c | 9 +- arch/x86/entry/entry_32.S | 21 +- arch/x86/entry/entry_64.S | 304 +-- arch/x86/entry/entry_64_compat.S | 38 +- arch/x86/entry/syscall_64.c | 7 +- arch/x86/entry/vdso/vdso32-setup.c | 11 +- arch/x86/entry/vsyscall/vsyscall_64.c | 12 +- arch/x86/events/amd/power.c | 2 +- arch/x86/events/core.c | 12 +- arch/x86/events/intel/bts.c | 44 +- arch/x86/events/intel/core.c | 17 +- arch/x86/events/intel/cstate.c | 2 + arch/x86/events/intel/ds.c | 63 +- arch/x86/events/intel/lbr.c | 5 +- arch/x86/events/intel/p6.c | 2 +- arch/x86/events/intel/pt.c | 6 + arch/x86/events/intel/rapl.c | 61 +- arch/x86/events/intel/uncore.c | 1 + arch/x86/events/intel/uncore_snbep.c | 35 +- arch/x86/include/asm/acpi.h | 2 +- arch/x86/include/asm/alternative-asm.h | 4 +- arch/x86/include/asm/alternative.h | 10 +- arch/x86/include/asm/apm.h | 6 + arch/x86/include/asm/asm-prototypes.h | 24 + arch/x86/include/asm/asm.h | 18 +- arch/x86/include/asm/barrier.h | 28 + arch/x86/include/asm/cmdline.h | 2 + arch/x86/include/asm/cpufeature.h | 9 +- arch/x86/include/asm/cpufeatures.h | 31 +- arch/x86/include/asm/desc.h | 2 +- arch/x86/include/asm/disabled-features.h | 7 +- arch/x86/include/asm/efi.h | 17 +- arch/x86/include/asm/elf.h | 20 +- arch/x86/include/asm/hardirq.h | 2 +- arch/x86/include/asm/hw_irq.h | 2 +- arch/x86/include/asm/intel-family.h | 7 +- arch/x86/include/asm/io.h | 4 +- arch/x86/include/asm/kaiser.h | 141 ++ arch/x86/include/asm/kvm_emulate.h | 5 +- arch/x86/include/asm/kvm_host.h | 6 +- arch/x86/include/asm/kvm_page_track.h | 1 + arch/x86/include/asm/mce.h | 1 + arch/x86/include/asm/microcode_amd.h | 1 - arch/x86/include/asm/mmu.h | 21 +- arch/x86/include/asm/mmu_context.h | 11 +- arch/x86/include/asm/msr-index.h | 17 + arch/x86/include/asm/msr.h | 3 +- arch/x86/include/asm/nospec-branch.h | 318 +++ arch/x86/include/asm/paravirt.h | 16 +- arch/x86/include/asm/paravirt_types.h | 5 +- arch/x86/include/asm/pat.h | 1 + arch/x86/include/asm/pgtable.h | 34 +- arch/x86/include/asm/pgtable_64.h | 25 +- arch/x86/include/asm/pgtable_types.h | 29 +- arch/x86/include/asm/pkeys.h | 15 +- arch/x86/include/asm/pmem.h | 42 +- arch/x86/include/asm/processor.h | 14 +- arch/x86/include/asm/reboot.h | 1 + arch/x86/include/asm/required-features.h | 3 +- arch/x86/include/asm/syscall.h | 6 +- arch/x86/include/asm/syscalls.h | 2 +- arch/x86/include/asm/thread_info.h | 14 +- arch/x86/include/asm/tlbflush.h | 173 +- arch/x86/include/asm/traps.h | 1 + arch/x86/include/asm/uaccess.h | 34 +- arch/x86/include/asm/uaccess_32.h | 12 +- arch/x86/include/asm/uaccess_64.h | 12 +- arch/x86/include/asm/vmx.h | 6 +- arch/x86/include/asm/vsyscall.h | 3 + arch/x86/include/asm/xen/events.h | 11 + arch/x86/include/asm/xen/hypercall.h | 8 +- arch/x86/include/uapi/asm/msgbuf.h | 31 + arch/x86/include/uapi/asm/processor-flags.h | 3 +- arch/x86/include/uapi/asm/shmbuf.h | 42 + arch/x86/kernel/acpi/boot.c | 70 +- arch/x86/kernel/alternative.c | 21 +- arch/x86/kernel/amd_nb.c | 2 +- arch/x86/kernel/apic/apic.c | 34 +- arch/x86/kernel/apic/io_apic.c | 4 +- arch/x86/kernel/apic/vector.c | 21 +- arch/x86/kernel/asm-offsets_32.c | 2 +- arch/x86/kernel/cpu/Makefile | 4 +- arch/x86/kernel/cpu/amd.c | 54 +- arch/x86/kernel/cpu/bugs.c | 307 ++- arch/x86/kernel/cpu/bugs_64.c | 33 - arch/x86/kernel/cpu/centaur.c | 4 +- arch/x86/kernel/cpu/common.c | 175 +- arch/x86/kernel/cpu/cyrix.c | 2 +- arch/x86/kernel/cpu/intel.c | 85 +- arch/x86/kernel/cpu/intel_cacheinfo.c | 2 + arch/x86/kernel/cpu/mcheck/mce-genpool.c | 2 +- arch/x86/kernel/cpu/mcheck/mce-inject.c | 5 +- arch/x86/kernel/cpu/mcheck/mce-internal.h | 2 +- arch/x86/kernel/cpu/mcheck/mce-severity.c | 7 +- arch/x86/kernel/cpu/mcheck/mce.c | 102 +- arch/x86/kernel/cpu/mcheck/mce_amd.c | 9 +- arch/x86/kernel/cpu/mcheck/therm_throt.c | 6 +- arch/x86/kernel/cpu/mcheck/threshold.c | 4 +- arch/x86/kernel/cpu/microcode/amd.c | 21 +- arch/x86/kernel/cpu/microcode/core.c | 47 +- arch/x86/kernel/cpu/microcode/intel.c | 48 +- arch/x86/kernel/cpu/mshyperv.c | 24 + arch/x86/kernel/cpu/mtrr/generic.c | 2 +- arch/x86/kernel/cpu/mtrr/main.c | 4 +- arch/x86/kernel/cpu/proc.c | 8 +- arch/x86/kernel/cpu/scattered.c | 3 - arch/x86/kernel/espfix_64.c | 10 + arch/x86/kernel/fpu/init.c | 1 + arch/x86/kernel/fpu/regset.c | 9 +- arch/x86/kernel/fpu/signal.c | 4 + arch/x86/kernel/fpu/xstate.c | 1 + arch/x86/kernel/ftrace.c | 12 + arch/x86/kernel/head64.c | 1 + arch/x86/kernel/head_32.S | 4 +- arch/x86/kernel/head_64.S | 37 +- arch/x86/kernel/hpet.c | 2 +- arch/x86/kernel/i8259.c | 1 + arch/x86/kernel/irq.c | 4 +- arch/x86/kernel/irq_32.c | 15 +- arch/x86/kernel/irq_work.c | 5 +- arch/x86/kernel/irqinit.c | 2 +- arch/x86/kernel/kprobes/common.h | 2 +- arch/x86/kernel/kprobes/core.c | 21 +- arch/x86/kernel/kprobes/ftrace.c | 23 +- arch/x86/kernel/kprobes/opt.c | 28 +- arch/x86/kernel/kvm.c | 9 +- arch/x86/kernel/ldt.c | 41 +- arch/x86/kernel/machine_kexec_64.c | 1 + arch/x86/kernel/mcount_64.S | 7 +- arch/x86/kernel/module.c | 14 + arch/x86/kernel/mpparse.c | 2 +- arch/x86/kernel/paravirt_patch_64.c | 2 - arch/x86/kernel/pci-calgary_64.c | 2 +- arch/x86/kernel/process.c | 2 +- arch/x86/kernel/process_64.c | 240 ++- arch/x86/kernel/ptrace.c | 2 +- arch/x86/kernel/reboot.c | 25 +- arch/x86/kernel/setup.c | 14 + arch/x86/kernel/setup_percpu.c | 21 + arch/x86/kernel/signal.c | 2 +- arch/x86/kernel/signal_compat.c | 4 +- arch/x86/kernel/smp.c | 18 +- arch/x86/kernel/smpboot.c | 22 +- arch/x86/kernel/sys_x86_64.c | 9 +- arch/x86/kernel/tboot.c | 10 + arch/x86/kernel/tracepoint.c | 2 + arch/x86/kernel/traps.c | 26 +- arch/x86/kernel/tsc.c | 16 +- arch/x86/kernel/vm86_32.c | 10 +- arch/x86/kernel/vmlinux.lds.S | 7 + arch/x86/kvm/Kconfig | 3 +- arch/x86/kvm/cpuid.c | 49 +- arch/x86/kvm/cpuid.h | 39 + arch/x86/kvm/emulate.c | 66 +- arch/x86/kvm/ioapic.c | 20 +- arch/x86/kvm/lapic.c | 14 +- arch/x86/kvm/mmu.c | 36 +- arch/x86/kvm/mmu.h | 1 + arch/x86/kvm/page_track.c | 8 + arch/x86/kvm/paging_tmpl.h | 3 +- arch/x86/kvm/pmu_intel.c | 2 +- arch/x86/kvm/svm.c | 183 +- arch/x86/kvm/vmx.c | 1191 ++++++----- arch/x86/kvm/x86.c | 220 ++- arch/x86/lib/Makefile | 1 + arch/x86/lib/checksum_32.S | 7 +- arch/x86/lib/cmdline.c | 105 + arch/x86/lib/copy_user_64.S | 7 +- arch/x86/lib/cpu.c | 2 +- arch/x86/lib/csum-copy_64.S | 12 +- arch/x86/lib/delay.c | 7 + arch/x86/lib/getuser.S | 10 + arch/x86/lib/kaslr.c | 3 +- arch/x86/lib/memcpy_64.S | 2 +- arch/x86/lib/retpoline.S | 48 + arch/x86/lib/usercopy_32.c | 8 +- arch/x86/lib/x86-opcode-map.txt | 2 +- arch/x86/math-emu/Makefile | 4 +- arch/x86/math-emu/reg_compare.c | 16 +- arch/x86/mm/Makefile | 4 +- arch/x86/mm/fault.c | 65 +- arch/x86/mm/gup.c | 8 +- arch/x86/mm/hugetlbpage.c | 2 +- arch/x86/mm/init.c | 47 +- arch/x86/mm/init_64.c | 20 +- arch/x86/mm/ioremap.c | 4 +- arch/x86/mm/kaiser.c | 483 +++++ arch/x86/mm/kasan_init_64.c | 1 + arch/x86/mm/kaslr.c | 8 +- arch/x86/mm/kmmio.c | 12 +- arch/x86/mm/mpx.c | 12 +- arch/x86/mm/numa_32.c | 1 + arch/x86/mm/pageattr.c | 63 +- arch/x86/mm/pat.c | 28 +- arch/x86/mm/pgtable.c | 53 +- arch/x86/mm/tlb.c | 147 +- arch/x86/net/bpf_jit_comp.c | 21 +- arch/x86/oprofile/nmi_int.c | 2 +- arch/x86/oprofile/op_model_ppro.c | 4 +- arch/x86/pci/broadcom_bus.c | 2 +- arch/x86/pci/fixup.c | 32 + arch/x86/pci/xen.c | 25 +- arch/x86/platform/efi/efi.c | 6 +- arch/x86/platform/efi/efi_64.c | 2 +- arch/x86/platform/efi/quirks.c | 7 + arch/x86/platform/goldfish/goldfish.c | 14 +- arch/x86/platform/intel-mid/device_libs/Makefile | 2 +- .../intel-mid/device_libs/platform_mrfld_spidev.c | 54 + .../intel-mid/device_libs/platform_mrfld_wdt.c | 2 +- .../intel-mid/device_libs/platform_spidev.c | 50 - arch/x86/platform/intel-mid/intel-mid.c | 2 +- arch/x86/platform/uv/tlb_uv.c | 1 - arch/x86/purgatory/Makefile | 1 + arch/x86/tools/relocs.c | 6 +- arch/x86/um/ldt.c | 7 +- arch/x86/um/ptrace_64.c | 2 +- arch/x86/um/stub_segv.c | 3 +- arch/x86/xen/apic.c | 2 +- arch/x86/xen/enlighten.c | 27 +- arch/x86/xen/mmu.c | 7 +- arch/x86/xen/setup.c | 6 +- arch/x86/xen/smp.c | 51 +- arch/x86/xen/suspend.c | 16 + arch/x86/xen/time.c | 5 + arch/xtensa/include/asm/futex.h | 23 +- arch/xtensa/include/asm/irq.h | 3 +- arch/xtensa/include/asm/page.h | 13 + arch/xtensa/kernel/irq.c | 5 - arch/xtensa/kernel/setup.c | 4 +- arch/xtensa/kernel/syscall.c | 2 +- arch/xtensa/kernel/xtensa_ksyms.c | 2 - arch/xtensa/mm/cache.c | 16 +- arch/xtensa/mm/init.c | 70 +- .../platforms/xtfpga/include/platform/hardware.h | 6 +- arch/xtensa/platforms/xtfpga/setup.c | 10 +- block/badblocks.c | 2 +- block/bio-integrity.c | 3 + block/bio.c | 42 +- block/blk-cgroup.c | 4 +- block/blk-core.c | 47 +- block/blk-integrity.c | 22 +- block/blk-map.c | 4 +- block/blk-mq-pci.c | 8 +- block/blk-mq-sysfs.c | 4 +- block/blk-mq-tag.c | 3 + block/blk-mq.c | 32 +- block/blk-mq.h | 1 + block/blk-throttle.c | 11 + block/blk-timeout.c | 3 - block/cfq-iosched.c | 17 +- block/partition-generic.c | 5 +- block/partitions/efi.c | 17 +- block/partitions/msdos.c | 4 + block/scsi_ioctl.c | 3 + crypto/Kconfig | 2 +- crypto/Makefile | 2 + crypto/af_alg.c | 10 +- crypto/ahash.c | 119 +- crypto/algapi.c | 12 + crypto/algif_aead.c | 169 +- crypto/algif_hash.c | 54 +- crypto/algif_skcipher.c | 13 +- crypto/asymmetric_keys/pkcs7_parser.c | 3 + crypto/asymmetric_keys/pkcs7_verify.c | 4 +- crypto/asymmetric_keys/public_key.c | 6 +- crypto/asymmetric_keys/restrict.c | 7 +- crypto/asymmetric_keys/x509_cert_parser.c | 3 + crypto/asymmetric_keys/x509_public_key.c | 2 +- crypto/async_tx/async_pq.c | 5 +- crypto/authencesn.c | 5 + crypto/ccm.c | 4 +- crypto/chacha20poly1305.c | 6 +- crypto/crc32_generic.c | 1 + crypto/crc32c_generic.c | 1 + crypto/cryptd.c | 10 +- crypto/dh.c | 34 +- crypto/dh_helper.c | 16 + crypto/drbg.c | 12 +- crypto/gcm.c | 6 +- crypto/hmac.c | 6 +- crypto/mcryptd.c | 33 +- crypto/pcrypt.c | 19 +- crypto/poly1305_generic.c | 17 +- crypto/rsa-pkcs1pad.c | 2 +- crypto/rsa_helper.c | 2 +- crypto/salsa20_generic.c | 7 - crypto/sha3_generic.c | 5 +- crypto/shash.c | 38 +- crypto/skcipher.c | 40 +- crypto/tcrypt.c | 12 +- crypto/testmgr.h | 2 +- drivers/Makefile | 2 + drivers/acpi/Makefile | 1 - drivers/acpi/acpi_platform.c | 8 +- drivers/acpi/acpi_processor.c | 5 - drivers/acpi/acpi_video.c | 37 +- drivers/acpi/acpi_watchdog.c | 4 +- drivers/acpi/acpica/evxfevnt.c | 18 + drivers/acpi/acpica/nsutils.c | 23 +- drivers/acpi/acpica/psobject.c | 14 + drivers/acpi/apei/erst.c | 2 +- drivers/acpi/apei/ghes.c | 1 + drivers/acpi/blacklist.c | 28 + drivers/acpi/bus.c | 1 - drivers/acpi/device_sysfs.c | 4 + drivers/acpi/ec.c | 114 +- drivers/acpi/ec_sys.c | 2 +- drivers/acpi/glue.c | 10 +- drivers/acpi/internal.h | 8 +- drivers/acpi/ioapic.c | 6 + drivers/acpi/nfit/core.c | 69 +- drivers/acpi/nfit/mce.c | 2 +- drivers/acpi/numa.c | 10 +- drivers/acpi/pmic/intel_pmic_xpower.c | 50 +- drivers/acpi/power.c | 11 + commit 04cd74a759bf381f8f2c12e9ddb5fe8d0651c483 Author: Greg Kroah-Hartman <gre...@linuxfoundation.org> Date: Wed May 9 09:50:24 2018 +0200 Linux 4.9.99 commit bce133ab7d4c4799949478fc7897cc335f3042e9 Author: Heiko Carstens <heiko.carst...@de.ibm.com> Date: Mon Mar 20 14:29:50 2017 +0100 s390/facilites: use stfle_fac_list array size for MAX_FACILITY_BIT commit 6f5165e864d240d15675cc2fb5a369d57e1f60d0 upstream. Use the actual size of the facility list array within the lowcore structure for the MAX_FACILITY_BIT define instead of a comment which states what this is good for. This makes it a bit harder to break things. Signed-off-by: Heiko Carstens <heiko.carst...@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidef...@de.ibm.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit a801ff4d8e4e84f8922694ece01193b17fe053bd Author: João Paulo Rechi Vita <jprv...@gmail.com> Date: Thu Apr 19 07:04:34 2018 -0700 platform/x86: asus-wireless: Fix NULL pointer dereference commit 9f0a93de9139c2b0a59299cd36b61564522458f8 upstream. When the module is removed the led workqueue is destroyed in the remove callback, before the led device is unregistered from the led subsystem. This leads to a NULL pointer derefence when the led device is unregistered automatically later as part of the module removal cleanup. Bellow is the backtrace showing the problem. BUG: unable to handle kernel NULL pointer dereference at (null) IP: __queue_work+0x8c/0x410 PGD 0 P4D 0 Oops: 0000 [#1] SMP NOPTI Modules linked in: ccm edac_mce_amd kvm_amd kvm irqbypass crct10dif_pclmul crc32_pclmul ghash_clmulni_intel pcbc aesni_intel aes_x86_64 joydev crypto_simd asus_nb_wmi glue_helper uvcvideo snd_hda_codec_conexant snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel asus_wmi snd_hda_codec cryptd snd_hda_core sparse_keymap videobuf2_vmalloc arc4 videobuf2_memops snd_hwdep input_leds videobuf2_v4l2 ath9k psmouse videobuf2_core videodev ath9k_common snd_pcm ath9k_hw media fam15h_power ath k10temp snd_timer mac80211 i2c_piix4 r8169 mii mac_hid cfg80211 asus_wireless(-) snd soundcore wmi shpchp 8250_dw ip_tables x_tables amdkfd amd_iommu_v2 amdgpu radeon chash i2c_algo_bit drm_kms_helper syscopyarea serio_raw sysfillrect sysimgblt fb_sys_fops ahci ttm libahci drm video CPU: 3 PID: 2177 Comm: rmmod Not tainted 4.15.0-5-generic #6+dev94.b4287e5bem1-Endless Hardware name: ASUSTeK COMPUTER INC. X555DG/X555DG, BIOS 5.011 05/05/2015 RIP: 0010:__queue_work+0x8c/0x410 RSP: 0018:ffffbe8cc249fcd8 EFLAGS: 00010086 RAX: ffff992ac6810800 RBX: 0000000000000000 RCX: 0000000000000008 RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffff992ac6400e18 RBP: ffffbe8cc249fd18 R08: ffff992ac6400db0 R09: 0000000000000000 R10: 0000000000000040 R11: ffff992ac6400dd8 R12: 0000000000002000 R13: ffff992abd762e00 R14: ffff992abd763e38 R15: 000000000001ebe0 FS: 00007f318203e700(0000) GS:ffff992aced80000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000000 CR3: 00000001c720e000 CR4: 00000000001406e0 Call Trace: queue_work_on+0x38/0x40 led_state_set+0x2c/0x40 [asus_wireless] led_set_brightness_nopm+0x14/0x40 led_set_brightness+0x37/0x60 led_trigger_set+0xfc/0x1d0 led_classdev_unregister+0x32/0xd0 devm_led_classdev_release+0x11/0x20 release_nodes+0x109/0x1f0 devres_release_all+0x3c/0x50 device_release_driver_internal+0x16d/0x220 driver_detach+0x3f/0x80 bus_remove_driver+0x55/0xd0 driver_unregister+0x2c/0x40 acpi_bus_unregister_driver+0x15/0x20 asus_wireless_driver_exit+0x10/0xb7c [asus_wireless] SyS_delete_module+0x1da/0x2b0 entry_SYSCALL_64_fastpath+0x24/0x87 RIP: 0033:0x7f3181b65fd7 RSP: 002b:00007ffe74bcbe18 EFLAGS: 00000206 ORIG_RAX: 00000000000000b0 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 00007f3181b65fd7 RDX: 000000000000000a RSI: 0000000000000800 RDI: 0000555ea2559258 RBP: 0000555ea25591f0 R08: 00007ffe74bcad91 R09: 000000000000000a R10: 0000000000000000 R11: 0000000000000206 R12: 0000000000000003 R13: 00007ffe74bcae00 R14: 0000000000000000 R15: 0000555ea25591f0 Code: 01 00 00 02 0f 85 7d 01 00 00 48 63 45 d4 48 c7 c6 00 f4 fa 87 49 8b 9d 08 01 00 00 48 03 1c c6 4c 89 f7 e8 87 fb ff ff 48 85 c0 <48> 8b 3b 0f 84 c5 01 00 00 48 39 f8 0f 84 bc 01 00 00 48 89 c7 RIP: __queue_work+0x8c/0x410 RSP: ffffbe8cc249fcd8 CR2: 0000000000000000 ---[ end trace 7aa4f4a232e9c39c ]--- Unregistering the led device on the remove callback before destroying the workqueue avoids this problem. https://bugzilla.kernel.org/show_bug.cgi?id=196097 Reported-by: Dun Hum <bitter.ta...@gmx.com> Cc: sta...@vger.kernel.org Signed-off-by: João Paulo Rechi Vita <jprv...@endlessm.com> Signed-off-by: Darren Hart (VMware) <dvh...@infradead.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 097100202847a16cefc55675486b14250fbb894b Author: Bin Liu <b-...@ti.com> Date: Mon Apr 30 11:20:54 2018 -0500 usb: musb: trace: fix NULL pointer dereference in musb_g_tx() commit 9aea9b6cc78d2b99b23d84fb2e0bc6e464c6569e upstream. The usb_request pointer could be NULL in musb_g_tx(), where the tracepoint call would trigger the NULL pointer dereference failure when parsing the members of the usb_request pointer. Move the tracepoint call to where the usb_request pointer is already checked to solve the issue. Fixes: fc78003e5345 ("usb: musb: gadget: add usb-request tracepoints") Cc: sta...@vger.kernel.org # v4.8+ Signed-off-by: Bin Liu <b-...@ti.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 9f3ac2e8dfc7f2b3eb6103da6711f2b0e6d1d58b Author: Bin Liu <b-...@ti.com> Date: Mon Apr 30 11:20:53 2018 -0500 usb: musb: host: fix potential NULL pointer dereference commit 2b63f1329df2cd814c1f8353fae4853ace6521d1 upstream. musb_start_urb() doesn't check the pass-in parameter if it is NULL. But in musb_bulk_nak_timeout() the parameter passed to musb_start_urb() is returned from first_qh(), which could be NULL. So wrap the musb_start_urb() call here with a if condition check to avoid the potential NULL pointer dereference. Fixes: f283862f3b5c ("usb: musb: NAK timeout scheme on bulk TX endpoint") Cc: sta...@vger.kernel.org # v3.7+ Signed-off-by: Bin Liu <b-...@ti.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 78456009fddfe7c762497aa1370c7fbf32d03e0f Author: SZ Lin (æä¸æº) <sz....@moxa.com> Date: Thu Apr 26 14:28:31 2018 +0800 USB: serial: option: adding support for ublox R410M commit 4205cb01f6e9ef2ae6daa7be4e8ac1edeb4c9d64 upstream. This patch adds support for ublox R410M PID 0x90b2 USB modem to option driver, this module supports LTE Cat M1 / NB1. Interface layout: 0: QCDM/DIAG 1: ADB 2: AT 3: RMNET Signed-off-by: SZ Lin (æä¸æº) <sz....@moxa.com> Cc: stable <sta...@vger.kernel.org> Signed-off-by: Johan Hovold <jo...@kernel.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 12b49756296bec11b319fd0e973036a4c5481dc5 Author: Johan Hovold <jo...@kernel.org> Date: Wed Mar 7 17:40:48 2018 +0100 USB: serial: option: reimplement interface masking commit c3a65808f04a8426481b63a4fbd9392f009f6330 upstream. Reimplement interface masking using device flags stored directly in the device-id table. This will make it easier to add and maintain device-id entries by using a more compact and readable notation compared to the current implementation (which manages pairs of masks in separate blacklist structs). Two convenience macros are used to flag an interface as either reserved or as not supporting modem-control requests: { USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_ME910_DUAL_MODEM), .driver_info = NCTRL(0) | RSVD(3) }, For now, we limit the highest maskable interface number to seven, which allows for (up to 16) additional device flags to be added later should need arise. Note that this will likely need to be backported to stable in order to make future device-id backports more manageable. Reviewed-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> Signed-off-by: Johan Hovold <jo...@kernel.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 1fac4fc6708edbad9c1a98d69958f828eb96144c Author: Alan Stern <st...@rowland.harvard.edu> Date: Thu May 3 11:04:48 2018 -0400 USB: Accept bulk endpoints with 1024-byte maxpacket commit fb5ee84ea72c5f1b6cabdd1c9d6e8648995ca7c6 upstream. Some non-compliant high-speed USB devices have bulk endpoints with a 1024-byte maxpacket size. Although such endpoints don't work with xHCI host controllers, they do work with EHCI controllers. We used to accept these invalid sizes (with a warning), but we no longer do because of an unintentional change introduced by commit aed9d65ac327 ("USB: validate wMaxPacketValue entries in endpoint descriptors"). This patch restores the old behavior, so that people with these peculiar devices can use them without patching their kernels by hand. Signed-off-by: Alan Stern <st...@rowland.harvard.edu> Suggested-by: Elvinas <elvi...@veikia.lt> Fixes: aed9d65ac327 ("USB: validate wMaxPacketValue entries in endpoint descriptors") CC: <sta...@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit ddb6f5228e6132c706719561cebf4347b930dbb5 Author: Greg Kroah-Hartman <gre...@linuxfoundation.org> Date: Sun Apr 29 17:41:55 2018 +0200 USB: serial: visor: handle potential invalid device configuration commit 4842ed5bfcb9daf6660537d70503c18d38dbdbb8 upstream. If we get an invalid device configuration from a palm 3 type device, we might incorrectly parse things, and we have the potential to crash in "interesting" ways. Fix this up by verifying the size of the configuration passed to us by the device, and only if it is correct, will we handle it. Note that this also fixes an information leak of slab data. Reported-by: Andrey Konovalov <andreyk...@google.com> Reviewed-by: Andrey Konovalov <andreyk...@google.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> [ johan: add comment about the info leak ] Cc: stable <sta...@vger.kernel.org> Signed-off-by: Johan Hovold <jo...@kernel.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit b70f9d27eab5c23e668350927a358621071bc415 Author: Ben Hutchings <ben.hutchi...@codethink.co.uk> Date: Wed Apr 4 22:38:49 2018 +0200 test_firmware: fix setting old custom fw path back on exit, second try commit e538409257d0217a9bc715686100a5328db75a15 upstream. Commit 65c79230576 tried to clear the custom firmware path on exit by writing a single space to the firmware_class.path parameter. This doesn't work because nothing strips this space from the value stored and fw_get_filesystem_firmware() only ignores zero-length paths. Instead, write a null byte. Fixes: 0a8adf58475 ("test: add firmware_class loader test") Fixes: 65c79230576 ("test_firmware: fix setting old custom fw path back on exit") Signed-off-by: Ben Hutchings <ben.hutchi...@codethink.co.uk> Acked-by: Luis R. Rodriguez <mcg...@kernel.org> Cc: stable <sta...@vger.kernel.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit ccd174692f70da88ef5dac8292ccd3271b08643a Author: Sean Paul <seanp...@chromium.org> Date: Fri Apr 20 14:59:59 2018 -0400 drm/bridge: vga-dac: Fix edid memory leak commit 49ceda9de2da4d1827941d06701f3017c27c1855 upstream. edid should be freed once it's finished being used. Fixes: 56fe8b6f4991 ("drm/bridge: Add RGB to VGA bridge support") Cc: Rob Herring <r...@kernel.org> Cc: Sean Paul <seanp...@chromium.org> Cc: Maxime Ripard <maxime.rip...@free-electrons.com> Cc: Archit Taneja <arch...@codeaurora.org> Cc: Andrzej Hajda <a.ha...@samsung.com> Cc: Laurent Pinchart <laurent.pinch...@ideasonboard.com> Cc: <sta...@vger.kernel.org> # v4.9+ Reviewed-by: Maxime Ripard <maxime.rip...@bootlin.com> Reviewed-by: Laurent Pinchart <laurent.pinch...@ideasonboard.com> Signed-off-by: Sean Paul <seanp...@chromium.org> Link: https://patchwork.freedesktop.org/patch/msgid/20180420190007.1572-1-seanp...@chromium.org Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 32c6a543d8a58cb4df06e103dae241d848263938 Author: Thomas Hellstrom <thellst...@vmware.com> Date: Thu Apr 26 09:59:30 2018 +0200 drm/vmwgfx: Fix a buffer object leak commit 13f149d47392782baafd96d54d4e65f3b5ca342f upstream. A buffer object leak was introduced when fixing a premature buffer object release. Fix this. Cc: <sta...@vger.kernel.org> Fixes: 73a88250b709 ("Fix a destoy-while-held mutex problem.") Signed-off-by: Thomas Hellstrom <thellst...@vmware.com> Reviewed-by: Deepak Rawat <dra...@vmware.com> Reviewed-by: Sinclair Yeh <s...@vmware.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 900ed3ec5634236a48e623ad3272ba59b0b1e842 Author: Sebastian Sanchez <sebastian.sanc...@intel.com> Date: Tue May 1 05:35:58 2018 -0700 IB/hfi1: Fix NULL pointer dereference when invalid num_vls is used commit 45d924571a5e1329580811f2419da61b07ac3613 upstream. When an invalid num_vls is used as a module parameter, the code execution follows an exception path where the macro dd_dev_err() expects dd->pcidev->dev not to be NULL in hfi1_init_dd(). This causes a NULL pointer dereference. Fix hfi1_init_dd() by initializing dd->pcidev and dd->pcidev->dev earlier in the code. If a dd exists, then dd->pcidev and dd->pcidev->dev always exists. BUG: unable to handle kernel NULL pointer dereference at 00000000000000f0 IP: __dev_printk+0x15/0x90 Workqueue: events work_for_cpu_fn RIP: 0010:__dev_printk+0x15/0x90 Call Trace: dev_err+0x6c/0x90 ? hfi1_init_pportdata+0x38d/0x3f0 [hfi1] hfi1_init_dd+0xdd/0x2530 [hfi1] ? pci_conf1_read+0xb2/0xf0 ? pci_read_config_word.part.9+0x64/0x80 ? pci_conf1_write+0xb0/0xf0 ? pcie_capability_clear_and_set_word+0x57/0x80 init_one+0x141/0x490 [hfi1] local_pci_probe+0x3f/0xa0 work_for_cpu_fn+0x10/0x20 process_one_work+0x152/0x350 worker_thread+0x1cf/0x3e0 kthread+0xf5/0x130 ? max_active_store+0x80/0x80 ? kthread_bind+0x10/0x10 ? do_syscall_64+0x6e/0x1a0 ? SyS_exit_group+0x10/0x10 ret_from_fork+0x35/0x40 Cc: <sta...@vger.kernel.org> # 4.9.x Reviewed-by: Mike Marciniszyn <mike.marcinis...@intel.com> Reviewed-by: Michael J. Ruhl <michael.j.r...@intel.com> Signed-off-by: Sebastian Sanchez <sebastian.sanc...@intel.com> Signed-off-by: Dennis Dalessandro <dennis.dalessan...@intel.com> Signed-off-by: Doug Ledford <dledf...@redhat.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 7508e14f327f002093918800873e723337f0ceb7 Author: Danit Goldberg <dan...@mellanox.com> Date: Mon Apr 23 17:01:54 2018 +0300 IB/mlx5: Use unlimited rate when static rate is not supported commit 4f32ac2e452c2180cd2df581cbadac183e27ecd0 upstream. Before the change, if the user passed a static rate value different than zero and the FW doesn't support static rate, it would end up configuring rate of 2.5 GBps. Fix this by using rate 0; unlimited, in cases where FW doesn't support static rate configuration. Cc: <sta...@vger.kernel.org> # 3.10 Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") Reviewed-by: Majd Dibbiny <m...@mellanox.com> Signed-off-by: Danit Goldberg <dan...@mellanox.com> Signed-off-by: Leon Romanovsky <leo...@mellanox.com> Signed-off-by: Doug Ledford <dledf...@redhat.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit f0b2a493973ff8da3a648d6b08bca259e78d6481 Author: SZ Lin (æä¸æº) <sz....@moxa.com> Date: Thu Apr 26 14:30:13 2018 +0800 NET: usb: qmi_wwan: add support for ublox R410M PID 0x90b2 commit 9306b38e42cb266f98bff6f6f4c1c652aa79ba45 upstream. This patch adds support for PID 0x90b2 of ublox R410M. qmicli -d /dev/cdc-wdm0 --dms-get-manufacturer [/dev/cdc-wdm0] Device manufacturer retrieved: Manufacturer: 'u-blox' qmicli -d /dev/cdc-wdm0 --dms-get-model [/dev/cdc-wdm0] Device model retrieved: Model: 'SARA-R410M-02B' Signed-off-by: SZ Lin (æä¸æº) <sz....@moxa.com> Cc: stable <sta...@vger.kernel.org> Acked-by: Bjørn Mork <bj...@mork.no> Signed-off-by: David S. Miller <da...@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit a3fe8107c06f153d0eb87b435c7a5be477e986aa Author: Leon Romanovsky <leo...@mellanox.com> Date: Mon Apr 23 17:01:53 2018 +0300 RDMA/mlx5: Protect from shift operand overflow commit 002bf2282b2d7318e444dca9ffcb994afc5d5f15 upstream. Ensure that user didn't supply values too large that can cause overflow. UBSAN: Undefined behaviour in drivers/infiniband/hw/mlx5/qp.c:263:23 shift exponent -2147483648 is negative CPU: 0 PID: 292 Comm: syzkaller612609 Not tainted 4.16.0-rc1+ #131 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.11.0-0-g63451fca13-prebuilt.qemu-project.org 04/01/2014 Call Trace: dump_stack+0xde/0x164 ubsan_epilogue+0xe/0x81 set_rq_size+0x7c2/0xa90 create_qp_common+0xc18/0x43c0 mlx5_ib_create_qp+0x379/0x1ca0 create_qp.isra.5+0xc94/0x2260 ib_uverbs_create_qp+0x21b/0x2a0 ib_uverbs_write+0xc2c/0x1010 vfs_write+0x1b0/0x550 SyS_write+0xc7/0x1a0 do_syscall_64+0x1aa/0x740 entry_SYSCALL_64_after_hwframe+0x26/0x9b RIP: 0033:0x433569 RSP: 002b:00007ffc6e62f448 EFLAGS: 00000217 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00000000004002f8 RCX: 0000000000433569 RDX: 0000000000000070 RSI: 00000000200042c0 RDI: 0000000000000003 RBP: 00000000006d5018 R08: 00000000004002f8 R09: 00000000004002f8 R10: 00000000004002f8 R11: 0000000000000217 R12: 0000000000000000 R13: 000000000040c9f0 R14: 000000000040ca80 R15: 0000000000000006 Cc: <sta...@vger.kernel.org> # 3.10 Fixes: e126ba97dba9 ("mlx5: Add driver for Mellanox Connect-IB adapters") Cc: syzkaller <syzkal...@googlegroups.com> Reported-by: Noa Osherovich <no...@mellanox.com> Signed-off-by: Leon Romanovsky <leo...@mellanox.com> Signed-off-by: Doug Ledford <dledf...@redhat.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit aa2fb1f929c5dcfdcafd1456a029874c7a2f75c5 Author: Roland Dreier <rol...@purestorage.com> Date: Thu Apr 19 08:28:11 2018 -0700 RDMA/ucma: Allow resolving address w/o specifying source address commit 09abfe7b5b2f442a85f4c4d59ecf582ad76088d7 upstream. The RDMA CM will select a source device and address by consulting the routing table if no source address is passed into rdma_resolve_address(). Userspace will ask for this by passing an all-zero source address in the RESOLVE_IP command. Unfortunately the new check for non-zero address size rejects this with EINVAL, which breaks valid userspace applications. Fix this by explicitly allowing a zero address family for the source. Fixes: 2975d5de6428 ("RDMA/ucma: Check AF family prior resolving address") Cc: <sta...@vger.kernel.org> Signed-off-by: Roland Dreier <rol...@purestorage.com> Signed-off-by: Doug Ledford <dledf...@redhat.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 1378078b7a8b1635f1bcd4f5d2843ef9770c61ae Author: Raju Rangoju <ra...@chelsio.com> Date: Mon Apr 23 21:42:37 2018 +0530 RDMA/cxgb4: release hw resources on device removal commit 26bff1bd74a4f7417509a83295614e9dab995b2a upstream. The c4iw_rdev_close() logic was not releasing all the hw resources (PBL and RQT memory) during the device removal event (driver unload / system reboot). This can cause panic in gen_pool_destroy(). The module remove function will wait for all the hw resources to be released during the device removal event. Fixes c12a67fe(iw_cxgb4: free EQ queue memory on last deref) Signed-off-by: Raju Rangoju <ra...@chelsio.com> Reviewed-by: Steve Wise <sw...@opengridcomputing.com> Cc: sta...@vger.kernel.org Signed-off-by: Doug Ledford <dledf...@redhat.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit b13d8f52b8e7f713196e7fc643b44a72ad3da1be Author: Darrick J. Wong <darrick.w...@oracle.com> Date: Mon Apr 16 23:07:45 2018 -0700 xfs: prevent creating negative-sized file via INSERT_RANGE commit 7d83fb14258b9961920cd86f0b921caaeb3ebe85 upstream. During the "insert range" fallocate operation, i_size grows by the specified 'len' bytes. XFS verifies that i_size + len < s_maxbytes, as it should. But this comparison is done using the signed 'loff_t', and 'i_size + len' can wrap around to a negative value, causing the check to incorrectly pass, resulting in an inode with "negative" i_size. This is possible on 64-bit platforms, where XFS sets s_maxbytes = LLONG_MAX. ext4 and f2fs don't run into this because they set a smaller s_maxbytes. Fix it by using subtraction instead. Reproducer: xfs_io -f file -c "truncate $(((1<<63)-1))" -c "finsert 0 4096" Fixes: a904b1ca5751 ("xfs: Add support FALLOC_FL_INSERT_RANGE for fallocate") Cc: <sta...@vger.kernel.org> # v4.1+ Originally-From: Eric Biggers <ebigg...@google.com> Signed-off-by: Eric Biggers <ebigg...@google.com> Reviewed-by: Christoph Hellwig <h...@lst.de> Reviewed-by: Darrick J. Wong <darrick.w...@oracle.com> [darrick: fix signed integer addition overflow too] Signed-off-by: Darrick J. Wong <darrick.w...@oracle.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit c0ff32016565d4332e4012b82105918e4c28d4ea Author: Vittorio Gambaletta (VittGam) <linuxb...@vittgam.net> Date: Wed Apr 25 15:22:13 2018 -0700 Input: atmel_mxt_ts - add touchpad button mapping for Samsung Chromebook Pro commit f372b81101e6895252298e563d634d5e44ae81e7 upstream. This patch adds the correct platform data information for the Caroline Chromebook, so that the mouse button does not get stuck in pressed state after the first click. The Samus button keymap and platform data definition are the correct ones for Caroline, so they have been reused here. Signed-off-by: Vittorio Gambaletta <linuxb...@vittgam.net> Signed-off-by: Salvatore Bellizzi <l...@seppia.net> Tested-by: Guenter Roeck <gro...@chromium.org> Cc: sta...@vger.kernel.org [dtor: adjusted vendor spelling to match shipping firmware] Signed-off-by: Dmitry Torokhov <dmitry.torok...@gmail.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 4178de2e9e188b2c9839ddf518f0b38de3c9291a Author: Dmitry Torokhov <dmitry.torok...@gmail.com> Date: Fri Apr 6 10:23:05 2018 -0700 Input: leds - fix out of bound access commit 6bd6ae639683c0b41f46990d5c64ff9fbfa019dc upstream. UI_SET_LEDBIT ioctl() causes the following KASAN splat when used with led > LED_CHARGING: [ 1274.663418] BUG: KASAN: slab-out-of-bounds in input_leds_connect+0x611/0x730 [input_leds] [ 1274.663426] Write of size 8 at addr ffff88003377b2c0 by task ckb-next-daemon/5128 This happens because we were writing to the led structure before making sure that it exists. Reported-by: Tasos Sahanidis <ta...@tasossah.com> Tested-by: Tasos Sahanidis <ta...@tasossah.com> Cc: sta...@vger.kernel.org Signed-off-by: Dmitry Torokhov <dmitry.torok...@gmail.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 0f2c8b315f7b502ec1381c7397332a6157c1345c Author: Mathieu Desnoyers <mathieu.desnoy...@efficios.com> Date: Thu Mar 15 08:44:24 2018 -0400 tracepoint: Do not warn on ENOMEM commit d66a270be3310d7aa132fec0cea77d3d32a0ff75 upstream. Tracepoint should only warn when a kernel API user does not respect the required preconditions (e.g. same tracepoint enabled twice, or called to remove a tracepoint that does not exist). Silence warning in out-of-memory conditions, given that the error is returned to the caller. This ensures that out-of-memory error-injection testing does not trigger warnings in tracepoint.c, which were seen by syzbot. Link: https://lkml.kernel.org/r/001a114465e241a8720567419...@google.com Link: https://lkml.kernel.org/r/001a1140e0de15fc910567464...@google.com Link: http://lkml.kernel.org/r/20180315124424.32319-1-mathieu.desnoy...@efficios.com CC: Peter Zijlstra <pet...@infradead.org> CC: Jiri Olsa <jo...@redhat.com> CC: Arnaldo Carvalho de Melo <a...@kernel.org> CC: Alexander Shishkin <alexander.shish...@linux.intel.com> CC: Namhyung Kim <namhy...@kernel.org> CC: sta...@vger.kernel.org Fixes: de7b2973903c6 ("tracepoint: Use struct pointer instead of name hash for reg/unreg tracepoints") Reported-by: syzbot+9c0d616860575a731...@syzkaller.appspotmail.com Reported-by: syzbot+4e9ae7fa46233396f...@syzkaller.appspotmail.com Signed-off-by: Mathieu Desnoyers <mathieu.desnoy...@efficios.com> Signed-off-by: Steven Rostedt (VMware) <rost...@goodmis.org> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit b6a49cc35cf52ac3835a22a0bbcff59be6d181bd Author: Takashi Iwai <ti...@suse.de> Date: Mon Apr 30 10:06:48 2018 +0200 ALSA: aloop: Add missing cable lock to ctl API callbacks commit 76b3421b39bd610546931fc923edcf90c18fa395 upstream. Some control API callbacks in aloop driver are too lazy to take the loopback->cable_lock and it results in possible races of cable access while it's being freed. It eventually lead to a UAF, as reported by fuzzer recently. This patch covers such control API callbacks and add the proper mutex locks. Reported-by: DaeRyong Jeong <threeear...@gmail.com> Cc: <sta...@vger.kernel.org> Signed-off-by: Takashi Iwai <ti...@suse.de> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 68f4bc3ab8f13631ad6c144f13c22665382f0387 Author: Robert Rosengren <robert.roseng...@axis.com> Date: Mon Mar 26 07:24:49 2018 +0200 ALSA: aloop: Mark paused device as inactive commit 306a4f3ca7f3c7dfa473ebd19d66e40e59d99734 upstream. Show paused ALSA aloop device as inactive, i.e. the control "PCM Slave Active" set as false. Notification sent upon state change. This makes it possible for client capturing from aloop device to know if data is expected. Without it the client expects data even if playback is paused. Signed-off-by: Robert Rosengren <robert.roseng...@axis.com> Signed-off-by: Takashi Iwai <ti...@suse.de> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 955185725ba717f7a8f2495089503c05cd231bee Author: Takashi Iwai <ti...@suse.de> Date: Thu Apr 26 09:17:45 2018 +0200 ALSA: seq: Fix races at MIDI encoding in snd_virmidi_output_trigger() commit 8f22e52528cc372b218b5f100457469615c733ce upstream. The sequencer virmidi code has an open race at its output trigger callback: namely, virmidi keeps only one event packet for processing while it doesn't protect for concurrent output trigger calls. snd_virmidi_output_trigger() tries to process the previously unfinished event before starting encoding the given MIDI stream, but this is done without any lock. Meanwhile, if another rawmidi stream starts the output trigger, this proceeds further, and overwrites the event package that is being processed in another thread. This eventually corrupts and may lead to the invalid memory access if the event type is like SYSEX. The fix is just to move the spinlock to cover both the pending event and the new stream. The bug was spotted by a new fuzzer, RaceFuzzer. BugLink: http://lkml.kernel.org/r/20180426045223.ga15...@dragonet.kaist.ac.kr Reported-by: DaeRyong Jeong <threeear...@gmail.com> Cc: <sta...@vger.kernel.org> Signed-off-by: Takashi Iwai <ti...@suse.de> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit ec2088687413518d1f332848eaa96560dc28356c Author: Takashi Iwai <ti...@suse.de> Date: Wed May 2 08:48:46 2018 +0200 ALSA: pcm: Check PCM state at xfern compat ioctl commit f13876e2c33a657a71bcbb10f767c0951b165020 upstream. Since snd_pcm_ioctl_xfern_compat() has no PCM state check, it may go further and hit the sanity check pcm_sanity_check() when the ioctl is called right after open. It may eventually spew a kernel warning, as triggered by syzbot, depending on kconfig. The lack of PCM state check there was just an oversight. Although it's no real crash, the spurious kernel warning is annoying, so let's add the proper check. Reported-by: syzbot+1dac3a4f6bc9c1c67...@syzkaller.appspotmail.com Cc: <sta...@vger.kernel.org> Signed-off-by: Takashi Iwai <ti...@suse.de> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 466e8d108d6f9cfacfc347ccc744e8d37a380560 Author: Kristian Evensen <kristian.even...@gmail.com> Date: Thu Feb 1 10:32:32 2018 +0100 USB: serial: option: Add support for Quectel EP06 commit 71a0483d56e784b1e11f38f10d7e22d265dbe244 upstream. The Quectel EP06 is a Cat. 6 LTE modem, and the interface mapping is as follows: 0: Diag 1: NMEA 2: AT 3: Modem Interface 4 is QMI and interface 5 is ADB, so they are blacklisted. This patch should also be considered for -stable. The QMI-patch for this modem is already in the -stable-queue. v1->v2: * Updated commit prefix (thanks Johan Hovold) * Updated commit message slightly. Signed-off-by: Kristian Evensen <kristian.even...@gmail.com> Acked-by: Johan Hovold <jo...@kernel.org> Cc: Bjørn Mork <bj...@mork.no> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit aa6b517e74512ef8373ff66a40f4925f9b6edab6 Author: Uwe Kleine-König <u.kleine-koe...@pengutronix.de> Date: Wed May 24 21:38:46 2017 +0200 serial: imx: ensure UCR3 and UFCR are setup correctly commit 6df765dca378bddf994cfd2044acafa501bd800f upstream. Commit e61c38d85b73 ("serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off") has a flaw: While UCR3 and UFCR were modified using read-modify-write before it switched to write register values independent of the previous state. That's a good idea in principle (and that's why I did it) but needs more care. This patch reinstates read-modify-write for UFCR and for UCR3 ensures that RXDMUXSEL and ADNIMP are set for post imx1. Fixes: e61c38d85b73 ("serial: imx: setup DCEDTE early and ensure DCD and RI irqs to be off") Signed-off-by: Uwe Kleine-König <u.kleine-koe...@pengutronix.de> Acked-by: Mika Penttilä <mika.pentt...@nextfour.com> Tested-by: Mika Penttilä <mika.pentt...@nextfour.com> Acked-by: Steve Twiss <stwiss.opensou...@diasemi.com> Tested-by: Steve Twiss <stwiss.opensou...@diasemi.com> Cc: Chris Ruehl <chris.ru...@gtsys.com.hk> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 23fb8f797e6bee5c39b43e6f4c6f15203ee8ea14 Author: LEROY Christophe <christophe.le...@c-s.fr> Date: Thu Mar 22 10:57:01 2018 +0100 crypto: talitos - fix IPsec cipher in length commit 2b1227301a8e4729409694e323b72c064c47cb6b upstream. For SEC 2.x+, cipher in length must contain only the ciphertext length. In case of using hardware ICV checking, the ICV length is provided via the "extent" field of the descriptor pointer. Cc: <sta...@vger.kernel.org> # 4.8+ Fixes: 549bd8bc5987 ("crypto: talitos - Implement AEAD for SEC1 using HMAC_SNOOP_NO_AFEU") Reported-by: Horia GeantÄ <horia.gea...@nxp.com> Signed-off-by: Christophe Leroy <christophe.le...@c-s.fr> Tested-by: Horia GeantÄ <horia.gea...@nxp.com> Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au> [backported to 4.9.y, 4.14.y] Signed-off-by: Horia GeantÄ <horia.gea...@nxp.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit b8beca48a5504a790f3e308adcb965c6d9c657dc Author: Marc Zyngier <marc.zyng...@arm.com> Date: Sun Jan 21 16:42:56 2018 +0000 arm/arm64: KVM: Add PSCI version selection API commit 85bd0ba1ff9875798fad94218b627ea9f768f3c3 upstream. Although we've implemented PSCI 0.1, 0.2 and 1.0, we expose either 0.1 or 1.0 to a guest, defaulting to the latest version of the PSCI implementation that is compatible with the requested version. This is no different from doing a firmware upgrade on KVM. But in order to give a chance to hypothetical badly implemented guests that would have a fit by discovering something other than PSCI 0.2, let's provide a new API that allows userspace to pick one particular version of the API. This is implemented as a new class of "firmware" registers, where we expose the PSCI version. This allows the PSCI version to be save/restored as part of a guest migration, and also set to any supported version if the guest requires it. Cc: sta...@vger.kernel.org #4.16 Reviewed-by: Christoffer Dall <cd...@kernel.org> Signed-off-by: Marc Zyngier <marc.zyng...@arm.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit fcbc8d0e7dbef92a6b611a6d3d1ed8ea228464a0 Author: Teng Qin <qint...@fb.com> Date: Mon Apr 24 19:00:37 2017 -0700 bpf: map_get_next_key to return first key on NULL commit 8fe45924387be6b5c1be59a7eb330790c61d5d10 upstream. When iterating through a map, we need to find a key that does not exist in the map so map_get_next_key will give us the first key of the map. This often requires a lot of guessing in production systems. This patch makes map_get_next_key return the first key when the key pointer in the parameter is NULL. Signed-off-by: Teng Qin <qint...@fb.com> Signed-off-by: Alexei Starovoitov <a...@kernel.org> Acked-by: Daniel Borkmann <dan...@iogearbox.net> Signed-off-by: David S. Miller <da...@davemloft.net> Signed-off-by: Chenbo Feng <fe...@google.com> Cc: Lorenzo Colitti <lore...@google.com> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 8f54ead2389feeb1c9d4a308af7cb4e8496716ff Author: Tejun Heo <t...@kernel.org> Date: Wed Mar 14 08:27:26 2018 -0700 percpu: include linux/sched.h for cond_resched() commit 71546d100422bcc2c543dadeb9328728997cd23a upstream. microblaze build broke due to missing declaration of the cond_resched() invocation added recently. Let's include linux/sched.h explicitly. Signed-off-by: Tejun Heo <t...@kernel.org> Reported-by: kbuild test robot <fengguang...@intel.com> Cc: Guenter Roeck <li...@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 0f8a75e90963019cef486565f2b088bb570a7ddb Author: Tan Xiaojun <tanxiao...@huawei.com> Date: Thu Feb 23 14:04:39 2017 +0800 perf/core: Fix the perf_cpu_time_max_percent check commit 1572e45a924f254d9570093abde46430c3172e3d upstream. Use "proc_dointvec_minmax" instead of "proc_dointvec" to check the input value from user-space. If not, we can set a big value and some vars will overflow like "sysctl_perf_event_sample_rate" which will cause a lot of unexpected problems. Signed-off-by: Tan Xiaojun <tanxiao...@huawei.com> Signed-off-by: Peter Zijlstra (Intel) <pet...@infradead.org> Cc: <a...@kernel.org> Cc: <alexander.shish...@linux.intel.com> Cc: Alexander Shishkin <alexander.shish...@linux.intel.com> Cc: Arnaldo Carvalho de Melo <a...@redhat.com> Cc: Jiri Olsa <jo...@redhat.com> Cc: Linus Torvalds <torva...@linux-foundation.org> Cc: Peter Zijlstra <pet...@infradead.org> Cc: Stephane Eranian <eran...@google.com> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Vince Weaver <vincent.wea...@maine.edu> Link: http://lkml.kernel.org/r/1487829879-56237-1-git-send-email-tanxiao...@huawei.com Signed-off-by: Ingo Molnar <mi...@kernel.org> Cc: Guenter Roeck <li...@roeck-us.net> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit eff40cb1908ba6ba604068d6273584fc28e3bac8 Author: Greg Kroah-Hartman <gre...@linuxfoundation.org> Date: Tue May 1 15:13:10 2018 -0700 Linux 4.9.98 commit 80bb480f341dc75ca4cf7f3a1496d6493503c42a Author: Michael Neuling <mi...@neuling.org> Date: Mon Mar 26 15:17:07 2018 +1100 powerpc/eeh: Fix race with driver un/bind commit f0295e047fcf52ccb42561fb7de6942f5201b676 upstream. The current EEH callbacks can race with a driver unbind. This can result in a backtraces like this: EEH: Frozen PHB#0-PE#1fc detected EEH: PE location: S000009, PHB location: N/A CPU: 2 PID: 2312 Comm: kworker/u258:3 Not tainted 4.15.6-openpower1 #2 Workqueue: nvme-wq nvme_reset_work [nvme] Call Trace: dump_stack+0x9c/0xd0 (unreliable) eeh_dev_check_failure+0x420/0x470 eeh_check_failure+0xa0/0xa4 nvme_reset_work+0x138/0x1414 [nvme] process_one_work+0x1ec/0x328 worker_thread+0x2e4/0x3a8 kthread+0x14c/0x154 ret_from_kernel_thread+0x5c/0xc8 nvme nvme1: Removing after probe failure status: -19 <snip> cpu 0x23: Vector: 300 (Data Access) at [c000000ff50f3800] pc: c0080000089a0eb0: nvme_error_detected+0x4c/0x90 [nvme] lr: c000000000026564: eeh_report_error+0xe0/0x110 sp: c000000ff50f3a80 msr: 9000000000009033 dar: 400 dsisr: 40000000 current = 0xc000000ff507c000 paca = 0xc00000000fdc9d80 softe: 0 irq_happened: 0x01 pid = 782, comm = eehd Linux version 4.15.6-openpower1 (smc@smc-desktop) (gcc version 6.4.0 (Buildroot 2017.11.2-00008-g4b6188e)) #2 SM P Tue Feb 27 12:33:27 PST 2018 enter ? for help eeh_report_error+0xe0/0x110 eeh_pe_dev_traverse+0xc0/0xdc eeh_handle_normal_event+0x184/0x4c4 eeh_handle_event+0x30/0x288 eeh_event_handler+0x124/0x170 kthread+0x14c/0x154 ret_from_kernel_thread+0x5c/0xc8 The first part is an EEH (on boot), the second half is the resulting crash. nvme probe starts the nvme_reset_work() worker thread. This worker thread starts touching the device which see a device error (EEH) and hence queues up an event in the powerpc EEH worker thread. nvme_reset_work() then continues and runs nvme_remove_dead_ctrl_work() which results in unbinding the driver from the device and hence releases all resources. At the same time, the EEH worker thread starts doing the EEH .error_detected() driver callback, which no longer works since the resources have been freed. This fixes the problem in the same way the generic PCIe AER code (in drivers/pci/pcie/aer/aerdrv_core.c) does. It makes the EEH code hold the device_lock() while performing the driver EEH callbacks and associated code. This ensures either the callbacks are no longer register, or if they are registered the driver will not be removed from underneath us. This has been broken forever. The EEH call backs were first introduced in 2005 (in 77bd7415610) but it's not clear if a lock was needed back then. Fixes: 77bd74156101 ("[PATCH] powerpc: PCI Error Recovery: PPC64 core recovery routines") Cc: sta...@vger.kernel.org # v2.6.16+ Signed-off-by: Michael Neuling <mi...@neuling.org> Reviewed-by: Benjamin Herrenschmidt <b...@kernel.crashing.org> Signed-off-by: Michael Ellerman <m...@ellerman.id.au> Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit c11a6ed509f086efebc52ad4fd8713e7acfbc076 Author: Borislav Petkov <b...@suse.de> Date: Sat Apr 21 10:19:29 2018 +0200 x86/microcode/intel: Save microcode patch unconditionally commit 84749d83758af6576552046b215b9b7f37f9556b upstream. save_mc_for_early() was a no-op on !CONFIG_HOTPLUG_CPU but the generic_load_microcode() path saves the microcode patches it has found into the cache of patches which is used for late loading too. Regardless of whether CPU hotplug is used or not. Make the saving unconditional so that late loading can find the proper patch. Reported-by: Vitezslav Samel <vitezs...@samel.cz> Signed-off-by: Borislav Petkov <b...@suse.de> Signed-off-by: Thomas Gleixner <t...@linutronix.de> Tested-by: Vitezslav Samel <vitezs...@samel.cz> Tested-by: Ashok Raj <ashok....@intel.com> Cc: sta...@vger.kernel.org Link: http://lkml.kernel.org/r/20180418081140.ga2...@pc11.op.pod.cz Link: https://lkml.kernel.org/r/20180421081930.15741-1...@alien8.de Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org> commit 09e43b9be9657f25a66ec82a273ffd0d580e785d Author: Yazen Ghannam <yazen.ghan...@amd.com> Date: Tue Apr 3 09:02:28 2018 -0500 x86/smpboot: Don't use mwait_play_dead() on AMD systems commit da6fa7ef67f07108a1b0cb9fd9e7fcaabd39c051 upstream. Recent AMD systems support using MWAIT for C1 state. However, MWAIT will not allow deeper cstates than C1 on current systems. play_dead() expects to use the deepest state available. The deepest state available on AMD systems is reached through SystemIO or HALT. If MWAIT is available, it is preferred over the other methods, so the CPU never reaches the deepest possible state. Don't try to use MWAIT to play_dead() on AMD systems. Instead, use CPUIDLE to enter the deepest state advertised by firmware. If CPUIDLE is not available then fallback to HALT. Signed-off-by: Yazen Ghannam <yazen.ghan...@amd.com> Signed-off-by: Thomas Gleixner <t...@linutronix.de> Reviewed-by: Borislav Petkov <b...@suse.de> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio index fee35c0..0406076e4 100644 --- a/Documentation/ABI/testing/sysfs-bus-iio +++ b/Documentation/ABI/testing/sysfs-bus-iio @@ -32,7 +32,7 @@ Description: Description of the physical chip / device for device X. Typically a part number. -What: /sys/bus/iio/devices/iio:deviceX/timestamp_clock +What: /sys/bus/iio/devices/iio:deviceX/current_timestamp_clock KernelVersion: 4.5 Contact: linux-...@vger.kernel.org Description: diff --git a/Documentation/ABI/testing/sysfs-devices-system-cpu b/Documentation/ABI/testing/sysfs-devices-system-cpu index 4987417..dfd56ec 100644 --- a/Documentation/ABI/testing/sysfs-devices-system-cpu +++ b/Documentation/ABI/testing/sysfs-devices-system-cpu @@ -350,3 +350,19 @@ Contact: Linux ARM Kernel Mailing list <linux-arm-ker...@lists.infradead.org> Description: AArch64 CPU registers 'identification' directory exposes the CPU ID registers for identifying model and revision of the CPU. + +What: /sys/devices/system/cpu/vulnerabilities + /sys/devices/system/cpu/vulnerabilities/meltdown + /sys/devices/system/cpu/vulnerabilities/spectre_v1 + /sys/devices/system/cpu/vulnerabilities/spectre_v2 +Date: January 2018 +Contact: Linux kernel mailing list <linux-ker...@vger.kernel.org> +Description: Information about CPU vulnerabilities + + The files are named after the code names of CPU + vulnerabilities. The output of those files reflects the + state of the CPUs in the system. Possible output values: + + "Not affected" CPU is not affected by the vulnerability + "Vulnerable" CPU is affected and no mitigation in effect + "Mitigation: $M" CPU is affected and mitigation $M is in effect diff --git a/Documentation/arm64/silicon-errata.txt b/Documentation/arm64/silicon-errata.txt index 405da11..d11af52 100644 --- a/Documentation/arm64/silicon-errata.txt +++ b/Documentation/arm64/silicon-errata.txt @@ -42,24 +42,26 @@ file acts as a registry of software workarounds in the Linux Kernel and will be updated when new workarounds are committed and backported to stable kernels. -| Implementor | Component | Erratum ID | Kconfig | -+----------------+-----------------+-----------------+-------------------------+ -| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 | -| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 | -| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 | -| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 | -| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 | -| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 | -| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | -| ARM | Cortex-A57 | #852523 | N/A | -| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | -| ARM | Cortex-A72 | #853709 | N/A | -| ARM | MMU-500 | #841119,#826419 | N/A | -| | | | | -| Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 | -| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 | -| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 | -| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 | -| Cavium | ThunderX SMMUv2 | #27704 | N/A | -| | | | | -| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 | +| Implementor | Component | Erratum ID | Kconfig | ++----------------+-----------------+-----------------+-----------------------------+ +| ARM | Cortex-A53 | #826319 | ARM64_ERRATUM_826319 | +| ARM | Cortex-A53 | #827319 | ARM64_ERRATUM_827319 | +| ARM | Cortex-A53 | #824069 | ARM64_ERRATUM_824069 | +| ARM | Cortex-A53 | #819472 | ARM64_ERRATUM_819472 | +| ARM | Cortex-A53 | #845719 | ARM64_ERRATUM_845719 | +| ARM | Cortex-A53 | #843419 | ARM64_ERRATUM_843419 | +| ARM | Cortex-A57 | #832075 | ARM64_ERRATUM_832075 | +| ARM | Cortex-A57 | #852523 | N/A | +| ARM | Cortex-A57 | #834220 | ARM64_ERRATUM_834220 | +| ARM | Cortex-A72 | #853709 | N/A | +| ARM | MMU-500 | #841119,#826419 | N/A | +| | | | | +| Cavium | ThunderX ITS | #22375, #24313 | CAVIUM_ERRATUM_22375 | +| Cavium | ThunderX ITS | #23144 | CAVIUM_ERRATUM_23144 | +| Cavium | ThunderX GICv3 | #23154 | CAVIUM_ERRATUM_23154 | +| Cavium | ThunderX Core | #27456 | CAVIUM_ERRATUM_27456 | +| Cavium | ThunderX SMMUv2 | #27704 | N/A | +| | | | | +| Freescale/NXP | LS2080A/LS1043A | A-008585 | FSL_ERRATUM_A008585 | +| | | | | +| Qualcomm Tech. | QDF2400 ITS | E0065 | QCOM_QDF2400_ERRATUM_0065 | diff --git a/Documentation/arm64/tagged-pointers.txt b/Documentation/arm64/tagged-pointers.txt index d9995f1..a25a99e 100644 --- a/Documentation/arm64/tagged-pointers.txt +++ b/Documentation/arm64/tagged-pointers.txt @@ -11,24 +11,56 @@ in AArch64 Linux. The kernel configures the translation tables so that translations made via TTBR0 (i.e. userspace mappings) have the top byte (bits 63:56) of the virtual address ignored by the translation hardware. This frees up -this byte for application use, with the following caveats: +this byte for application use. - (1) The kernel requires that all user addresses passed to EL1 - are tagged with tag 0x00. This means that any syscall - parameters containing user virtual addresses *must* have - their top byte cleared before trapping to the kernel. - (2) Non-zero tags are not preserved when delivering signals. - This means that signal handlers in applications making use - of tags cannot rely on the tag information for user virtual - addresses being maintained for fields inside siginfo_t. - One exception to this rule is for signals raised in response - to watchpoint debug exceptions, where the tag information - will be preserved. +Passing tagged addresses to the kernel +-------------------------------------- - (3) Special care should be taken when using tagged pointers, - since it is likely that C compilers will not hazard two - virtual addresses differing only in the upper byte. +All interpretation of userspace memory addresses by the kernel assumes +an address tag of 0x00. + +This includes, but is not limited to, addresses found in: + + - pointer arguments to system calls, including pointers in structures + passed to system calls, + + - the stack pointer (sp), e.g. when interpreting it to deliver a + signal, + + - the frame pointer (x29) and frame records, e.g. when interpreting + them to generate a backtrace or call graph. + +Using non-zero address tags in any of these locations may result in an +error code being returned, a (fatal) signal being raised, or other modes +of failure. + +For these reasons, passing non-zero address tags to the kernel via +system calls is forbidden, and using a non-zero address tag for sp is +strongly discouraged. + +Programs maintaining a frame pointer and frame records that use non-zero +address tags may suffer impaired or inaccurate debug and profiling +visibility. + + +Preserving tags +--------------- + +Non-zero tags are not preserved when delivering signals. This means that +signal handlers in applications making use of tags cannot rely on the +tag information for user virtual addresses being maintained for fields +inside siginfo_t. One exception to this rule is for signals raised in +response to watchpoint debug exceptions, where the tag information will +be preserved. The architecture prevents the use of a tagged PC, so the upper byte will be set to a sign-extension of bit 55 on exception return. + + +Other considerations +-------------------- + +Special care should be taken when using tagged pointers, since it is +likely that C compilers will not hazard two virtual addresses differing +only in the upper byte. diff --git a/Documentation/devicetree/bindings/arm/arch_timer.txt b/Documentation/devicetree/bindings/arm/arch_timer.txt index ef5fbe9..e926aea 100644 --- a/Documentation/devicetree/bindings/arm/arch_timer.txt +++ b/Documentation/devicetree/bindings/arm/arch_timer.txt @@ -31,6 +31,12 @@ to deliver its interrupts via SPIs. This also affects writes to the tval register, due to the implicit counter read. +- hisilicon,erratum-161010101 : A boolean property. Indicates the + presence of Hisilicon erratum 161010101, which says that reading the + counters is unreliable in some cases, and reads may return a value 32 + beyond the correct value. This also affects writes to the tval + registers, due to the implicit counter read. + ** Optional properties: - arm,cpu-registers-not-fw-configured : Firmware does not initialize @@ -38,6 +44,11 @@ to deliver its interrupts via SPIs. architecturally-defined reset values. Only supported for 32-bit systems which follow the ARMv7 architected reset values. +- arm,no-tick-in-suspend : The main counter does not tick when the system is in + low-power system suspend on some SoCs. This behavior does not match the + Architecture Reference Manual's specification that the system counter "must + be implemented in an always-on power domain." + Example: diff --git a/Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt b/Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt index 2b7b3fa..606da38 100644 --- a/Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt +++ b/Documentation/devicetree/bindings/clock/amlogic,meson8b-clkc.txt @@ -1,11 +1,14 @@ -* Amlogic Meson8b Clock and Reset Unit +* Amlogic Meson8, Meson8b and Meson8m2 Clock and Reset Unit -The Amlogic Meson8b clock controller generates and supplies clock to various -controllers within the SoC. +The Amlogic Meson8 / Meson8b / Meson8m2 clock controller generates and +supplies clock to various controllers within the SoC. Required Properties: -- compatible: should be "amlogic,meson8b-clkc" +- compatible: must be one of: + - "amlogic,meson8-clkc" for Meson8 (S802) SoCs + - "amlogic,meson8b-clkc" for Meson8 (S805) SoCs + - "amlogic,meson8m2-clkc" for Meson8m2 (S812) SoCs - reg: it must be composed by two tuples: 0) physical base address of the xtal register and length of memory mapped region. diff --git a/Documentation/devicetree/bindings/clock/qoriq-clock.txt b/Documentation/devicetree/bindings/clock/qoriq-clock.txt index 16a3ec4..1bd2c76 100644 --- a/Documentation/devicetree/bindings/clock/qoriq-clock.txt +++ b/Documentation/devicetree/bindings/clock/qoriq-clock.txt @@ -31,6 +31,7 @@ Required properties: * "fsl,t4240-clockgen" * "fsl,b4420-clockgen" * "fsl,b4860-clockgen" + * "fsl,ls1012a-clockgen" * "fsl,ls1021a-clockgen" Chassis-version clock strings include: * "fsl,qoriq-clockgen-1.0": for chassis 1.0 clocks diff --git a/Documentation/devicetree/bindings/display/bridge/ti,ths8135.txt b/Documentation/devicetree/bindings/display/bridge/ti,ths8135.txt new file mode 100644 index 0000000..6ec1a88 --- /dev/null +++ b/Documentation/devicetree/bindings/display/bridge/ti,ths8135.txt @@ -0,0 +1,46 @@ +THS8135 Video DAC +----------------- + +This is the binding for Texas Instruments THS8135 Video DAC bridge. + +Required properties: + +- compatible: Must be "ti,ths8135" + +Required nodes: + +This device has two video ports. Their connections are modelled using the OF +graph bindings specified in Documentation/devicetree/bindings/graph.txt. + +- Video port 0 for RGB input +- Video port 1 for VGA output + +Example +------- + +vga-bridge { + compatible = "ti,ths8135"; + #address-cells = <1>; + #size-cells = <0>; + + ports { + #address-cells = <1>; + #size-cells = <0>; + + port@0 { + reg = <0>; + + vga_bridge_in: endpoint { + remote-endpoint = <&lcdc_out_vga>; + }; + }; + + port@1 { + reg = <1>; + + vga_bridge_out: endpoint { + remote-endpoint = <&vga_con_in>; + }; + }; + }; +}; diff --git a/Documentation/devicetree/bindings/display/panel/toppoly,td028ttec1.txt b/Documentation/devicetree/bindings/display/panel/toppoly,td028ttec1.txt deleted file mode 100644 index 7175dc3..0000000 --- a/Documentation/devicetree/bindings/display/panel/toppoly,td028ttec1.txt +++ /dev/null @@ -1,30 +0,0 @@ -Toppoly TD028TTEC1 Panel -======================== - -Required properties: -- compatible: "toppoly,td028ttec1" - -Optional properties: -- label: a symbolic name for the panel - -Required nodes: -- Video port for DPI input - -Example -------- - -lcd-panel: td028ttec1@0 { - compatible = "toppoly,td028ttec1"; - reg = <0>; - spi-max-frequency = <100000>; - spi-cpol; - spi-cpha; - - label = "lcd"; - port { - lcd_in: endpoint { - remote-endpoint = <&dpi_out>; - }; - }; -}; - diff --git a/Documentation/devicetree/bindings/display/panel/tpo,td028ttec1.txt b/Documentation/devicetree/bindings/display/panel/tpo,td028ttec1.txt new file mode 100644 index 0000000..ed34253 --- /dev/null +++ b/Documentation/devicetree/bindings/display/panel/tpo,td028ttec1.txt @@ -0,0 +1,30 @@ +Toppoly TD028TTEC1 Panel +======================== + +Required properties: +- compatible: "tpo,td028ttec1" + +Optional properties: +- label: a symbolic name for the panel + +Required nodes: +- Video port for DPI input + +Example +------- + +lcd-panel: td028ttec1@0 { + compatible = "tpo,td028ttec1"; + reg = <0>; + spi-max-frequency = <100000>; + spi-cpol; + spi-cpha; + + label = "lcd"; + port { + lcd_in: endpoint { + remote-endpoint = <&dpi_out>; + }; + }; +}; + diff --git a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt index b95696d..bda9d6f 100644 --- a/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt +++ b/Documentation/devicetree/bindings/display/sunxi/sun4i-drm.txt @@ -28,6 +28,8 @@ The TCON acts as a timing controller for RGB, LVDS and TV interfaces. Required properties: - compatible: value must be either: * allwinner,sun5i-a13-tcon + * allwinner,sun6i-a31-tcon + * allwinner,sun6i-a31s-tcon * allwinner,sun8i-a33-tcon - reg: base address and size of memory-mapped region - interrupts: interrupt associated to this IP @@ -45,12 +47,15 @@ Required properties: Documentation/devicetree/bindings/media/video-interfaces.txt. The first port should be the input endpoint, the second one the output - The output should have two endpoints. The first is the block - connected to the TCON channel 0 (usually a panel or a bridge), the - second the block connected to the TCON channel 1 (usually the TV - encoder) + The output may have multiple endpoints. The TCON has two channels, + usually with the first channel being used for the panels interfaces + (RGB, LVDS, etc.), and the second being used for the outputs that + require another controller (TV Encoder, HDMI, etc.). The endpoints + will take an extra property, allwinner,tcon-channel, to specify the + channel the endpoint is associated to. If that property is not + present, the endpoint number will be used as the channel number. -On the A13, there is one more clock required: +On SoCs other than the A33, there is one more clock required: - 'tcon-ch1': The clock driving the TCON channel 1 DRC @@ -87,6 +92,7 @@ system. Required properties: - compatible: value must be one of: * allwinner,sun5i-a13-display-backend + * allwinner,sun6i-a31-display-backend * allwinner,sun8i-a33-display-backend - reg: base address and size of the memory-mapped region. - clocks: phandles to the clocks feeding the frontend and backend @@ -117,6 +123,7 @@ deinterlacing and color space conversion. Required properties: - compatible: value must be one of: * allwinner,sun5i-a13-display-frontend + * allwinner,sun6i-a31-display-frontend * allwinner,sun8i-a33-display-frontend - reg: base address and size of the memory-mapped region. - interrupts: interrupt associated to this IP @@ -142,6 +149,8 @@ extra node. Required properties: - compatible: value must be one of: * allwinner,sun5i-a13-display-engine + * allwinner,sun6i-a31-display-engine + * allwinner,sun6i-a31s-display-engine * allwinner,sun8i-a33-display-engine - allwinner,pipelines: list of phandle to the display engine diff --git a/Documentation/devicetree/bindings/dma/snps-dma.txt b/Documentation/devicetree/bindings/dma/snps-dma.txt index 0f55832..633481e 100644 --- a/Documentation/devicetree/bindings/dma/snps-dma.txt +++ b/Documentation/devicetree/bindings/dma/snps-dma.txt @@ -63,6 +63,6 @@ Example: interrupts = <0 35 0x4>; status = "disabled"; dmas = <&dmahost 12 0 1>, - <&dmahost 13 0 1 0>; + <&dmahost 13 1 0>; dma-names = "rx", "rx"; }; diff --git a/Documentation/devicetree/bindings/hwmon/jc42.txt b/Documentation/devicetree/bindings/hwmon/jc42.txt index 07a2504..f569db5 100644 --- a/Documentation/devicetree/bindings/hwmon/jc42.txt +++ b/Documentation/devicetree/bindings/hwmon/jc42.txt @@ -34,6 +34,10 @@ Required properties: - reg: I2C address +Optional properties: +- smbus-timeout-disable: When set, the smbus timeout function will be disabled. + This is not supported on all chips. + Example: temp-sensor@1a { diff --git a/Documentation/devicetree/bindings/iio/adc/avia-hx711.txt b/Documentation/devicetree/bindings/iio/adc/avia-hx711.txt new file mode 100644 index 0000000..b362940 --- /dev/null +++ b/Documentation/devicetree/bindings/iio/adc/avia-hx711.txt @@ -0,0 +1,18 @@ +* AVIA HX711 ADC chip for weight cells + Bit-banging driver + +Required properties: + - compatible: Should be "avia,hx711" + - sck-gpios: Definition of the GPIO for the clock + - dout-gpios: Definition of the GPIO for data-out + See Documentation/devicetree/bindings/gpio/gpio.txt + - avdd-supply: Definition of the regulator used as analog supply + +Example: +weight@0 { + compatible = "avia,hx711"; + sck-gpios = <&gpio3 10 GPIO_ACTIVE_HIGH>; + dout-gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>; + avdd-suppy = <&avdd>; +}; + diff --git a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt index 3e5b979..8682ab6 100644 --- a/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt +++ b/Documentation/devicetree/bindings/input/tps65218-pwrbutton.txt @@ -8,8 +8,9 @@ This driver provides a simple power button event via an Interrupt. Required properties: - compatible: should be "ti,tps65217-pwrbutton" or "ti,tps65218-pwrbutton" -Required properties for TPS65218: +Required properties: - interrupts: should be one of the following + - <2>: For controllers compatible with tps65217 - <3 IRQ_TYPE_EDGE_BOTH>: For controllers compatible with tps65218 Examples: @@ -17,6 +18,7 @@ Examples: &tps { tps65217-pwrbutton { compatible = "ti,tps65217-pwrbutton"; + interrupts = <2>; }; }; diff --git a/Documentation/devicetree/bindings/mfd/axp20x.txt b/Documentation/devicetree/bindings/mfd/axp20x.txt index 8f3ad9a..b41d260 100644 --- a/Documentation/devicetree/bindings/mfd/axp20x.txt +++ b/Documentation/devicetree/bindings/mfd/axp20x.txt @@ -28,6 +28,9 @@ Optional properties: regulator to drive the OTG VBus, rather then as an input pin which signals whether the board is driving OTG VBus or not. +- x-powers,master-mode: Boolean (axp806 only). Set this when the PMIC is + wired for master mode. The default is slave mode. + - <input>-supply: a phandle to the regulator supply node. May be omitted if inputs are unregulated, such as using the IPSOUT output from the PMIC. diff --git a/Documentation/devicetree/bindings/net/mediatek-net.txt b/Documentation/devicetree/bindings/net/mediatek-net.txt index c010faf..c7194e8 100644 --- a/Documentation/devicetree/bindings/net/mediatek-net.txt +++ b/Documentation/devicetree/bindings/net/mediatek-net.txt @@ -7,7 +7,7 @@ have dual GMAC each represented by a child node.. * Ethernet controller node Required properties: -- compatible: Should be "mediatek,mt7623-eth" +- compatible: Should be "mediatek,mt2701-eth" - reg: Address and length of the register set for the device - interrupts: Should contain the three frame engines interrupts in numeric order. These are fe_int0, fe_int1 and fe_int2. diff --git a/Documentation/devicetree/bindings/net/phy.txt b/Documentation/devicetree/bindings/net/phy.txt index bc1c3c8..62bdc5f 100644 --- a/Documentation/devicetree/bindings/net/phy.txt +++ b/Documentation/devicetree/bindings/net/phy.txt @@ -35,6 +35,15 @@ Optional Properties: - broken-turn-around: If set, indicates the PHY device does not correctly release the turn around line low at the end of a MDIO transaction. +- eee-broken-100tx: +- eee-broken-1000t: +- eee-broken-10gt: +- eee-broken-1000kx: +- eee-broken-10gkx4: +- eee-broken-10gkr: + Mark the corresponding energy efficient ethernet mode as broken and + request the ethernet to stop advertising it. + Example: ethernet-phy@0 { diff --git a/Documentation/devicetree/bindings/net/ti,dp83867.txt b/Documentation/devicetree/bindings/net/ti,dp83867.txt index 5d21141..75bcaa3 100644 --- a/Documentation/devicetree/bindings/net/ti,dp83867.txt +++ b/Documentation/devicetree/bindings/net/ti,dp83867.txt @@ -3,9 +3,11 @@ Required properties: - reg - The ID number for the phy, usually a small integer - ti,rx-internal-delay - RGMII Receive Clock Delay - see dt-bindings/net/ti-dp83867.h - for applicable values + for applicable values. Required only if interface type is + PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_RXID - ti,tx-internal-delay - RGMII Transmit Clock Delay - see dt-bindings/net/ti-dp83867.h - for applicable values + for applicable values. Required only if interface type is + PHY_INTERFACE_MODE_RGMII_ID or PHY_INTERFACE_MODE_RGMII_TXID - ti,fifo-depth - Transmitt FIFO depth- see dt-bindings/net/ti-dp83867.h for applicable values diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt index caf297b..c28d4eb8 100644 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt +++ b/Documentation/devicetree/bindings/pinctrl/pinctrl-palmas.txt @@ -35,6 +35,15 @@ Optional properties: - ti,palmas-enable-dvfs2: Enable DVFS2. Configure pins for DVFS2 mode. Selection primary or secondary function associated to GPADC_START and SYSEN2 pin/pad for DVFS2 interface +- ti,palmas-override-powerhold: This is applicable for PMICs for which + GPIO7 is configured in POWERHOLD mode which has higher priority + over DEV_ON bit and keeps the PMIC supplies on even after the DEV_ON + bit is turned off. This property enables driver to over ride the + POWERHOLD value to GPIO7 so as to turn off the PMIC in power off + scenarios. So for GPIO7 if ti,palmas-override-powerhold is set + then the GPIO_7 field should never be muxed to anything else. + It should be set to POWERHOLD by default and only in case of + power off scenarios the driver will over ride the mux value. This binding uses the following generic properties as defined in pinctrl-bindings.txt: diff --git a/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt b/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt index 98d131a..a11072c 100644 --- a/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt +++ b/Documentation/devicetree/bindings/power/supply/tps65217_charger.txt @@ -2,11 +2,16 @@ TPS65217 Charger Required Properties: -compatible: "ti,tps65217-charger" +-interrupts: TPS65217 interrupt numbers for the AC and USB charger input change. + Should be <0> for the USB charger and <1> for the AC adapter. +-interrupt-names: Should be "USB" and "AC" This node is a subnode of the tps65217 PMIC. Example: tps65217-charger { - compatible = "ti,tps65090-charger"; + compatible = "ti,tps65217-charger"; + interrupts = <0>, <1>; + interrupt-names = "USB", "AC"; }; diff --git a/Documentation/devicetree/bindings/usb/usb-device.txt b/Documentation/devicetree/bindings/usb/usb-device.txt index 1c35e7b..03ab8f5 100644 --- a/Documentation/devicetree/bindings/usb/usb-device.txt +++ b/Documentation/devicetree/bindings/usb/usb-device.txt @@ -11,7 +11,7 @@ Required properties: be used, but a device adhering to this binding may leave out all except for usbVID,PID. - reg: the port number which this device is connecting to, the range - is 1-31. + is 1-255. Example: diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt b/Documentation/devicetree/bindings/usb/usb-xhci.txt index 966885c..7790c81 100644 --- a/Documentation/devicetree/bindings/usb/usb-xhci.txt +++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt @@ -26,6 +26,7 @@ Required properties: Optional properties: - clocks: reference to a clock - usb3-lpm-capable: determines if platform is USB3 LPM capable + - quirk-broken-port-ped: set if the controller has broken port disable mechanism Example: usb@f0931000 { diff --git a/Documentation/devicetree/bindings/vendor-prefixes.txt b/Documentation/devicetree/bindings/vendor-prefixes.txt index f0a48ea..bceffff 100644 --- a/Documentation/devicetree/bindings/vendor-prefixes.txt +++ b/Documentation/devicetree/bindings/vendor-prefixes.txt @@ -38,6 +38,7 @@ atmel Atmel Corporation auo AU Optronics Corporation auvidea Auvidea GmbH avago Avago Technologies +avia avia semiconductor avic Shanghai AVIC Optoelectronics Co., Ltd. axis Axis Communications AB boe BOE Technology Group Co., Ltd. diff --git a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt index 8f3d96a..1f6e101 100644 --- a/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt +++ b/Documentation/devicetree/bindings/watchdog/samsung-wdt.txt @@ -6,10 +6,11 @@ occurred. Required properties: - compatible : should be one among the following - (a) "samsung,s3c2410-wdt" for Exynos4 and previous SoCs - (b) "samsung,exynos5250-wdt" for Exynos5250 - (c) "samsung,exynos5420-wdt" for Exynos5420 - (c) "samsung,exynos7-wdt" for Exynos7 + - "samsung,s3c2410-wdt" for S3C2410 + - "samsung,s3c6410-wdt" for S3C6410, S5PV210 and Exynos4 + - "samsung,exynos5250-wdt" for Exynos5250 + - "samsung,exynos5420-wdt" for Exynos5420 + - "samsung,exynos7-wdt" for Exynos7 - reg : base physical address of the controller and length of memory mapped region. diff --git a/Documentation/filesystems/ext4.txt b/Documentation/filesystems/ext4.txt index 6c0108e..2139ea2 100644 --- a/Documentation/filesystems/ext4.txt +++ b/Documentation/filesystems/ext4.txt @@ -233,7 +233,7 @@ data_err=ignore(*) Just print an error message if an error occurs data_err=abort Abort the journal if an error occurs in a file data buffer in ordered mode. -grpid Give objects the same group ID as their creator. +grpid New objects have the group ID of their parent. bsdgroups nogrpid (*) New objects have the group ID of their creator. diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 922dec8..5f9e514 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -305,6 +305,16 @@ bytes respectively. Such letter suffixes can also be entirely omitted. use by PCI Format: <irq>,<irq>... + acpi_mask_gpe= [HW,ACPI] + Due to the existence of _Lxx/_Exx, some GPEs triggered + by unsupported hardware/firmware features can result in + GPE floodings that cannot be automatically disabled by + the GPE dispatcher. + This facility can be used to prevent such uncontrolled + GPE floodings. + Format: <int> + Support masking of GPEs numbered from 0x00 to 0x7f. + acpi_no_auto_serialize [HW,ACPI] Disable auto-serialization of AML methods AML control methods that contain the opcodes to create @@ -1391,6 +1401,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted. When zero, profiling data is discarded and associated debugfs files are removed at module unload time. + goldfish [X86] Enable the goldfish android emulator platform. + Don't use this when you are not running on the + android emulator + gpt [EFI] Forces disk with valid GPT signature but invalid Protective MBR to be treated as GPT. If the primary GPT is corrupted, it enables the backup/alternate @@ -2626,6 +2640,9 @@ bytes respectively. Such letter suffixes can also be entirely omitted. noalign [KNL,ARM] + noaltinstr [S390] Disables alternative instructions patching + (CPU alternatives feature). + noapic [SMP,APIC] Tells the kernel to not make use of any IOAPICs that may be present in the system. @@ -2677,6 +2694,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. nosmt [KNL,S390] Disable symmetric multithreading (SMT). Equivalent to smt=1. + nospectre_v2 [X86] Disable all mitigations for the Spectre variant 2 + (indirect branch prediction) vulnerability. System may + allow data leaks with this option, which is equivalent + to spectre_v2=off. + noxsave [BUGS=X86] Disables x86 extended register state save and restore using xsave. The kernel will fallback to enabling legacy floating-point and sse state. @@ -2781,11 +2803,11 @@ bytes respectively. Such letter suffixes can also be entirely omitted. nopat [X86] Disable PAT (page attribute table extension of pagetables) support. + nopcid [X86-64] Disable the PCID cpu feature. + norandmaps Don't use address space randomization. Equivalent to echo 0 > /proc/sys/kernel/randomize_va_space - noreplace-paravirt [X86,IA-64,PV_OPS] Don't patch paravirt_ops - noreplace-smp [X86-32,SMP] Don't replace SMP instructions with UP alternatives @@ -3309,6 +3331,21 @@ bytes respectively. Such letter suffixes can also be entirely omitted. pt. [PARIDE] See Documentation/blockdev/paride.txt. + pti= [X86_64] Control Page Table Isolation of user and + kernel address spaces. Disabling this feature + removes hardening, but improves performance of + system calls and interrupts. + + on - unconditionally enable + off - unconditionally disable + auto - kernel detects whether your CPU model is + vulnerable to issues that PTI mitigates + + Not specifying this option is equivalent to pti=auto. + + nopti [X86_64] + Equivalent to pti=off + pty.legacy_count= [KNL] Number of legacy pty's. Overwrites compiled-in default number. @@ -3913,11 +3950,41 @@ bytes respectively. Such letter suffixes can also be entirely omitted. sonypi.*= [HW] Sony Programmable I/O Control Device driver See Documentation/laptops/sonypi.txt + spectre_v2= [X86] Control mitigation of Spectre variant 2 + (indirect branch speculation) vulnerability. + + on - unconditionally enable + off - unconditionally disable + auto - kernel detects whether your CPU model is + vulnerable + + Selecting 'on' will, and 'auto' may, choose a + mitigation method at run time according to the + CPU, the available microcode, the setting of the + CONFIG_RETPOLINE configuration option, and the + compiler with which the kernel was built. + + Specific mitigations can also be selected manually: + + retpoline - replace indirect branches + retpoline,generic - google's original retpoline + retpoline,amd - AMD-specific minimal thunk + + Not specifying this option is equivalent to + spectre_v2=auto. + spia_io_base= [HW,MTD] spia_fio_base= spia_pedr= spia_peddr= + stack_guard_gap= [MM] + override the default stack gap protection. The value + is in page units and it defines how many pages prior + to (for stacks growing down) resp. after (for stacks + growing up) the main stack are reserved for no other + mapping. Default value is 256 pages. + stacktrace [FTRACE] Enabled the stack tracer on boot up. diff --git a/Documentation/media/uapi/v4l/pixfmt-007.rst b/Documentation/media/uapi/v4l/pixfmt-007.rst index 44bb5a7..95a23a2 100644 --- a/Documentation/media/uapi/v4l/pixfmt-007.rst +++ b/Documentation/media/uapi/v4l/pixfmt-007.rst @@ -211,7 +211,13 @@ Colorspace sRGB (V4L2_COLORSPACE_SRGB) The :ref:`srgb` standard defines the colorspace used by most webcams and computer graphics. The default transfer function is ``V4L2_XFER_FUNC_SRGB``. The default Y'CbCr encoding is -``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full range. +``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited range. + +Note that the :ref:`sycc` standard specifies full range quantization, +however all current capture hardware supported by the kernel convert +R'G'B' to limited range Y'CbCr. So choosing full range as the default +would break how applications interpret the quantization range. + The chromaticities of the primary colors and the white reference are: @@ -276,7 +282,7 @@ the following ``V4L2_YCBCR_ENC_601`` encoding as defined by :ref:`sycc`: Y' is clamped to the range [0â¦1] and Cb and Cr are clamped to the range [-0.5â¦0.5]. This transform is identical to one defined in SMPTE -170M/BT.601. The Y'CbCr quantization is full range. +170M/BT.601. The Y'CbCr quantization is limited range. .. _col-adobergb: @@ -288,10 +294,15 @@ The :ref:`adobergb` standard defines the colorspace used by computer graphics that use the AdobeRGB colorspace. This is also known as the :ref:`oprgb` standard. The default transfer function is ``V4L2_XFER_FUNC_ADOBERGB``. The default Y'CbCr encoding is -``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is full -range. The chromaticities of the primary colors and the white reference -are: +``V4L2_YCBCR_ENC_601``. The default Y'CbCr quantization is limited +range. + +Note that the :ref:`oprgb` standard specifies full range quantization, +however all current capture hardware supported by the kernel convert +R'G'B' to limited range Y'CbCr. So choosing full range as the default +would break how applications interpret the quantization range. +The chromaticities of the primary colors and the white reference are: .. tabularcolumns:: |p{4.4cm}|p{4.4cm}|p{8.7cm}| @@ -344,7 +355,7 @@ the following ``V4L2_YCBCR_ENC_601`` encoding: Y' is clamped to the range [0â¦1] and Cb and Cr are clamped to the range [-0.5â¦0.5]. This transform is identical to one defined in SMPTE -170M/BT.601. The Y'CbCr quantization is full range. +170M/BT.601. The Y'CbCr quantization is limited range. .. _col-bt2020: diff --git a/Documentation/speculation.txt b/Documentation/speculation.txt new file mode 100644 index 0000000..e9e6cba --- /dev/null +++ b/Documentation/speculation.txt @@ -0,0 +1,90 @@ +This document explains potential effects of speculation, and how undesirable +effects can be mitigated portably using common APIs. + +=========== +Speculation +=========== + +To improve performance and minimize average latencies, many contemporary CPUs +employ speculative execution techniques such as branch prediction, performing +work which may be discarded at a later stage. + +Typically speculative execution cannot be observed from architectural state, +such as the contents of registers. However, in some cases it is possible to +observe its impact on microarchitectural state, such as the presence or +absence of data in caches. Such state may form side-channels which can be +observed to extract secret information. + +For example, in the presence of branch prediction, it is possible for bounds +checks to be ignored by code which is speculatively executed. Consider the +following code: + + int load_array(int *array, unsigned int index) + { + if (index >= MAX_ARRAY_ELEMS) + return 0; + else + return array[index]; + } + +Which, on arm64, may be compiled to an assembly sequence such as: + + CMP <index>, #MAX_ARRAY_ELEMS + B.LT less + MOV <returnval>, #0 + RET + less: + LDR <returnval>, [<array>, <index>] + RET + +It is possible that a CPU mis-predicts the conditional branch, and +speculatively loads array[index], even if index >= MAX_ARRAY_ELEMS. This +value will subsequently be discarded, but the speculated load may affect +microarchitectural state which can be subsequently measured. + +More complex sequences involving multiple dependent memory accesses may +result in sensitive information being leaked. Consider the following +code, building on the prior example: + + int load_dependent_arrays(int *arr1, int *arr2, int index) + { + int val1, val2, + + val1 = load_array(arr1, index); + val2 = load_array(arr2, val1); + + return val2; + } + +Under speculation, the first call to load_array() may return the value +of an out-of-bounds address, while the second call will influence +microarchitectural state dependent on this value. This may provide an +arbitrary read primitive. + +==================================== +Mitigating speculation side-channels +==================================== + +The kernel provides a generic API to ensure that bounds checks are +respected even under speculation. Architectures which are affected by +speculation-based side-channels are expected to implement these +primitives. + +The array_index_nospec() helper in <linux/nospec.h> can be used to +prevent information from being leaked via side-channels. + +A call to array_index_nospec(index, size) returns a sanitized index +value that is bounded to [0, size) even under cpu speculation +conditions. + +This can be used to protect the earlier load_array() example: + + int load_array(int *array, unsigned int index) + { + if (index >= MAX_ARRAY_ELEMS) + return 0; + else { + index = array_index_nospec(index, MAX_ARRAY_ELEMS); + return array[index]; + } + } diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt index 4d82e31..501af5d 100644 --- a/Documentation/stable_kernel_rules.txt +++ b/Documentation/stable_kernel_rules.txt @@ -124,7 +124,7 @@ specified in the following format in the sign-off area: .. code-block:: none - Cc: <sta...@vger.kernel.org> # 3.3.x- + Cc: <sta...@vger.kernel.org> # 3.3.x The tag has the meaning of: diff --git a/Documentation/virtual/kvm/api.txt b/Documentation/virtual/kvm/api.txt index 1f5eab4..e46c14f 100644 --- a/Documentation/virtual/kvm/api.txt +++ b/Documentation/virtual/kvm/api.txt @@ -2118,6 +2118,9 @@ ARM 32-bit VFP control registers have the following id bit patterns: ARM 64-bit FP registers have the following id bit patterns: 0x4030 0000 0012 0 <regno:12> +ARM firmware pseudo-registers have the following bit pattern: + 0x4030 0000 0014 <regno:16> + arm64 registers are mapped using the lower 32 bits. The upper 16 of that is the register group type, or coprocessor number: @@ -2134,6 +2137,9 @@ arm64 CCSIDR registers are demultiplexed by CSSELR value: arm64 system registers have the following id bit patterns: 0x6030 0000 0013 <op0:2> <op1:3> <crn:4> <crm:4> <op2:3> +arm64 firmware pseudo-registers have the following bit pattern: + 0x6030 0000 0014 <regno:16> + MIPS registers are mapped using the lower 32 bits. The upper 16 of that is the register group type: @@ -2656,7 +2662,8 @@ Possible features: and execute guest code when KVM_RUN is called. - KVM_ARM_VCPU_EL1_32BIT: Starts the CPU in a 32bit mode. Depends on KVM_CAP_ARM_EL1_32BIT (arm64 only). - - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 for the CPU. + - KVM_ARM_VCPU_PSCI_0_2: Emulate PSCI v0.2 (or a future revision + backward compatible with v0.2) for the CPU. Depends on KVM_CAP_ARM_PSCI_0_2. - KVM_ARM_VCPU_PMU_V3: Emulate PMUv3 for the CPU. Depends on KVM_CAP_ARM_PMU_V3. diff --git a/Documentation/virtual/kvm/arm/psci.txt b/Documentation/virtual/kvm/arm/psci.txt new file mode 100644 index 0000000..aafdab8 --- /dev/null +++ b/Documentation/virtual/kvm/arm/psci.txt @@ -0,0 +1,30 @@
_______________________________________________ unionfs-cvs mailing list: http://unionfs.filesystems.org/ unionfs-cvs@fsl.cs.sunysb.edu http://www.fsl.cs.sunysb.edu/mailman/listinfo/unionfs-cvs