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

Reply via email to