Push to branch refs/heads/wrapfs:
8c49eaa0ab9c3d3444051fff34ca88f1a4062c08 -->
  abf23cac580bd29656b630b7226ede59d8351401

 Documentation/admin-guide/kernel-parameters.txt    |   4 +
 Documentation/arm64/silicon-errata.txt             |  44 +-
 Documentation/devicetree/bindings/rng/omap_rng.txt |   3 +-
 Documentation/devicetree/bindings/usb/usb-xhci.txt |   1 +
 .../devicetree/bindings/watchdog/samsung-wdt.txt   |   9 +-
 Documentation/process/stable-kernel-rules.rst      |   2 +-
 Makefile                                           |  18 +-
 arch/arc/include/asm/atomic.h                      |   3 +-
 arch/arc/mm/cache.c                                |   3 +
 arch/arm/boot/dts/am57xx-idk-common.dtsi           |  14 +-
 arch/arm/boot/dts/at91-sama5d2_xplained.dts        |   2 +
 arch/arm/boot/dts/at91-sama5d4_xplained.dts        |   2 +
 arch/arm/boot/dts/bcm5301x.dtsi                    |   4 +-
 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/imx6sx-udoo-neo.dtsi             |   5 -
 arch/arm/boot/dts/qcom-ipq8064.dtsi                |   4 +-
 arch/arm/boot/dts/sama5d2.dtsi                     |   2 +-
 arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts          |   2 +-
 arch/arm/configs/multi_v7_defconfig                |   1 +
 arch/arm/configs/qcom_defconfig                    |   2 +
 arch/arm/include/asm/kvm_mmu.h                     |   9 +-
 arch/arm/include/asm/uaccess.h                     |  44 +-
 arch/arm/kernel/armksyms.c                         |   4 +-
 arch/arm/kernel/smccc-call.S                       |  14 +-
 arch/arm/kvm/mmu.c                                 |  23 +-
 arch/arm/kvm/psci.c                                |   8 +-
 arch/arm/lib/getuser.S                             |   2 +-
 arch/arm/mach-at91/pm.c                            |  18 +-
 arch/arm/mach-omap2/omap-headsmp.S                 |   3 +-
 arch/arm/mach-omap2/omap_hwmod_3xxx_data.c         |  20 +
 arch/arm/mach-pxa/ezx.c                            |  56 +-
 arch/arm64/Kconfig                                 |  10 +
 arch/arm64/boot/dts/renesas/r8a7795.dtsi           |   1 +
 arch/arm64/include/asm/kvm_emulate.h               |   6 +
 arch/arm64/include/asm/kvm_mmu.h                   |   3 +-
 arch/arm64/include/asm/pgtable.h                   |  15 +-
 arch/arm64/kernel/arm64ksyms.c                     |   4 +-
 arch/arm64/kernel/asm-offsets.c                    |   7 +-
 arch/arm64/kernel/cpufeature.c                     |   6 +-
 arch/arm64/kernel/kaslr.c                          |  10 +-
 arch/arm64/kernel/smccc-call.S                     |  23 +-
 arch/arm64/kernel/topology.c                       |   2 -
 arch/arm64/kvm/hyp/tlb.c                           |  64 ++-
 arch/arm64/kvm/sys_regs.c                          |   8 +-
 arch/arm64/mm/dma-mapping.c                        |   9 +-
 arch/arm64/mm/fault.c                              |  42 +-
 arch/arm64/mm/mmu.c                                |  34 +-
 arch/arm64/net/bpf_jit_comp.c                      |   8 +-
 arch/c6x/kernel/ptrace.c                           |  41 --
 arch/h8300/kernel/ptrace.c                         |   8 +-
 arch/metag/include/asm/uaccess.h                   |  15 +-
 arch/metag/kernel/ptrace.c                         |  19 +-
 arch/metag/lib/usercopy.c                          | 312 ++++-------
 arch/mips/Kconfig                                  |   3 +-
 arch/mips/bcm47xx/buttons.c                        |  10 +-
 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/include/asm/checksum.h                   |   2 +
 arch/mips/include/asm/irq.h                        |  12 +
 arch/mips/include/asm/mach-ip27/spaces.h           |   6 +-
 arch/mips/include/asm/spinlock.h                   |   8 +-
 arch/mips/include/asm/stackframe.h                 |   7 +
 arch/mips/kernel/asm-offsets.c                     |   1 +
 arch/mips/kernel/cevt-r4k.c                        |   2 +-
 arch/mips/kernel/cpu-probe.c                       |   2 +-
 arch/mips/kernel/elf.c                             |   2 +-
 arch/mips/kernel/genex.S                           |  85 ++-
 arch/mips/kernel/irq.c                             |  11 +
 arch/mips/kernel/kgdb.c                            |  48 +-
 arch/mips/kernel/mips-r2-to-r6-emul.c              |  12 +-
 arch/mips/kernel/process.c                         | 166 ++++--
 arch/mips/kernel/ptrace.c                          |   3 +-
 arch/mips/kernel/traps.c                           |  17 +-
 arch/mips/lantiq/xway/sysctrl.c                    |  10 +-
 arch/mips/mm/c-r4k.c                               |   2 +
 arch/mips/mm/sc-ip22.c                             |  54 +-
 arch/mips/mm/tlbex.c                               |  25 +-
 arch/mips/pic32/pic32mzda/Makefile                 |   5 +-
 arch/mips/ralink/prom.c                            |   9 +-
 arch/mips/ralink/rt288x.c                          |  10 -
 arch/mips/ralink/rt305x.c                          |  11 -
 arch/mips/ralink/rt3883.c                          |  14 +-
 arch/mips/ralink/timer.c                           |  14 -
 arch/mips/sgi-ip22/Platform                        |   2 +-
 arch/nios2/kernel/prom.c                           |   7 +
 arch/nios2/kernel/setup.c                          |   3 +
 arch/parisc/include/asm/cacheflush.h               |  23 +-
 arch/parisc/include/asm/uaccess.h                  | 139 +++--
 arch/parisc/kernel/cache.c                         |  22 +
 arch/parisc/kernel/module.c                        |   8 +
 arch/parisc/kernel/parisc_ksyms.c                  |  10 -
 arch/parisc/kernel/process.c                       |   4 +
 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                             |  17 +
 arch/powerpc/Kconfig                               |   4 +-
 arch/powerpc/boot/zImage.lds.S                     |   1 +
 arch/powerpc/crypto/crc32c-vpmsum_glue.c           |   5 +-
 arch/powerpc/include/asm/mmu.h                     |   1 +
 arch/powerpc/include/asm/nohash/pgtable.h          |   2 +-
 arch/powerpc/include/asm/reg.h                     |   2 +-
 arch/powerpc/kernel/Makefile                       |   2 +-
 arch/powerpc/kernel/align.c                        |  27 +-
 arch/powerpc/kernel/cpu_setup_power.S              |   4 +
 arch/powerpc/kernel/entry_64.S                     |   6 +-
 arch/powerpc/kernel/hw_breakpoint.c                |   4 +-
 arch/powerpc/kernel/idle_book3s.S                  |  20 +-
 arch/powerpc/kernel/misc_64.S                      |   4 +-
 arch/powerpc/kernel/nvram_64.c                     |   1 +
 arch/powerpc/kernel/setup_64.c                     |   9 +
 arch/powerpc/kvm/book3s_hv.c                       |   3 +-
 arch/powerpc/lib/sstep.c                           |  20 -
 arch/powerpc/mm/hash_native_64.c                   |   7 +-
 arch/powerpc/mm/mmu_context_iommu.c                |   2 +-
 arch/powerpc/perf/core-book3s.c                    |   2 +
 arch/powerpc/perf/isa207-common.c                  | 101 +++-
 arch/powerpc/perf/isa207-common.h                  |   1 +
 arch/powerpc/perf/power9-pmu.c                     |   8 +-
 arch/powerpc/platforms/powernv/opal-wrappers.S     |   2 +-
 arch/powerpc/sysdev/xics/icp-opal.c                |  10 +
 arch/powerpc/sysdev/xics/xics-common.c             |  17 +-
 arch/s390/boot/compressed/misc.c                   |  35 +-
 arch/s390/include/asm/pgtable.h                    |   2 +
 arch/s390/include/asm/processor.h                  |   3 +-
 arch/s390/include/asm/uaccess.h                    |   2 +-
 arch/s390/kernel/crash_dump.c                      |   6 +-
 arch/s390/kernel/setup.c                           |   8 +-
 arch/s390/kernel/topology.c                        |   2 +-
 arch/s390/kvm/kvm-s390.c                           |   3 +
 arch/s390/mm/pgtable.c                             |  19 +-
 arch/sparc/include/asm/pgtable_64.h                |  15 +-
 arch/sparc/kernel/head_64.S                        |   6 +
 arch/sparc/kernel/ptrace_64.c                      |   2 +-
 arch/sparc/lib/GENbzero.S                          |   2 +-
 arch/sparc/lib/NGbzero.S                           |   2 +-
 arch/sparc/mm/init_64.c                            |   2 +-
 arch/x86/boot/boot.h                               |   2 +-
 arch/x86/entry/vdso/vdso32-setup.c                 |  11 +-
 arch/x86/events/core.c                             |   4 +-
 arch/x86/events/intel/lbr.c                        |   3 +
 arch/x86/events/intel/pt.c                         |   6 +
 arch/x86/events/intel/rapl.c                       |   2 +-
 arch/x86/include/asm/elf.h                         |   2 +-
 arch/x86/include/asm/kvm_page_track.h              |   1 +
 arch/x86/include/asm/pkeys.h                       |  15 +-
 arch/x86/include/asm/pmem.h                        |  42 +-
 arch/x86/include/asm/tlbflush.h                    |   2 +-
 arch/x86/include/asm/xen/events.h                  |  11 +
 arch/x86/kernel/apic/io_apic.c                     |   2 +
 arch/x86/kernel/cpu/intel_rdt_rdtgroup.c           |   2 +-
 arch/x86/kernel/cpu/intel_rdt_schemata.c           |   2 +-
 arch/x86/kernel/cpu/mcheck/mce-genpool.c           |   2 +-
 arch/x86/kernel/cpu/mcheck/mce-internal.h          |   2 +-
 arch/x86/kernel/cpu/mcheck/mce.c                   |  24 +-
 arch/x86/kernel/cpu/mcheck/mce_amd.c               |   2 +-
 arch/x86/kernel/ftrace.c                           |  12 +
 arch/x86/kernel/head64.c                           |   1 +
 arch/x86/kernel/kprobes/common.h                   |   2 +-
 arch/x86/kernel/kprobes/core.c                     |   6 +-
 arch/x86/kernel/kprobes/opt.c                      |   2 +-
 arch/x86/kernel/pci-calgary_64.c                   |   2 +-
 arch/x86/kernel/reboot.c                           |  16 +
 arch/x86/kernel/signal_compat.c                    |   4 +-
 arch/x86/kernel/tsc.c                              |   2 +
 arch/x86/kernel/unwind_frame.c                     |  36 +-
 arch/x86/kernel/vm86_32.c                          |   5 +-
 arch/x86/kvm/cpuid.c                               |   6 -
 arch/x86/kvm/page_track.c                          |   8 +
 arch/x86/kvm/vmx.c                                 |  41 +-
 arch/x86/kvm/x86.c                                 |  13 +
 arch/x86/lib/memcpy_64.S                           |   2 +-
 arch/x86/mm/gup.c                                  |   8 +-
 arch/x86/mm/init.c                                 |  41 +-
 arch/x86/mm/kasan_init_64.c                        |   1 +
 arch/x86/mm/kaslr.c                                |   4 +-
 arch/x86/pci/xen.c                                 |  25 +-
 arch/x86/platform/efi/quirks.c                     |   4 +
 arch/x86/platform/goldfish/goldfish.c              |  14 +-
 .../intel-mid/device_libs/platform_mrfld_wdt.c     |   2 +-
 arch/x86/um/ptrace_64.c                            |   2 +-
 arch/x86/xen/apic.c                                |   2 +-
 arch/x86/xen/enlighten.c                           |  21 +-
 arch/x86/xen/mmu.c                                 |   7 +-
 arch/x86/xen/smp.c                                 |   2 +
 arch/x86/xen/time.c                                |   5 +
 arch/xtensa/include/asm/page.h                     |  13 +
 arch/xtensa/kernel/setup.c                         |   4 +-
 block/bio.c                                        |  12 +-
 block/blk-core.c                                   |  39 +-
 block/blk-integrity.c                              |  22 +-
 block/blk-mq.c                                     |  11 +-
 block/partition-generic.c                          |   1 -
 crypto/Kconfig                                     |   1 +
 crypto/Makefile                                    |   2 +
 crypto/ahash.c                                     |  79 ++-
 crypto/algif_aead.c                                | 169 +++++-
 crypto/algif_hash.c                                |   2 +-
 crypto/lrw.c                                       |  23 +-
 crypto/testmgr.h                                   |   2 +-
 crypto/xts.c                                       |  37 +-
 drivers/Makefile                                   |   1 +
 drivers/acpi/Makefile                              |   1 -
 drivers/acpi/acpi_platform.c                       |   8 +-
 drivers/acpi/button.c                              |   2 +-
 drivers/acpi/ec.c                                  |  62 +-
 drivers/acpi/glue.c                                |  12 +-
 drivers/acpi/internal.h                            |   4 +-
 drivers/acpi/nfit/core.c                           |  20 +-
 drivers/acpi/power.c                               |   1 +
 drivers/acpi/scan.c                                |  19 +-
 drivers/acpi/sleep.c                               |  19 +
 drivers/ata/ahci_da850.c                           |  33 +-
 drivers/auxdisplay/img-ascii-lcd.c                 |   1 +
 drivers/bcma/main.c                                |   4 +
 drivers/block/loop.c                               |  32 +-
 drivers/block/zram/zram_drv.c                      |   6 +-
 drivers/bluetooth/ath3k.c                          |   2 +
 drivers/bluetooth/btusb.c                          |   1 +
 drivers/bluetooth/hci_bcm.c                        |   5 +-
 drivers/bluetooth/hci_intel.c                      |  13 +-
 drivers/char/Kconfig                               |   5 +-
 drivers/char/hw_random/amd-rng.c                   |  42 +-
 drivers/char/hw_random/geode-rng.c                 |  50 +-
 drivers/char/hw_random/omap-rng.c                  |  16 +-
 drivers/char/ipmi/ipmi_ssif.c                      |   4 +-
 drivers/char/mem.c                                 |  82 ++-
 drivers/char/ppdev.c                               |  11 +-
 drivers/char/random.c                              |  84 +--
 drivers/char/tpm/tpm-chip.c                        |   8 +-
 drivers/char/tpm/tpm-interface.c                   |  53 +-
 drivers/char/tpm/tpm.h                             |   5 +
 drivers/char/tpm/tpm2-cmd.c                        |   2 +-
 drivers/char/tpm/tpm_tis.c                         |   4 +-
 drivers/char/tpm/tpm_tis_core.c                    |   6 +-
 drivers/char/tpm/tpm_tis_core.h                    |   2 +-
 drivers/char/virtio_console.c                      |  12 +-
 drivers/clk/Makefile                               |   2 +
 drivers/clk/rockchip/clk-rk3036.c                  |   2 +-
 drivers/clk/sunxi-ng/ccu-sun6i-a31.c               |   2 +-
 drivers/clk/sunxi-ng/ccu_mp.c                      |   8 +
 drivers/cpufreq/cpufreq.c                          |  29 +-
 drivers/cpuidle/sysfs.c                            |  12 +
 drivers/crypto/caam/caamhash.c                     |  25 +-
 drivers/crypto/caam/caampkc.c                      |   2 +-
 drivers/crypto/caam/ctrl.c                         |   3 +-
 drivers/crypto/ccp/ccp-dev-v3.c                    | 120 ++--
 drivers/crypto/ccp/ccp-dev-v5.c                    | 115 ++--
 drivers/crypto/ccp/ccp-dev.c                       |   5 +-
 drivers/crypto/ccp/ccp-dev.h                       |  13 +-
 drivers/crypto/ccp/ccp-dmaengine.c                 |  42 ++
 drivers/crypto/ccp/ccp-pci.c                       |   2 +
 drivers/crypto/s5p-sss.c                           | 130 +++--
 drivers/crypto/vmx/aes_cbc.c                       |  47 +-
 drivers/crypto/vmx/aes_xts.c                       |  32 +-
 drivers/dax/Kconfig                                |   1 +
 drivers/dax/dax.c                                  |  83 +--
 drivers/devfreq/devfreq.c                          |  34 +-
 drivers/devfreq/governor.h                         |   2 +
 drivers/devfreq/governor_passive.c                 |   6 +
 drivers/dma-buf/dma-buf.c                          |   3 +
 drivers/dma/ipu/ipu_irq.c                          |   2 +-
 drivers/firmware/efi/arm-runtime.c                 |   1 +
 drivers/firmware/efi/libstub/gop.c                 |   6 +-
 drivers/firmware/qcom_scm-64.c                     |  13 +-
 drivers/gpio/gpiolib-acpi.c                        |   4 +-
 drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c            |   1 +
 drivers/gpu/drm/amd/amdgpu/amdgpu_pm.c             |   3 +-
 drivers/gpu/drm/amd/amdgpu/dce_v11_0.c             |   6 +
 drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c              | 330 +++++------
 drivers/gpu/drm/amd/amdgpu/si_dpm.c                |  10 +
 drivers/gpu/drm/armada/Makefile                    |   2 +
 drivers/gpu/drm/ast/ast_drv.h                      |   6 +-
 drivers/gpu/drm/ast/ast_main.c                     | 264 +++++----
 drivers/gpu/drm/ast/ast_post.c                     |  55 +-
 drivers/gpu/drm/drm_atomic_helper.c                |  13 +-
 drivers/gpu/drm/drm_edid.c                         |   9 +-
 drivers/gpu/drm/drm_fb_helper.c                    |   9 +-
 drivers/gpu/drm/drm_fops.c                         |   2 +-
 drivers/gpu/drm/etnaviv/etnaviv_gpu.c              |   7 +-
 drivers/gpu/drm/hisilicon/hibmc/hibmc_drm_fbdev.c  |   2 +-
 drivers/gpu/drm/i915/gvt/execlist.c                |   3 +-
 drivers/gpu/drm/i915/gvt/handlers.c                |   2 +-
 drivers/gpu/drm/i915/gvt/kvmgt.c                   |   6 +-
 drivers/gpu/drm/i915/gvt/sched_policy.c            |   4 +-
 drivers/gpu/drm/i915/i915_drv.c                    |   9 +-
 drivers/gpu/drm/i915/i915_drv.h                    |   4 +-
 drivers/gpu/drm/i915/i915_gem.c                    |  25 +-
 drivers/gpu/drm/i915/i915_gem_execbuffer.c         |  52 +-
 drivers/gpu/drm/i915/i915_gem_gtt.c                |  21 +-
 drivers/gpu/drm/i915/i915_gem_internal.c           |  37 +-
 drivers/gpu/drm/i915/i915_gem_request.c            |   7 +-
 drivers/gpu/drm/i915/i915_gem_shrinker.c           |   2 +-
 drivers/gpu/drm/i915/i915_gem_stolen.c             |   5 +
 drivers/gpu/drm/i915/i915_irq.c                    | 152 ++---
 drivers/gpu/drm/i915/i915_pci.c                    |   1 +
 drivers/gpu/drm/i915/intel_display.c               |  33 +-
 drivers/gpu/drm/i915/intel_dp.c                    |  10 +-
 drivers/gpu/drm/i915/intel_drv.h                   |   2 +
 drivers/gpu/drm/i915/intel_fbdev.c                 |  10 +-
 drivers/gpu/drm/i915/intel_hdmi.c                  |  24 +-
 drivers/gpu/drm/i915/intel_hotplug.c               |  14 +-
 drivers/gpu/drm/i915/intel_lrc.c                   |   3 +-
 drivers/gpu/drm/i915/intel_lspcon.c                |   5 +-
 drivers/gpu/drm/i915/intel_opregion.c              |  13 +-
 drivers/gpu/drm/i915/intel_pm.c                    |  23 +-
 drivers/gpu/drm/i915/intel_uncore.c                |  13 +-
 drivers/gpu/drm/imx/imx-tve.c                      |   7 +-
 drivers/gpu/drm/mga/mga_dma.c                      |  20 +-
 drivers/gpu/drm/mga/mga_drv.c                      |  37 --
 drivers/gpu/drm/msm/adreno/a5xx_gpu.c              |   2 +
 drivers/gpu/drm/mxsfb/mxsfb_drv.c                  |   4 +-
 drivers/gpu/drm/nouveau/nv50_display.c             |  10 +-
 drivers/gpu/drm/nouveau/nvkm/engine/device/base.c  |  32 +-
 drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv31.c    |   2 +-
 drivers/gpu/drm/nouveau/nvkm/engine/mpeg/nv44.c    |   2 +-
 drivers/gpu/drm/radeon/radeon_bios.c               |  66 ++-
 drivers/gpu/drm/radeon/radeon_ttm.c                |   4 +-
 drivers/gpu/drm/sti/sti_gdp.c                      |  12 +-
 drivers/gpu/drm/ttm/ttm_bo.c                       |   4 +-
 drivers/gpu/drm/ttm/ttm_bo_vm.c                    |  12 +
 drivers/gpu/drm/ttm/ttm_object.c                   |  10 +-
 drivers/gpu/drm/vc4/vc4_crtc.c                     |  13 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.c                |  11 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_drv.h                |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_fence.c              |  79 ++-
 drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c              |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_resource.c           |   4 +-
 drivers/gpu/drm/vmwgfx/vmwgfx_surface.c            |  31 +-
 drivers/hid/hid-sony.c                             |   2 +
 drivers/hid/wacom_sys.c                            |  16 +-
 drivers/hid/wacom_wac.c                            |   5 +-
 drivers/hv/channel.c                               |  38 +-
 drivers/hv/channel_mgmt.c                          |  36 +-
 drivers/hv/connection.c                            |  17 +-
 drivers/hv/hv.c                                    |  15 +-
 drivers/hv/hv_fcopy.c                              |   4 +
 drivers/hv/hv_kvp.c                                |   4 +
 drivers/hv/hv_snapshot.c                           |   4 +
 drivers/hv/hyperv_vmbus.h                          |   2 +-
 drivers/hv/ring_buffer.c                           |   7 +
 drivers/hwmon/it87.c                               |  65 ++-
 drivers/hwtracing/coresight/coresight-etm-perf.c   |   1 +
 drivers/hwtracing/coresight/coresight-stm.c        |   2 +-
 drivers/hwtracing/intel_th/core.c                  |   4 +-
 drivers/i2c/busses/i2c-bcm2835.c                   |   4 +-
 drivers/i2c/i2c-mux.c                              |   2 +
 drivers/iio/adc/ti_am335x_adc.c                    |  13 +-
 .../iio/common/hid-sensors/hid-sensor-trigger.c    |   6 +-
 drivers/iio/counter/104-quad-8.c                   |   2 +-
 drivers/iio/gyro/bmg160_core.c                     |  12 +
 drivers/iio/industrialio-core.c                    |   7 +-
 drivers/iio/magnetometer/ak8974.c                  |   4 +-
 drivers/iio/pressure/mpl115.c                      |   1 +
 drivers/iio/pressure/mpl3115.c                     |   4 +-
 drivers/iio/pressure/st_pressure_core.c            |   1 +
 drivers/infiniband/core/cma.c                      |   3 +
 drivers/infiniband/core/sysfs.c                    |   2 +-
 drivers/infiniband/core/verbs.c                    |   8 +-
 drivers/infiniband/hw/hfi1/ruc.c                   |  26 +-
 drivers/infiniband/hw/hfi1/verbs.c                 |   4 +-
 drivers/infiniband/hw/hfi1/verbs.h                 |   6 +-
 drivers/infiniband/hw/mlx4/main.c                  |   1 +
 drivers/infiniband/hw/mlx4/mcg.c                   |   3 +-
 drivers/infiniband/hw/mlx5/main.c                  |  14 +-
 drivers/infiniband/hw/mlx5/srq.c                   |  11 +-
 drivers/infiniband/ulp/ipoib/ipoib_cm.c            |  12 +-
 drivers/infiniband/ulp/ipoib/ipoib_fs.c            |   3 +
 drivers/infiniband/ulp/ipoib/ipoib_main.c          |  80 ++-
 drivers/infiniband/ulp/ipoib/ipoib_vlan.c          |   3 -
 drivers/infiniband/ulp/srp/ib_srp.c                |  61 +-
 drivers/infiniband/ulp/srp/ib_srp.h                |   1 +
 drivers/input/joystick/iforce/iforce-usb.c         |   3 +
 drivers/input/joystick/xpad.c                      |   2 +
 drivers/input/misc/cm109.c                         |   4 +
 drivers/input/misc/ims-pcu.c                       |   4 +
 drivers/input/misc/yealink.c                       |   4 +
 drivers/input/mouse/alps.c                         |  72 ++-
 drivers/input/mouse/alps.h                         |  11 +
 drivers/input/mouse/elan_i2c_core.c                |  20 +-
 drivers/input/mouse/elantech.c                     |   8 +
 drivers/input/serio/i8042-x86ia64io.h              |  14 +
 drivers/input/tablet/hanwang.c                     |   3 +
 drivers/input/tablet/kbtab.c                       |   3 +
 drivers/input/touchscreen/sur40.c                  |   3 +
 drivers/iommu/exynos-iommu.c                       |   8 +-
 drivers/iommu/intel-iommu.c                        |   5 +-
 drivers/irqchip/irq-gic-v3-its.c                   |  16 +
 drivers/irqchip/irq-imx-gpcv2.c                    |   2 +
 drivers/isdn/gigaset/bas-gigaset.c                 |   3 +
 drivers/leds/leds-ktd2692.c                        |   8 +-
 drivers/md/dm-cache-target.c                       |   6 +-
 drivers/md/dm-crypt.c                              |   8 +-
 drivers/md/dm-era-target.c                         |   8 +-
 drivers/md/dm-ioctl.c                              |   2 +-
 drivers/md/dm-raid.c                               |  14 +-
 drivers/md/dm-round-robin.c                        |  67 +--
 drivers/md/dm-rq.c                                 |   6 +-
 drivers/md/dm-stats.c                              |   1 +
 drivers/md/dm-thin.c                               |   1 +
 drivers/md/dm-verity-fec.c                         |  18 +-
 drivers/md/dm-verity-fec.h                         |   4 +
 drivers/md/dm.c                                    |  58 ++
 drivers/md/linear.c                                |  39 +-
 drivers/md/linear.h                                |   1 +
 drivers/md/raid1.c                                 |   2 +
 drivers/md/raid10.c                                |  21 +-
 drivers/md/raid5.c                                 |   3 +-
 drivers/media/dvb-frontends/cxd2820r_core.c        |   2 +-
 drivers/media/media-device.c                       |   2 +-
 drivers/media/pci/dm1105/Kconfig                   |   2 +-
 drivers/media/platform/am437x/am437x-vpfe.c        |   2 +-
 drivers/media/rc/lirc_dev.c                        |   4 +-
 drivers/media/rc/rc-main.c                         |   7 +-
 drivers/media/rc/serial_ir.c                       | 115 ++--
 drivers/media/usb/dvb-usb-v2/dvb_usb_core.c        |   9 +-
 drivers/media/usb/dvb-usb/cxusb.c                  |  15 +-
 drivers/media/usb/dvb-usb/dvb-usb-firmware.c       |  33 +-
 drivers/media/usb/dvb-usb/dw2102.c                 | 244 ++++----
 drivers/media/usb/uvc/uvc_queue.c                  |   2 +-
 drivers/memory/atmel-ebi.c                         |  27 +-
 drivers/misc/cxl/cxl.h                             |   3 +
 drivers/misc/cxl/main.c                            |   2 +-
 drivers/misc/cxl/pci.c                             |   9 +
 drivers/misc/cxl/vphb.c                            |  61 +-
 drivers/misc/mei/bus-fixup.c                       |  14 +-
 drivers/misc/mei/init.c                            |   8 +-
 drivers/misc/mei/main.c                            |  48 +-
 drivers/mmc/core/block.c                           |   1 +
 drivers/mmc/core/mmc.c                             |   2 +-
 drivers/mmc/host/dw_mmc.c                          |  23 +-
 drivers/mmc/host/sdhci-acpi.c                      |   5 +-
 drivers/mmc/host/sdhci-esdhc-imx.c                 |   1 +
 drivers/mmc/host/sdhci-of-arasan.c                 |  14 +-
 drivers/mmc/host/sdhci-of-at91.c                   |  30 +-
 drivers/mmc/host/sdhci-of-esdhc.c                  |  18 +-
 drivers/mmc/host/sdhci-pci-core.c                  |   4 +
 drivers/mmc/host/sdhci.c                           |  10 +-
 drivers/mmc/host/ushc.c                            |   3 +
 drivers/mtd/maps/pmcmsp-flash.c                    |   4 +-
 drivers/mtd/nand/Kconfig                           |   1 +
 drivers/mtd/nand/fsl_ifc_nand.c                    |   8 +-
 drivers/mtd/ubi/upd.c                              |   8 +-
 drivers/net/bonding/bond_main.c                    |   1 +
 drivers/net/can/ifi_canfd/ifi_canfd.c              |   2 +-
 drivers/net/can/usb/gs_usb.c                       |  57 +-
 drivers/net/can/usb/usb_8dev.c                     |   9 +-
 drivers/net/ethernet/amd/xgbe/xgbe-common.h        |  30 +-
 drivers/net/ethernet/amd/xgbe/xgbe-dev.c           |  22 +-
 drivers/net/ethernet/amd/xgbe/xgbe-drv.c           | 116 ++--
 drivers/net/ethernet/amd/xgbe/xgbe-phy-v2.c        |  24 +
 drivers/net/ethernet/broadcom/bnxt/bnxt.c          |   3 +-
 drivers/net/ethernet/broadcom/genet/bcmgenet.c     |   6 +-
 drivers/net/ethernet/broadcom/genet/bcmmii.c       |  15 -
 drivers/net/ethernet/cadence/macb.c                |  18 +-
 drivers/net/ethernet/freescale/dpaa/dpaa_eth.c     |   2 +-
 drivers/net/ethernet/marvell/mvpp2.c               |   2 +-
 drivers/net/ethernet/mellanox/mlx5/core/cmd.c      |   4 +
 drivers/net/ethernet/mellanox/mlx5/core/en.h       |   7 +-
 .../net/ethernet/mellanox/mlx5/core/en_ethtool.c   |   1 +
 .../ethernet/mellanox/mlx5/core/en_fs_ethtool.c    |   1 +
 drivers/net/ethernet/mellanox/mlx5/core/en_main.c  |  48 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_rep.c   |   2 -
 drivers/net/ethernet/mellanox/mlx5/core/en_rx.c    |  18 +-
 drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    |  75 ++-
 drivers/net/ethernet/mellanox/mlx5/core/en_tx.c    |   5 +-
 drivers/net/ethernet/mellanox/mlx5/core/eswitch.h  |   6 +
 .../ethernet/mellanox/mlx5/core/eswitch_offloads.c |  58 +-
 drivers/net/ethernet/mellanox/mlx5/core/lag.c      |   5 +-
 drivers/net/ethernet/mellanox/mlx5/core/main.c     |   4 +-
 .../net/ethernet/mellanox/mlxsw/spectrum_router.c  |  30 +-
 drivers/net/ethernet/renesas/sh_eth.c              | 122 ++--
 drivers/net/ethernet/ti/Kconfig                    |   2 +-
 drivers/net/geneve.c                               |   4 +-
 drivers/net/macsec.c                               |  27 +-
 drivers/net/macvlan.c                              |  11 +-
 drivers/net/phy/dp83640.c                          |   2 -
 drivers/net/phy/mdio-mux-bcm-iproc.c               |   5 +-
 drivers/net/phy/phy.c                              |  42 +-
 drivers/net/team/team.c                            |   1 +
 drivers/net/tun.c                                  |  18 +-
 drivers/net/usb/qmi_wwan.c                         |   3 +
 drivers/net/vrf.c                                  |   9 +-
 drivers/net/vxlan.c                                |  28 +-
 drivers/net/wireless/ath/ath10k/core.c             |  14 +-
 drivers/net/wireless/ath/ath10k/hw.c               |   2 +-
 drivers/net/wireless/ath/ath5k/mac80211-ops.c      |   3 +-
 drivers/net/wireless/ath/ath9k/ar9003_eeprom.h     |   4 +-
 drivers/net/wireless/ath/ath9k/ath9k.h             |   1 +
 drivers/net/wireless/ath/ath9k/init.c              |   1 +
 drivers/net/wireless/ath/ath9k/mac.c               |  44 +-
 drivers/net/wireless/ath/ath9k/mac.h               |   1 +
 drivers/net/wireless/ath/ath9k/main.c              |  27 +-
 .../wireless/broadcom/brcm80211/brcmfmac/core.c    |  23 +-
 .../net/wireless/broadcom/brcm80211/brcmfmac/p2p.c |   8 +-
 .../wireless/broadcom/brcm80211/brcmfmac/sdio.c    |   2 +-
 drivers/net/wireless/intel/iwlwifi/iwl-6000.c      |   2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/d3.c        |  13 +-
 drivers/net/wireless/intel/iwlwifi/mvm/debugfs.c   |   2 +
 drivers/net/wireless/intel/iwlwifi/mvm/fw-dbg.c    |  15 +-
 drivers/net/wireless/intel/iwlwifi/mvm/fw.c        |  23 +-
 drivers/net/wireless/intel/iwlwifi/mvm/mac80211.c  |   2 +-
 drivers/net/wireless/intel/iwlwifi/mvm/rxmq.c      |   3 +-
 drivers/net/wireless/intel/iwlwifi/mvm/sta.c       |  33 +-
 drivers/net/wireless/intel/iwlwifi/mvm/tx.c        |  80 +--
 drivers/net/wireless/intel/iwlwifi/pcie/internal.h |   2 +-
 drivers/net/wireless/intel/iwlwifi/pcie/trans.c    |  16 +-
 drivers/net/wireless/intel/iwlwifi/pcie/tx.c       |  23 +-
 drivers/net/wireless/marvell/mwifiex/11n_aggr.c    |  19 +-
 drivers/net/wireless/marvell/mwifiex/debugfs.c     |   3 +-
 drivers/net/wireless/marvell/mwifiex/main.c        |  16 +-
 drivers/net/wireless/marvell/mwifiex/pcie.c        |  38 +-
 drivers/net/wireless/marvell/mwifiex/sta_ioctl.c   |   2 -
 drivers/net/wireless/ralink/rt2x00/rt2x00usb.c     |  17 +-
 drivers/net/wireless/realtek/rtlwifi/pci.h         |   4 +-
 .../net/wireless/realtek/rtlwifi/rtl8192ee/hw.c    |   2 +-
 .../net/wireless/realtek/rtlwifi/rtl8821ae/hw.c    |   2 +-
 drivers/net/wireless/realtek/rtlwifi/usb.c         |  18 +
 drivers/net/wireless/realtek/rtlwifi/usb.h         |   3 +-
 drivers/nvdimm/btt_devs.c                          |   2 +-
 drivers/nvdimm/bus.c                               |   6 +
 drivers/nvdimm/claim.c                             |  33 +-
 drivers/nvdimm/dax_devs.c                          |   2 +-
 drivers/nvdimm/dimm_devs.c                         |  77 +--
 drivers/nvdimm/namespace_devs.c                    |  18 +-
 drivers/nvdimm/nd.h                                |   1 +
 drivers/nvdimm/pfn_devs.c                          |   8 +-
 drivers/nvdimm/pmem.c                              |  37 +-
 drivers/nvdimm/region_devs.c                       |  20 +-
 drivers/nvme/host/core.c                           |   6 +-
 drivers/nvme/host/pci.c                            |   4 +-
 drivers/parport/share.c                            |   6 +-
 drivers/pci/host/pci-hyperv.c                      |   8 +-
 drivers/pci/host/pci-thunder-pem.c                 |  64 ++-
 drivers/pci/host/pci-xgene.c                       |   7 +-
 drivers/pci/host/pcie-altera.c                     |  10 +-
 drivers/pci/host/pcie-iproc-bcma.c                 |  24 +-
 drivers/pci/host/pcie-iproc-platform.c             |  19 +-
 drivers/pci/host/pcie-iproc.h                      |   1 +
 drivers/pci/hotplug/pnv_php.c                      |  54 +-
 drivers/pci/quirks.c                               | 100 +++-
 drivers/phy/Kconfig                                |   1 +
 drivers/phy/phy-qcom-ufs.c                         |  11 +-
 drivers/pinctrl/qcom/pinctrl-msm.c                 |   4 -
 drivers/platform/goldfish/pdev_bus.c               |  13 +-
 drivers/platform/x86/acer-wmi.c                    |  22 +-
 drivers/platform/x86/asus-wmi.c                    |  23 +-
 drivers/platform/x86/intel_pmc_core.c              |   6 +-
 drivers/power/reset/Kconfig                        |   2 +-
 drivers/power/reset/at91-poweroff.c                |  54 +-
 drivers/power/reset/at91-sama5d2_shdwc.c           |  49 +-
 drivers/power/supply/bq24190_charger.c             | 182 +++---
 drivers/power/supply/lp8788-charger.c              |   2 +-
 drivers/pwm/pwm-pca9685.c                          |  11 -
 drivers/pwm/pwm-rockchip.c                         |  40 +-
 drivers/regulator/core.c                           |   5 +-
 drivers/remoteproc/qcom_mdt_loader.c               |   7 +-
 drivers/reset/core.c                               |   2 +-
 drivers/rtc/Kconfig                                |   2 +-
 drivers/rtc/rtc-sun6i.c                            |  30 +-
 drivers/rtc/rtc-tegra.c                            |  28 +-
 drivers/s390/block/dcssblk.c                       |   2 +-
 drivers/s390/cio/ioasm.c                           |   8 +-
 drivers/s390/cio/qdio_thinint.c                    |   8 +-
 drivers/scsi/Kconfig                               |   2 +-
 drivers/scsi/aacraid/src.c                         |  21 +-
 drivers/scsi/device_handler/scsi_dh_alua.c         |  38 +-
 drivers/scsi/libiscsi.c                            |  26 +-
 drivers/scsi/libsas/sas_ata.c                      |   2 +-
 drivers/scsi/lpfc/lpfc_hw4.h                       |   2 +
 drivers/scsi/lpfc/lpfc_init.c                      |   1 +
 drivers/scsi/lpfc/lpfc_sli.c                       |   9 +-
 drivers/scsi/mpt3sas/mpt3sas_base.h                |   3 -
 drivers/scsi/mpt3sas/mpt3sas_scsih.c               |  19 +-
 drivers/scsi/qedi/qedi_debugfs.c                   |  16 +-
 drivers/scsi/qedi/qedi_fw.c                        |   4 +-
 drivers/scsi/qedi/qedi_gbl.h                       |   8 +-
 drivers/scsi/qedi/qedi_iscsi.c                     |  12 +-
 drivers/scsi/qla2xxx/qla_attr.c                    |   4 +-
 drivers/scsi/qla2xxx/qla_def.h                     |   6 +-
 drivers/scsi/qla2xxx/qla_init.c                    |   1 +
 drivers/scsi/qla2xxx/qla_isr.c                     |   7 +-
 drivers/scsi/qla2xxx/qla_mid.c                     |  14 +-
 drivers/scsi/qla2xxx/qla_os.c                      |  27 +-
 drivers/scsi/qla2xxx/qla_target.c                  |  14 +-
 drivers/scsi/scsi_dh.c                             |  22 +-
 drivers/scsi/scsi_lib.c                            |  42 +-
 drivers/scsi/scsi_priv.h                           |   3 -
 drivers/scsi/sd.c                                  |  40 +-
 drivers/scsi/sg.c                                  |   6 +
 drivers/scsi/smartpqi/smartpqi_init.c              |   8 +-
 drivers/scsi/sr.c                                  |   6 +-
 drivers/scsi/storvsc_drv.c                         |  59 +-
 drivers/spi/spi-armada-3700.c                      |   1 -
 drivers/spi/spi-s3c64xx.c                          |   2 +-
 drivers/staging/android/ashmem.c                   |   1 +
 drivers/staging/comedi/drivers/jr3_pci.c           |  13 +-
 drivers/staging/emxx_udc/emxx_udc.c                |   4 +-
 drivers/staging/gdm724x/gdm_mux.c                  |   3 +-
 drivers/staging/greybus/loopback.c                 |   9 +-
 drivers/staging/lustre/lnet/selftest/rpc.c         |   2 +-
 drivers/staging/lustre/lustre/llite/lproc_llite.c  |  27 +-
 .../staging/lustre/lustre/ptlrpc/pack_generic.c    |   1 +
 drivers/staging/rtl8188eu/core/rtw_recv.c          |   3 +
 drivers/staging/rtl8712/rtl871x_recv.c             |   7 +-
 drivers/staging/vt6656/usbpipe.c                   |  31 +-
 drivers/staging/wilc1000/linux_wlan.c              |   3 +-
 drivers/staging/wlan-ng/p80211netdev.c             |   2 +-
 drivers/target/iscsi/iscsi_target.c                |   1 +
 drivers/target/iscsi/iscsi_target_configfs.c       |   1 +
 drivers/target/iscsi/iscsi_target_login.c          |   1 +
 drivers/target/iscsi/iscsi_target_parameters.c     |  16 -
 drivers/target/iscsi/iscsi_target_util.c           |  12 +-
 drivers/target/target_core_device.c                |  10 +-
 drivers/target/target_core_fabric_configfs.c       |   5 +
 drivers/target/target_core_file.c                  |   3 +-
 drivers/target/target_core_pscsi.c                 |  47 +-
 drivers/target/target_core_sbc.c                   |  15 +-
 drivers/target/target_core_tpg.c                   |   7 +-
 drivers/target/target_core_transport.c             |  31 +-
 drivers/target/target_core_user.c                  |  92 ++-
 drivers/tty/n_hdlc.c                               | 132 ++---
 drivers/tty/pty.c                                  |   7 +-
 drivers/tty/serial/8250/8250_omap.c                |  17 +-
 drivers/tty/serial/8250/8250_pci.c                 |  13 +
 drivers/tty/serial/atmel_serial.c                  |   8 +
 drivers/tty/serial/msm_serial.c                    |   1 +
 drivers/tty/serial/mxs-auart.c                     |   2 +-
 drivers/tty/serial/omap-serial.c                   |   9 +-
 drivers/tty/serial/samsung.c                       |  15 +-
 drivers/usb/chipidea/ci.h                          |   3 -
 drivers/usb/chipidea/ci_hdrc_msm.c                 |   4 +-
 drivers/usb/chipidea/core.c                        |  32 --
 drivers/usb/chipidea/otg.c                         |  80 ++-
 drivers/usb/class/cdc-wdm.c                        | 103 +---
 drivers/usb/class/usbtmc.c                         |  18 +-
 drivers/usb/core/config.c                          |  10 +
 drivers/usb/core/driver.c                          |  21 +
 drivers/usb/core/file.c                            |   9 +-
 drivers/usb/core/hcd.c                             |   7 +-
 drivers/usb/core/hub.c                             |  13 +-
 drivers/usb/core/quirks.c                          |   8 +
 drivers/usb/dwc2/core.c                            |   2 +-
 drivers/usb/dwc3/dwc3-omap.c                       |   1 +
 drivers/usb/dwc3/gadget.c                          |  26 +-
 drivers/usb/dwc3/gadget.h                          |  14 +-
 drivers/usb/dwc3/host.c                            |  21 +-
 drivers/usb/gadget/Kconfig                         |   1 +
 drivers/usb/gadget/function/f_acm.c                |   4 +-
 drivers/usb/gadget/function/f_fs.c                 |  15 +-
 drivers/usb/gadget/function/f_hid.c                | 188 +++++--
 drivers/usb/gadget/function/f_uvc.c                |   9 +-
 drivers/usb/gadget/udc/core.c                      |  45 +-
 drivers/usb/gadget/udc/dummy_hcd.c                 |   2 +
 drivers/usb/gadget/udc/fsl_udc_core.c              |  10 +-
 drivers/usb/host/ehci-exynos.c                     |   2 +
 drivers/usb/host/ohci-at91.c                       |   4 +-
 drivers/usb/host/ohci-exynos.c                     |   2 +
 drivers/usb/host/xhci-dbg.c                        |   2 +-
 drivers/usb/host/xhci-hub.c                        |   6 +
 drivers/usb/host/xhci-mem.c                        |  13 +-
 drivers/usb/host/xhci-pci.c                        |   3 +
 drivers/usb/host/xhci-plat.c                       |   9 +-
 drivers/usb/host/xhci-ring.c                       |   3 +
 drivers/usb/host/xhci.h                            |   4 +
 drivers/usb/misc/idmouse.c                         |   3 +
 drivers/usb/misc/iowarrior.c                       |  21 +-
 drivers/usb/misc/lvstest.c                         |   4 +
 drivers/usb/misc/usbtest.c                         |   1 +
 drivers/usb/misc/uss720.c                          |   5 +
 drivers/usb/musb/da8xx.c                           |   6 +-
 drivers/usb/musb/musb_core.c                       |   2 +-
 drivers/usb/musb/musb_cppi41.c                     |  23 +-
 drivers/usb/serial/ark3116.c                       |  38 +-
 drivers/usb/serial/ch341.c                         |  27 +-
 drivers/usb/serial/console.c                       |   1 +
 drivers/usb/serial/cp210x.c                        |   2 +
 drivers/usb/serial/digi_acceleport.c               |  52 +-
 drivers/usb/serial/ftdi_sio.c                      |  39 +-
 drivers/usb/serial/ftdi_sio_ids.h                  |   6 +
 drivers/usb/serial/io_edgeport.c                   |  48 +-
 drivers/usb/serial/io_ti.c                         |   8 +-
 drivers/usb/serial/keyspan_pda.c                   |  19 +-
 drivers/usb/serial/mct_u232.c                      |   6 +-
 drivers/usb/serial/mos7840.c                       |   4 +-
 drivers/usb/serial/omninet.c                       |   6 -
 drivers/usb/serial/opticon.c                       |   2 +-
 drivers/usb/serial/option.c                        |  17 +-
 drivers/usb/serial/qcserial.c                      |   2 +
 drivers/usb/serial/quatech2.c                      |  24 +-
 drivers/usb/serial/safe_serial.c                   |   5 +
 drivers/usb/serial/spcp8x5.c                       |   8 +-
 drivers/usb/serial/ssu100.c                        |  31 +-
 drivers/usb/serial/ti_usb_3410_5052.c              |  12 +-
 drivers/usb/storage/unusual_devs.h                 |  14 +
 drivers/usb/wusbcore/wa-hc.c                       |   3 +
 drivers/uwb/hwa-rc.c                               |   3 +
 drivers/uwb/i1480/dfu/usb.c                        |   3 +
 drivers/vfio/vfio.c                                |   8 +-
 drivers/vfio/vfio_iommu_type1.c                    | 110 ++--
 drivers/video/console/fbcon.c                      |  67 ++-
 drivers/video/fbdev/efifb.c                        |  66 ++-
 drivers/video/fbdev/xen-fbfront.c                  |   4 +-
 drivers/virtio/virtio_balloon.c                    |   6 +
 drivers/vme/vme.c                                  |  15 +
 drivers/w1/masters/ds2490.c                        | 142 +++--
 drivers/w1/w1.c                                    |   1 +
 drivers/watchdog/s3c2410_wdt.c                     |  21 +-
 drivers/xen/events/events_base.c                   |  26 +-
 drivers/xen/platform-pci.c                         |  13 +-
 drivers/xen/xen-acpi-processor.c                   |  34 +-
 fs/9p/acl.c                                        |   2 +
 fs/afs/mntpt.c                                     |   2 +-
 fs/autofs4/waitq.c                                 |   4 +-
 fs/block_dev.c                                     |  12 +-
 fs/btrfs/inode.c                                   |  19 +-
 fs/ceph/addr.c                                     |   1 +
 fs/ceph/inode.c                                    |  22 +-
 fs/ceph/mds_client.c                               |   5 +-
 fs/ceph/xattr.c                                    |   3 +
 fs/cifs/cifs_dfs_ref.c                             |   7 +-
 fs/cifs/cifs_unicode.c                             |   6 +
 fs/cifs/cifs_unicode.h                             |   5 +-
 fs/cifs/cifsfs.c                                   |  15 +-
 fs/cifs/cifsglob.h                                 |  13 +-
 fs/cifs/cifssmb.c                                  |   7 +
 fs/cifs/connect.c                                  |  27 +-
 fs/cifs/file.c                                     |  16 +-
 fs/cifs/ioctl.c                                    |   4 +
 fs/cifs/misc.c                                     |   2 +-
 fs/cifs/smb1ops.c                                  |  10 +
 fs/cifs/smb2misc.c                                 |  49 +-
 fs/cifs/smb2ops.c                                  |   5 +
 fs/cifs/smb2pdu.c                                  |  33 +-
 fs/cifs/smb2proto.h                                |   7 +
 fs/cifs/smb2transport.c                            |  58 +-
 fs/cifs/transport.c                                |   2 +
 fs/crypto/crypto.c                                 |  10 +-
 fs/crypto/fname.c                                  |   2 +-
 fs/crypto/fscrypt_private.h                        |   4 -
 fs/crypto/keyinfo.c                                |  52 +-
 fs/crypto/policy.c                                 |  87 ++-
 fs/dax.c                                           |  66 +--
 fs/debugfs/inode.c                                 |   8 +-
 fs/ext4/extents.c                                  |  27 +-
 fs/ext4/inline.c                                   |  80 +--
 fs/ext4/inode.c                                    |  48 +-
 fs/ext4/mballoc.c                                  |   7 +
 fs/ext4/namei.c                                    |   6 +-
 fs/ext4/super.c                                    |  11 +-
 fs/ext4/xattr.c                                    |  95 ++--
 fs/ext4/xattr.h                                    |  32 ++
 fs/f2fs/dir.c                                      |  34 +-
 fs/f2fs/extent_cache.c                             |   5 +-
 fs/f2fs/f2fs.h                                     |   4 +
 fs/f2fs/gc.c                                       |  22 +-
 fs/f2fs/inode.c                                    |   2 +-
 fs/f2fs/namei.c                                    |  20 +-
 fs/f2fs/segment.c                                  |   2 +
 fs/f2fs/segment.h                                  |   9 +
 fs/f2fs/super.c                                    |  74 ++-
 fs/fat/inode.c                                     |  13 +-
 fs/fuse/file.c                                     |   1 +
 fs/gfs2/glock.c                                    |   5 +
 fs/gfs2/incore.h                                   |   2 +-
 fs/jbd2/journal.c                                  |  24 +-
 fs/jbd2/revoke.c                                   |   1 +
 fs/jbd2/transaction.c                              |   4 +-
 fs/mount.h                                         |   1 -
 fs/namei.c                                         |   3 -
 fs/namespace.c                                     | 127 +++--
 fs/nfs/flexfilelayout/flexfilelayout.c             |  13 +-
 fs/nfs/flexfilelayout/flexfilelayoutdev.c          |   4 +
 fs/nfs/namespace.c                                 |   2 +-
 fs/nfs/nfs42proc.c                                 |  63 ++-
 fs/nfs/nfs4namespace.c                             |   2 +-
 fs/nfs/nfs4proc.c                                  |  32 +-
 fs/nfs/nfs4xdr.c                                   |   2 +-
 fs/nfsd/nfs3xdr.c                                  |  13 +-
 fs/nfsd/nfsproc.c                                  |   1 +
 fs/nfsd/nfssvc.c                                   |  36 ++
 fs/nfsd/nfsxdr.c                                   |  10 +-
 fs/nfsd/vfs.c                                      |  59 +-
 fs/orangefs/devorangefs-req.c                      |  14 +-
 fs/orangefs/inode.c                                |   3 +-
 fs/orangefs/namei.c                                |   2 -
 fs/orangefs/orangefs-debugfs.c                     |  15 +-
 fs/orangefs/orangefs-dev-proto.h                   |   3 +-
 fs/orangefs/orangefs-kernel.h                      |   1 +
 fs/orangefs/super.c                                |  41 +-
 fs/orangefs/xattr.c                                |  26 +-
 fs/overlayfs/dir.c                                 |   2 +-
 fs/pnode.c                                         |  61 +-
 fs/pnode.h                                         |   2 +
 fs/proc/task_mmu.c                                 |   9 +-
 fs/pstore/platform.c                               |  10 +-
 fs/super.c                                         |  13 +-
 fs/sysfs/file.c                                    |   6 +-
 fs/timerfd.c                                       |  17 +-
 fs/ubifs/dir.c                                     |  10 +-
 fs/xattr.c                                         |   2 +-
 fs/xfs/libxfs/xfs_bmap.c                           | 211 ++++---
 fs/xfs/libxfs/xfs_bmap_btree.c                     |   6 +-
 fs/xfs/libxfs/xfs_btree.c                          |   3 +-
 fs/xfs/libxfs/xfs_btree.h                          |   2 +-
 fs/xfs/libxfs/xfs_da_btree.c                       |   6 +-
 fs/xfs/libxfs/xfs_da_btree.h                       |   2 +-
 fs/xfs/libxfs/xfs_dir2_node.c                      |  51 +-
 fs/xfs/libxfs/xfs_ialloc.c                         |   3 +-
 fs/xfs/libxfs/xfs_inode_fork.c                     |   9 +-
 fs/xfs/xfs_aops.c                                  |  65 +--
 fs/xfs/xfs_bmap_util.c                             |  72 +--
 fs/xfs/xfs_bmap_util.h                             |   3 +-
 fs/xfs/xfs_buf_item.c                              |   1 +
 fs/xfs/xfs_extent_busy.c                           |  13 +-
 fs/xfs/xfs_file.c                                  |  26 +-
 fs/xfs/xfs_icache.c                                |  61 +-
 fs/xfs/xfs_icache.h                                |   2 -
 fs/xfs/xfs_inode.c                                 |  53 +-
 fs/xfs/xfs_iomap.c                                 |  43 +-
 fs/xfs/xfs_mount.c                                 |  27 +-
 fs/xfs/xfs_reflink.c                               | 151 ++++-
 fs/xfs/xfs_reflink.h                               |   6 +-
 fs/xfs/xfs_super.c                                 |   2 +-
 fs/xfs/xfs_trace.h                                 |  10 +-
 include/acpi/platform/acenv.h                      |   2 +-
 include/acpi/platform/acintel.h                    |  87 +++
 include/crypto/algapi.h                            |   7 +-
 include/crypto/internal/hash.h                     |  10 +
 include/drm/drmP.h                                 |   1 +
 include/drm/i915_pciids.h                          |  11 +-
 include/drm/ttm/ttm_object.h                       |   5 +-
 include/linux/arm-smccc.h                          |  52 +-
 include/linux/ccp.h                                |   2 +-
 include/linux/ceph/osdmap.h                        |   2 +-
 include/linux/cgroup.h                             |  21 +
 include/linux/compat.h                             |   4 +-
 include/linux/dax.h                                |   1 -
 include/linux/dccp.h                               |   1 +
 include/linux/debugfs.h                            |   3 +-
 include/linux/devfreq.h                            |   3 +
 include/linux/errqueue.h                           |   2 +
 include/linux/f2fs_fs.h                            |   6 +
 include/linux/fsl_ifc.h                            |   8 +-
 include/linux/genhd.h                              |   2 -
 include/linux/hyperv.h                             |   1 +
 include/linux/iio/sw_device.h                      |   2 +-
 include/linux/intel-iommu.h                        |  14 +-
 include/linux/kvm_host.h                           |   4 +-
 include/linux/libnvdimm.h                          |   2 +
 include/linux/lockd/lockd.h                        |   3 +-
 include/linux/log2.h                               |  13 +-
 include/linux/memcontrol.h                         |   6 +
 include/linux/mmzone.h                             |   2 +-
 include/linux/mount.h                              |   3 +
 include/linux/netdevice.h                          |  29 +-
 include/linux/pci_ids.h                            |   2 +
 include/linux/phy.h                                |   1 +
 include/linux/ptr_ring.h                           |  36 +-
 include/linux/random.h                             |   1 -
 include/linux/sched.h                              |   4 +
 include/linux/uio.h                                |   6 +-
 include/linux/usb/chipidea.h                       |   2 +
 include/linux/usb/quirks.h                         |   6 +
 include/linux/user_namespace.h                     |   2 +-
 include/net/addrconf.h                             |   2 +
 include/net/ip6_route.h                            |   1 +
 include/rdma/ib_sa.h                               |   6 +-
 include/scsi/libiscsi.h                            |   1 +
 include/scsi/scsi_device.h                         |   5 +
 include/soc/at91/at91sam9_ddrsdr.h                 |   3 +
 include/target/target_core_base.h                  |   2 +
 include/trace/events/syscalls.h                    |   1 +
 include/uapi/linux/fs.h                            |   1 +
 include/uapi/linux/ipv6_route.h                    |   2 +-
 include/uapi/linux/packet_diag.h                   |   2 +-
 include/xen/xen.h                                  |   3 +-
 init/main.c                                        |   1 -
 ipc/shm.c                                          |  13 +-
 kernel/audit.c                                     | 622 +++++++++++++--------
 kernel/audit.h                                     |   9 +-
 kernel/auditsc.c                                   |   6 +-
 kernel/bpf/verifier.c                              |  37 +-
 kernel/cgroup.c                                    |   9 +-
 kernel/cgroup_pids.c                               |   2 +-
 kernel/cpu.c                                       |  28 +-
 kernel/events/core.c                               |  16 +-
 kernel/futex.c                                     |  24 +-
 kernel/kthread.c                                   |   3 +
 kernel/locking/rwsem-spinlock.c                    |  15 +-
 kernel/membarrier.c                                |   4 +
 kernel/memremap.c                                  |   6 +
 kernel/module.c                                    |   1 +
 kernel/padata.c                                    |   7 +-
 kernel/printk/printk.c                             |   2 +-
 kernel/ptrace.c                                    |  14 +-
 kernel/sched/deadline.c                            |   3 +-
 kernel/sched/rt.c                                  |   3 +-
 kernel/signal.c                                    |  11 +-
 kernel/time/tick-broadcast.c                       |  15 +-
 kernel/time/timekeeping_debug.c                    |   4 +-
 kernel/trace/ftrace.c                              |  29 +-
 kernel/trace/ring_buffer.c                         |  24 +-
 kernel/trace/trace.c                               |  13 +-
 kernel/trace/trace.h                               |   2 +
 kernel/trace/trace_benchmark.c                     |   4 +-
 kernel/ucount.c                                    |  18 +-
 lib/iov_iter.c                                     |  63 +++
 lib/syscall.c                                      |   1 +
 lib/test_bpf.c                                     |  45 ++
 mm/backing-dev.c                                   |   9 +-
 mm/filemap.c                                       |   7 +-
 mm/huge_memory.c                                   |   3 +-
 mm/hugetlb.c                                       |   6 +-
 mm/kasan/quarantine.c                              |   9 +-
 mm/memcontrol.c                                    |  11 +-
 mm/mempolicy.c                                     |  20 +-
 mm/migrate.c                                       |   2 +-
 mm/mlock.c                                         |   9 +-
 mm/page_alloc.c                                    |   7 +-
 mm/percpu.c                                        |   5 +-
 mm/rmap.c                                          |   4 +-
 mm/truncate.c                                      |  20 +-
 mm/vmpressure.c                                    |  10 +-
 mm/vmscan.c                                        |  81 ++-
 mm/workingset.c                                    |   4 +-
 mm/zsmalloc.c                                      |   2 +-
 net/9p/client.c                                    |   4 +
 net/bluetooth/hci_sock.c                           |   3 +-
 net/bridge/br_forward.c                            |   3 +-
 net/bridge/br_input.c                              |   1 +
 net/bridge/br_netfilter_hooks.c                    |  21 -
 net/ceph/messenger.c                               |   6 +
 net/ceph/osd_client.c                              |   3 +-
 net/ceph/osdmap.c                                  |   1 -
 net/core/datagram.c                                |  34 +-
 net/core/dev.c                                     | 116 +++-
 net/core/neighbour.c                               |   3 +-
 net/core/net-sysfs.c                               |   6 +-
 net/core/netclassid_cgroup.c                       |  32 +-
 net/core/netpoll.c                                 |  10 +-
 net/core/rtnetlink.c                               |   2 +-
 net/core/secure_seq.c                              |  29 +-
 net/core/skbuff.c                                  |  76 ++-
 net/core/sock.c                                    |  16 +-
 net/dccp/ccids/ccid2.c                             |   1 +
 net/dccp/input.c                                   |  13 +-
 net/dccp/ipv4.c                                    |   3 +-
 net/dccp/ipv6.c                                    |   8 +-
 net/dccp/minisocks.c                               |  25 +-
 net/ipv4/af_inet.c                                 |   4 +-
 net/ipv4/fib_frontend.c                            |   9 +-
 net/ipv4/ip_sockglue.c                             |  17 +-
 net/ipv4/ping.c                                    |   5 +-
 net/ipv4/raw.c                                     |   3 +
 net/ipv4/route.c                                   |   4 +-
 net/ipv4/tcp.c                                     |   1 +
 net/ipv4/tcp_cong.c                                |  11 +-
 net/ipv4/tcp_input.c                               |  12 +-
 net/ipv4/tcp_ipv4.c                                |  10 +-
 net/ipv4/tcp_lp.c                                  |   6 +-
 net/ipv4/tcp_minisocks.c                           |   2 +
 net/ipv4/tcp_output.c                              |  19 +-
 net/ipv4/tcp_timer.c                               |   6 +-
 net/ipv6/addrconf.c                                |  33 +-
 net/ipv6/datagram.c                                |  10 +-
 net/ipv6/exthdrs.c                                 |   5 +-
 net/ipv6/ip6_fib.c                                 |   2 +
 net/ipv6/ip6_offload.c                             |   4 +-
 net/ipv6/ip6_output.c                              |  13 +-
 net/ipv6/ip6_tunnel.c                              |  34 +-
 net/ipv6/ip6_vti.c                                 |   4 +
 net/ipv6/ip6mr.c                                   |  13 +-
 net/ipv6/netfilter/nf_conntrack_reasm.c            |   1 +
 net/ipv6/raw.c                                     |   5 +-
 net/ipv6/route.c                                   |  43 +-
 net/ipv6/seg6.c                                    |   3 +
 net/ipv6/tcp_ipv6.c                                |   8 +-
 net/ipv6/udp.c                                     |   2 +-
 net/irda/irqueue.c                                 |  34 +-
 net/kcm/kcmsock.c                                  |   6 +-
 net/l2tp/l2tp_core.c                               |   8 +-
 net/l2tp/l2tp_core.h                               |   3 +-
 net/l2tp/l2tp_debugfs.c                            |  10 +-
 net/l2tp/l2tp_ip.c                                 |   7 +-

commit abf23cac580bd29656b630b7226ede59d8351401
Merge: 8c49eaa 17a4d48
Author: Rohit Kumar <rokku...@cs.stonybrook.edu>
Date:   Wed May 16 18:47:14 2018 -0400

    Merge branch 'master' into wrapfs

commit 17a4d48033813f2ba893d6918fa2931afcd9af02
Author: Greg Kroah-Hartman <gre...@linuxfoundation.org>
Date:   Sat May 20 14:38:27 2017 +0200

    Linux 4.10.17

commit 291e716bb382710d0685d6d1c8c1ac02551e70f8
Author: Kees Cook <keesc...@chromium.org>
Date:   Mon Mar 6 12:42:12 2017 -0800

    pstore: Shut down worker when unregistering
    
    commit 6330d5534786d5315d56d558aa6d20740f97d80a upstream.
    
    When built as a module and running with update_ms >= 0, pstore will Oops
    during module unload since the work timer is still running. This makes sure
    the worker is stopped before unloading.
    
    Signed-off-by: Kees Cook <keesc...@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit e5590e3d92754b85629d2a06d70bb5b09c2165c9
Author: Ankit Kumar <an...@linux.vnet.ibm.com>
Date:   Thu Apr 27 17:03:13 2017 +0530

    pstore: Fix flags to enable dumps on powerpc
    
    commit 041939c1ec54208b42f5cd819209173d52a29d34 upstream.
    
    After commit c950fd6f201a kernel registers pstore write based on flag set.
    Pstore write for powerpc is broken as flags(PSTORE_FLAGS_DMESG) is not set 
for
    powerpc architecture. On panic, kernel doesn't write message to
    /fs/pstore/dmesg*(Entry doesn't gets created at all).
    
    This patch enables pstore write for powerpc architecture by setting
    PSTORE_FLAGS_DMESG flag.
    
    Fixes: c950fd6f201a ("pstore: Split pstore fragile flags")
    Signed-off-by: Ankit Kumar <an...@linux.vnet.ibm.com>
    Signed-off-by: Kees Cook <keesc...@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit e3d4daa7f6d47aeb7fd3ea95abc2937092d301eb
Author: Dan Williams <dan.j.willi...@intel.com>
Date:   Thu May 4 19:54:42 2017 -0700

    libnvdimm, pfn: fix 'npfns' vs section alignment
    
    commit d5483feda85a8f39ee2e940e279547c686aac30c upstream.
    
    Fix failures to create namespaces due to the vmem_altmap not advertising
    enough free space to store the memmap.
    
     WARNING: CPU: 15 PID: 8022 at arch/x86/mm/init_64.c:656 
arch_add_memory+0xde/0xf0
     [..]
     Call Trace:
      dump_stack+0x63/0x83
      __warn+0xcb/0xf0
      warn_slowpath_null+0x1d/0x20
      arch_add_memory+0xde/0xf0
      devm_memremap_pages+0x244/0x440
      pmem_attach_disk+0x37e/0x490 [nd_pmem]
      nd_pmem_probe+0x7e/0xa0 [nd_pmem]
      nvdimm_bus_probe+0x71/0x120 [libnvdimm]
      driver_probe_device+0x2bb/0x460
      bind_store+0x114/0x160
      drv_attr_store+0x25/0x30
    
    In commit 658922e57b84 "libnvdimm, pfn: fix memmap reservation sizing"
    we arranged for the capacity to be allocated, but failed to also update
    the 'npfns' parameter. This leads to cases where there is enough
    capacity reserved to hold all the allocated sections, but
    vmemmap_populate_hugepages() still encounters -ENOMEM from
    altmap_alloc_block_buf().
    
    This fix is a stop-gap until we can teach the core memory hotplug
    implementation to permit sub-section hotplug.
    
    Fixes: 658922e57b84 ("libnvdimm, pfn: fix memmap reservation sizing")
    Reported-by: Anisha Allada <anisha.all...@intel.com>
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 116ada1a98ab84bf5d1405cc69f83357fa99b36a
Author: Dan Williams <dan.j.willi...@intel.com>
Date:   Fri Apr 28 22:05:14 2017 -0700

    libnvdimm: fix nvdimm_bus_lock() vs device_lock() ordering
    
    commit 452bae0aede774f87bf56c28b6dd50b72c78986c upstream.
    
    A debug patch to turn the standard device_lock() into something that
    lockdep can analyze yielded the following:
    
     ======================================================
     [ INFO: possible circular locking dependency detected ]
     4.11.0-rc4+ #106 Tainted: G           O
     -------------------------------------------------------
     lt-libndctl/1898 is trying to acquire lock:
      (&dev->nvdimm_mutex/3){+.+.+.}, at: [<ffffffffc023c948>] 
nd_attach_ndns+0x178/0x1b0 [libnvdimm]
    
     but task is already holding lock:
      (&nvdimm_bus->reconfig_mutex){+.+.+.}, at: [<ffffffffc022e0b1>] 
nvdimm_bus_lock+0x21/0x30 [libnvdimm]
    
     which lock already depends on the new lock.
    
     the existing dependency chain (in reverse order) is:
    
     -> #1 (&nvdimm_bus->reconfig_mutex){+.+.+.}:
            lock_acquire+0xf6/0x1f0
            __mutex_lock+0x88/0x980
            mutex_lock_nested+0x1b/0x20
            nvdimm_bus_lock+0x21/0x30 [libnvdimm]
            nvdimm_namespace_capacity+0x1b/0x40 [libnvdimm]
            nvdimm_namespace_common_probe+0x230/0x510 [libnvdimm]
            nd_pmem_probe+0x14/0x180 [nd_pmem]
            nvdimm_bus_probe+0xa9/0x260 [libnvdimm]
    
     -> #0 (&dev->nvdimm_mutex/3){+.+.+.}:
            __lock_acquire+0x1107/0x1280
            lock_acquire+0xf6/0x1f0
            __mutex_lock+0x88/0x980
            mutex_lock_nested+0x1b/0x20
            nd_attach_ndns+0x178/0x1b0 [libnvdimm]
            nd_namespace_store+0x308/0x3c0 [libnvdimm]
            namespace_store+0x87/0x220 [libnvdimm]
    
    In this case '&dev->nvdimm_mutex/3' mirrors '&dev->mutex'.
    
    Fix this by replacing the use of device_lock() with nvdimm_bus_lock() to 
protect
    nd_{attach,detach}_ndns() operations.
    
    Fixes: 8c2f7e8658df ("libnvdimm: infrastructure for btt devices")
    Reported-by: Yi Zhang <yiz...@redhat.com>
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit f92a2fe7cdb163e482a7d69826c03e621ac6b11e
Author: Toshi Kani <toshi.k...@hpe.com>
Date:   Tue Apr 25 17:04:13 2017 -0600

    libnvdimm, pmem: fix a NULL pointer BUG in nd_pmem_notify
    
    commit b2518c78ce76896f0f8f7940bf02104b227e1709 upstream.
    
    The following BUG was observed when nd_pmem_notify() was called
    for a BTT device.  The use of a pmem_device pointer is not valid
    with BTT.
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
     IP: nd_pmem_notify+0x30/0xf0 [nd_pmem]
     Call Trace:
      nd_device_notify+0x40/0x50
      child_notify+0x10/0x20
      device_for_each_child+0x50/0x90
      nd_region_notify+0x20/0x30
      nd_device_notify+0x40/0x50
      nvdimm_region_notify+0x27/0x30
      acpi_nfit_scrub+0x341/0x590 [nfit]
      process_one_work+0x197/0x450
      worker_thread+0x4e/0x4a0
      kthread+0x109/0x140
    
    Fix nd_pmem_notify() by setting nd_region and badblocks pointers
    properly for BTT.
    
    Cc: Vishal Verma <vishal.l.ve...@intel.com>
    Fixes: 719994660c24 ("libnvdimm: async notification support")
    Signed-off-by: Toshi Kani <toshi.k...@hpe.com>
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 72393c00f00ada1afeca1895af5cf177a04f4033
Author: Dan Williams <dan.j.willi...@intel.com>
Date:   Mon Apr 24 15:43:05 2017 -0700

    libnvdimm, region: fix flush hint detection crash
    
    commit bc042fdfbb92b5b13421316b4548e2d6e98eed37 upstream.
    
    In the case where a dimm does not have any associated flush hints the
    ndrd->flush_wpq array may be uninitialized leading to crashes with the
    following signature:
    
     BUG: unable to handle kernel NULL pointer dereference at 0000000000000010
     IP: region_visible+0x10f/0x160 [libnvdimm]
    
     Call Trace:
      internal_create_group+0xbe/0x2f0
      sysfs_create_groups+0x40/0x80
      device_add+0x2d8/0x650
      nd_async_device_register+0x12/0x40 [libnvdimm]
      async_run_entry_fn+0x39/0x170
      process_one_work+0x212/0x6c0
      ? process_one_work+0x197/0x6c0
      worker_thread+0x4e/0x4a0
      kthread+0x10c/0x140
      ? process_one_work+0x6c0/0x6c0
      ? kthread_create_on_node+0x60/0x60
      ret_from_fork+0x31/0x40
    
    Reviewed-by: Jeff Moyer <jmo...@redhat.com>
    Fixes: f284a4f23752 ("libnvdimm: introduce nvdimm_flush() and 
nvdimm_has_flush()")
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit b821a605977e0d79b6c45a99549c3f40bd8e5082
Author: Joeseph Chang <joech...@codeaurora.org>
Date:   Mon Mar 27 20:22:09 2017 -0600

    ipmi: Fix kernel panic at ipmi_ssif_thread()
    
    commit 6de65fcfdb51835789b245203d1bfc8d14cb1e06 upstream.
    
    msg_written_handler() may set ssif_info->multi_data to NULL
    when using ipmitool to write fru.
    
    Before setting ssif_info->multi_data to NULL, add new local
    pointer "data_to_send" and store correct i2c data pointer to
    it to fix NULL pointer kernel panic and incorrect ssif_info->multi_pos.
    
    Signed-off-by: Joeseph Chang <joech...@codeaurora.org>
    Signed-off-by: Corey Minyard <cminy...@mvista.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit c8e4805dd6341ac32ab9d2dcbd09499eb6530c33
Author: Johan Hovold <jo...@kernel.org>
Date:   Wed Mar 29 18:15:28 2017 +0200

    Bluetooth: hci_intel: add missing tty-device sanity check
    
    commit dcb9cfaa5ea9aa0ec08aeb92582ccfe3e4c719a9 upstream.
    
    Make sure to check the tty-device pointer before looking up the sibling
    platform device to avoid dereferencing a NULL-pointer when the tty is
    one end of a Unix98 pty.
    
    Fixes: 74cdad37cd24 ("Bluetooth: hci_intel: Add runtime PM support")
    Fixes: 1ab1f239bf17 ("Bluetooth: hci_intel: Add support for platform 
driver")
    Cc: Loic Poulain <loic.poul...@intel.com>
    Signed-off-by: Johan Hovold <jo...@kernel.org>
    Signed-off-by: Marcel Holtmann <mar...@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit a8620f066675e0e2bc9feb9698a83bd67f288b52
Author: Johan Hovold <jo...@kernel.org>
Date:   Wed Mar 29 18:15:27 2017 +0200

    Bluetooth: hci_bcm: add missing tty-device sanity check
    
    commit 95065a61e9bf25fb85295127fba893200c2bbbd8 upstream.
    
    Make sure to check the tty-device pointer before looking up the sibling
    platform device to avoid dereferencing a NULL-pointer when the tty is
    one end of a Unix98 pty.
    
    Fixes: 0395ffc1ee05 ("Bluetooth: hci_bcm: Add PM for BCM devices")
    Cc: Frederic Danis <frederic.da...@linux.intel.com>
    Signed-off-by: Johan Hovold <jo...@kernel.org>
    Signed-off-by: Marcel Holtmann <mar...@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 9a3054df3cf62e9988f81291f9e2fc1b493aedac
Author: Szymon Janc <szymon.j...@codecoup.pl>
Date:   Mon Apr 24 18:25:04 2017 -0700

    Bluetooth: Fix user channel for 32bit userspace on 64bit kernel
    
    commit ab89f0bdd63a3721f7cd3f064f39fc4ac7ca14d4 upstream.
    
    Running 32bit userspace on 64bit kernel results in MSG_CMSG_COMPAT being
    defined as 0x80000000. This results in sendmsg failure if used from 32bit
    userspace running on 64bit kernel. Fix this by accounting for 
MSG_CMSG_COMPAT
    in flags check in hci_sock_sendmsg.
    
    Signed-off-by: Szymon Janc <szymon.j...@codecoup.pl>
    Signed-off-by: Marko Kiiskila <ma...@runtime.io>
    Signed-off-by: Marcel Holtmann <mar...@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 58d4794410293a11878c4bd0d9d1b169efcbc060
Author: Wang YanQing <udkni...@gmail.com>
Date:   Wed Feb 22 19:37:08 2017 +0800

    tty: pty: Fix ldisc flush after userspace become aware of the data already
    
    commit 77dae6134440420bac334581a3ccee94cee1c054 upstream.
    
    While using emacs, cat or others' commands in konsole with recent
    kernels, I have met many times that CTRL-C freeze konsole. After
    konsole freeze I can't type anything, then I have to open a new one,
    it is very annoying.
    
    See bug report:
    https://bugs.kde.org/show_bug.cgi?id=175283
    
    The platform in that bug report is Solaris, but now the pty in linux
    has the same problem or the same behavior as Solaris :)
    
    It has high possibility to trigger the problem follow steps below:
    Note: In my test, BigFile is a text file whose size is bigger than 1G
    1:open konsole
    1:cat BigFile
    2:CTRL-C
    
    After some digging, I find out the reason is that commit 1d1d14da12e7
    ("pty: Fix buffer flush deadlock") changes the behavior of pty_flush_buffer.
    
    Thread A                                 Thread B
    --------                                 --------
    1:n_tty_poll return POLLIN
                                             2:CTRL-C trigger pty_flush_buffer
                                                 tty_buffer_flush
                                                   n_tty_flush_buffer
    3:attempt to check count of chars:
      ioctl(fd, TIOCINQ, &available)
      available is equal to 0
    
    4:read(fd, buffer, avaiable)
      return 0
    
    5:konsole close fd
    
    Yes, I know we could use the same patch included in the BUG report as
    a workaround for linux platform too. But I think the data in ldisc is
    belong to application of another side, we shouldn't clear it when we
    want to flush write buffer of this side in pty_flush_buffer. So I think
    it is better to disable ldisc flush in pty_flush_buffer, because its new
    hehavior bring no benefit except that it mess up the behavior between
    POLLIN, and TIOCINQ or FIONREAD.
    
    Also I find no flush_buffer function in others' tty driver has the
    same behavior as current pty_flush_buffer.
    
    Fixes: 1d1d14da12e7 ("pty: Fix buffer flush deadlock")
    Signed-off-by: Wang YanQing <udkni...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 9e3b9909bce302b128a076f60f32448b3cfaf0a4
Author: Johan Hovold <jo...@kernel.org>
Date:   Mon Apr 10 11:21:39 2017 +0200

    serial: omap: suspend device on probe errors
    
    commit 77e6fe7fd2b7cba0bf2f2dc8cde51d7b9a35bf74 upstream.
    
    Make sure to actually suspend the device before returning after a failed
    (or deferred) probe.
    
    Note that autosuspend must be disabled before runtime pm is disabled in
    order to balance the usage count due to a negative autosuspend delay as
    well as to make the final put suspend the device synchronously.
    
    Fixes: 388bc2622680 ("omap-serial: Fix the error handling in the 
omap_serial probe")
    Cc: Shubhrajyoti D <shubhrajy...@ti.com>
    Signed-off-by: Johan Hovold <jo...@kernel.org>
    Acked-by: Tony Lindgren <t...@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit c1ce1f427e0a62b96b2e5a73ddb5766eb5c90bcb
Author: Johan Hovold <jo...@kernel.org>
Date:   Mon Apr 10 11:21:38 2017 +0200

    serial: omap: fix runtime-pm handling on unbind
    
    commit 099bd73dc17ed77aa8c98323e043613b6e8f54fc upstream.
    
    An unbalanced and misplaced synchronous put was used to suspend the
    device on driver unbind, something which with a likewise misplaced
    pm_runtime_disable leads to external aborts when an open port is being
    removed.
    
    Unhandled fault: external abort on non-linefetch (0x1028) at 0xfa024010
    ...
    [<c046e760>] (serial_omap_set_mctrl) from [<c046a064>] 
(uart_update_mctrl+0x50/0x60)
    [<c046a064>] (uart_update_mctrl) from [<c046a400>] 
(uart_shutdown+0xbc/0x138)
    [<c046a400>] (uart_shutdown) from [<c046bd2c>] (uart_hangup+0x94/0x190)
    [<c046bd2c>] (uart_hangup) from [<c045b760>] (__tty_hangup+0x404/0x41c)
    [<c045b760>] (__tty_hangup) from [<c045b794>] (tty_vhangup+0x1c/0x20)
    [<c045b794>] (tty_vhangup) from [<c046ccc8>] 
(uart_remove_one_port+0xec/0x260)
    [<c046ccc8>] (uart_remove_one_port) from [<c046ef4c>] 
(serial_omap_remove+0x40/0x60)
    [<c046ef4c>] (serial_omap_remove) from [<c04845e8>] 
(platform_drv_remove+0x34/0x4c)
    
    Fix this up by resuming the device before deregistering the port and by
    suspending and disabling runtime pm only after the port has been
    removed.
    
    Also make sure to disable autosuspend before disabling runtime pm so
    that the usage count is balanced and device actually suspended before
    returning.
    
    Note that due to a negative autosuspend delay being set in probe, the
    unbalanced put would actually suspend the device on first driver unbind,
    while rebinding and again unbinding would result in a negative
    power.usage_count.
    
    Fixes: 7e9c8e7dbf3b ("serial: omap: make sure to suspend device before 
remove")
    Cc: Felipe Balbi <ba...@kernel.org>
    Cc: Santosh Shilimkar <santosh.shilim...@ti.com>
    Signed-off-by: Johan Hovold <jo...@kernel.org>
    Acked-by: Tony Lindgren <t...@atomide.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 2578dd75ad123860d92e2bfc8ab539451587822c
Author: Marek Szyprowski <m.szyprow...@samsung.com>
Date:   Mon Apr 3 08:20:59 2017 +0200

    serial: samsung: Use right device for DMA-mapping calls
    
    commit 768d64f491a530062ddad50e016fb27125f8bd7c upstream.
    
    Driver should provide its own struct device for all DMA-mapping calls 
instead
    of extracting device pointer from DMA engine channel. Although this is 
harmless
    from the driver operation perspective on ARM architecture, it is always good
    to use the DMA mapping API in a proper way. This patch fixes following DMA 
API
    debug warning:
    
    WARNING: CPU: 0 PID: 0 at lib/dma-debug.c:1241 check_sync+0x520/0x9f4
    samsung-uart 12c20000.serial: DMA-API: device driver tries to sync DMA 
memory it has not allocated [device address=0x000000006df0f580] [size=64 bytes]
    Modules linked in:
    CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.11.0-rc1-00137-g07ca963 #51
    Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
    [<c011aaa4>] (unwind_backtrace) from [<c01127c0>] (show_stack+0x20/0x24)
    [<c01127c0>] (show_stack) from [<c06ba5d8>] (dump_stack+0x84/0xa0)
    [<c06ba5d8>] (dump_stack) from [<c0139528>] (__warn+0x14c/0x180)
    [<c0139528>] (__warn) from [<c01395a4>] (warn_slowpath_fmt+0x48/0x50)
    [<c01395a4>] (warn_slowpath_fmt) from [<c0729058>] (check_sync+0x520/0x9f4)
    [<c0729058>] (check_sync) from [<c072967c>] 
(debug_dma_sync_single_for_device+0x88/0xc8)
    [<c072967c>] (debug_dma_sync_single_for_device) from [<c0803c10>] 
(s3c24xx_serial_start_tx_dma+0x100/0x2f8)
    [<c0803c10>] (s3c24xx_serial_start_tx_dma) from [<c0804338>] 
(s3c24xx_serial_tx_chars+0x198/0x33c)
    
    Reported-by: Seung-Woo Kim <sw0312....@samsung.com>
    Fixes: 62c37eedb74c8 ("serial: samsung: add dma reqest/release functions")
    Signed-off-by: Marek Szyprowski <m.szyprow...@samsung.com>
    Reviewed-by: Bartlomiej Zolnierkiewicz <b.zolnier...@samsung.com>
    Reviewed-by: Krzysztof Kozlowski <k...@kernel.org>
    Reviewed-by: Shuah Khan <shua...@osg.samsung.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit a78ddcd2a858ea3968afa284d964329a4d7f74c2
Author: Eric Biggers <ebigg...@google.com>
Date:   Fri Apr 7 10:58:37 2017 -0700

    fscrypt: fix context consistency check when key(s) unavailable
    
    commit 272f98f6846277378e1758a49a49d7bf39343c02 upstream.
    
    To mitigate some types of offline attacks, filesystem encryption is
    designed to enforce that all files in an encrypted directory tree use
    the same encryption policy (i.e. the same encryption context excluding
    the nonce).  However, the fscrypt_has_permitted_context() function which
    enforces this relies on comparing struct fscrypt_info's, which are only
    available when we have the encryption keys.  This can cause two
    incorrect behaviors:
    
    1. If we have the parent directory's key but not the child's key, or
       vice versa, then fscrypt_has_permitted_context() returned false,
       causing applications to see EPERM or ENOKEY.  This is incorrect if
       the encryption contexts are in fact consistent.  Although we'd
       normally have either both keys or neither key in that case since the
       master_key_descriptors would be the same, this is not guaranteed
       because keys can be added or removed from keyrings at any time.
    
    2. If we have neither the parent's key nor the child's key, then
       fscrypt_has_permitted_context() returned true, causing applications
       to see no error (or else an error for some other reason).  This is
       incorrect if the encryption contexts are in fact inconsistent, since
       in that case we should deny access.
    
    To fix this, retrieve and compare the fscrypt_contexts if we are unable
    to set up both fscrypt_infos.
    
    While this slightly hurts performance when accessing an encrypted
    directory tree without the key, this isn't a case we really need to be
    optimizing for; access *with* the key is much more important.
    Furthermore, the performance hit is barely noticeable given that we are
    already retrieving the fscrypt_context and doing two keyring searches in
    fscrypt_get_encryption_info().  If we ever actually wanted to optimize
    this case we might start by caching the fscrypt_contexts.
    
    Signed-off-by: Eric Biggers <ebigg...@google.com>
    Signed-off-by: Theodore Ts'o <ty...@mit.edu>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 659ccd97668ab6c8b6bdf8665bc7ae8635559d62
Author: Jaegeuk Kim <jaeg...@kernel.org>
Date:   Tue Apr 11 19:01:26 2017 -0700

    f2fs: fix fs corruption due to zero inode page
    
    commit 9bb02c3627f46e50246bf7ab957b56ffbef623cb upstream.
    
    This patch fixes the following scenario.
    
    - f2fs_create/f2fs_mkdir             - write_checkpoint
     - f2fs_mark_inode_dirty_sync         - block_operations
                                           - f2fs_lock_all
                                           - f2fs_sync_inode_meta
                                            - f2fs_unlock_all
                                            - sync_inode_metadata
     - f2fs_lock_op
                                             - f2fs_write_inode
                                              - update_inode_page
                                               - get_node_page
                                                 return -ENOENT
     - new_inode_page
      - fill_node_footer
     - f2fs_mark_inode_dirty_sync
     - ...
     - f2fs_unlock_op
                                              - f2fs_inode_synced
                                           - f2fs_lock_all
                                           - do_checkpoint
    
    In this checkpoint, we can get an inode page which contains zeros having 
valid
    node footer only.
    
    Signed-off-by: Jaegeuk Kim <jaeg...@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 717946b469cfafc9f31ebfcefa34a18ff369fc2e
Author: Jan Kara <j...@suse.cz>
Date:   Fri May 12 15:46:50 2017 -0700

    mm: fix data corruption due to stale mmap reads
    
    commit cd656375f94632d7b5af57bf67b7b5c0270c591c upstream.
    
    Currently, we didn't invalidate page tables during invalidate_inode_pages2()
    for DAX.  That could result in e.g. 2MiB zero page being mapped into
    page tables while there were already underlying blocks allocated and
    thus data seen through mmap were different from data seen by read(2).
    The following sequence reproduces the problem:
    
     - open an mmap over a 2MiB hole
    
     - read from a 2MiB hole, faulting in a 2MiB zero page
    
     - write to the hole with write(3p). The write succeeds but we
       incorrectly leave the 2MiB zero page mapping intact.
    
     - via the mmap, read the data that was just written. Since the zero
       page mapping is still intact we read back zeroes instead of the new
       data.
    
    Fix the problem by unconditionally calling invalidate_inode_pages2_range()
    in dax_iomap_actor() for new block allocations and by properly
    invalidating page tables in invalidate_inode_pages2_range() for DAX
    mappings.
    
    Fixes: c6dcf52c23d2d3fb5235cec42d7dd3f786b87d55
    Link: http://lkml.kernel.org/r/20170510085419.27601-3-j...@suse.cz
    Signed-off-by: Jan Kara <j...@suse.cz>
    Signed-off-by: Ross Zwisler <ross.zwis...@linux.intel.com>
    Cc: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Andrew Morton <a...@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 35223d76e2cf6366be1d281548f099c345ace3f1
Author: Ross Zwisler <ross.zwis...@linux.intel.com>
Date:   Fri May 12 15:46:47 2017 -0700

    dax: prevent invalidation of mapped DAX entries
    
    commit 4636e70bb0a8b871998b6841a2e4b205cf2bc863 upstream.
    
    Patch series "mm,dax: Fix data corruption due to mmap inconsistency",
    v4.
    
    This series fixes data corruption that can happen for DAX mounts when
    page faults race with write(2) and as a result page tables get out of
    sync with block mappings in the filesystem and thus data seen through
    mmap is different from data seen through read(2).
    
    The series passes testing with t_mmap_stale test program from Ross and
    also other mmap related tests on DAX filesystem.
    
    This patch (of 4):
    
    dax_invalidate_mapping_entry() currently removes DAX exceptional entries
    only if they are clean and unlocked.  This is done via:
    
      invalidate_mapping_pages()
        invalidate_exceptional_entry()
          dax_invalidate_mapping_entry()
    
    However, for page cache pages removed in invalidate_mapping_pages()
    there is an additional criteria which is that the page must not be
    mapped.  This is noted in the comments above invalidate_mapping_pages()
    and is checked in invalidate_inode_page().
    
    For DAX entries this means that we can can end up in a situation where a
    DAX exceptional entry, either a huge zero page or a regular DAX entry,
    could end up mapped but without an associated radix tree entry.  This is
    inconsistent with the rest of the DAX code and with what happens in the
    page cache case.
    
    We aren't able to unmap the DAX exceptional entry because according to
    its comments invalidate_mapping_pages() isn't allowed to block, and
    unmap_mapping_range() takes a write lock on the mapping->i_mmap_rwsem.
    
    Since we essentially never have unmapped DAX entries to evict from the
    radix tree, just remove dax_invalidate_mapping_entry().
    
    Fixes: c6dcf52c23d2 ("mm: Invalidate DAX radix tree entries only if 
appropriate")
    Link: http://lkml.kernel.org/r/20170510085419.27601-2-j...@suse.cz
    Signed-off-by: Ross Zwisler <ross.zwis...@linux.intel.com>
    Signed-off-by: Jan Kara <j...@suse.cz>
    Reported-by: Jan Kara <j...@suse.cz>
    Cc: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Andrew Morton <a...@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit fa7043b3a2e0ab086b28639b3ac260477798bc9e
Author: Dan Williams <dan.j.willi...@intel.com>
Date:   Sun Apr 30 06:57:01 2017 -0700

    device-dax: fix sysfs attribute deadlock
    
    commit 565851c972b50612f3a4542e26879ffb3e906fc2 upstream.
    
    Usage of device_lock() for dax_region attributes is unnecessary and
    deadlock prone. It's unnecessary because the order of registration /
    un-registration guarantees that drvdata is always valid. It's deadlock
    prone because it sets up this situation:
    
     ndctl           D    0  2170   2082 0x00000000
     Call Trace:
      __schedule+0x31f/0x980
      schedule+0x3d/0x90
      schedule_preempt_disabled+0x15/0x20
      __mutex_lock+0x402/0x980
      ? __mutex_lock+0x158/0x980
      ? align_show+0x2b/0x80 [dax]
      ? kernfs_seq_start+0x2f/0x90
      mutex_lock_nested+0x1b/0x20
      align_show+0x2b/0x80 [dax]
      dev_attr_show+0x20/0x50
    
     ndctl           D    0  2186   2079 0x00000000
     Call Trace:
      __schedule+0x31f/0x980
      schedule+0x3d/0x90
      __kernfs_remove+0x1f6/0x340
      ? kernfs_remove_by_name_ns+0x45/0xa0
      ? remove_wait_queue+0x70/0x70
      kernfs_remove_by_name_ns+0x45/0xa0
      remove_files.isra.1+0x35/0x70
      sysfs_remove_group+0x44/0x90
      sysfs_remove_groups+0x2e/0x50
      dax_region_unregister+0x25/0x40 [dax]
      devm_action_release+0xf/0x20
      release_nodes+0x16d/0x2b0
      devres_release_all+0x3c/0x60
      device_release_driver_internal+0x17d/0x220
      device_release_driver+0x12/0x20
      unbind_store+0x112/0x160
    
    ndctl/2170 is trying to acquire the device_lock() to read an attribute,
    and ndctl/2186 is holding the device_lock() while trying to drain all
    active attribute readers.
    
    Thanks to Yi Zhang for the reproduction script.
    
    Fixes: d7fe1a67f658 ("dax: add region 'id', 'size', and 'align' attributes")
    Reported-by: Yi Zhang <yiz...@redhat.com>
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit e1a19ef5291902ec413abdd4037ee27bf6a35594
Author: Dan Williams <dan.j.willi...@intel.com>
Date:   Fri Mar 17 12:48:09 2017 -0600

    device-dax: fix cdev leak
    
    commit ed01e50acdd3e4a640cf9ebd28a7e810c3ceca97 upstream.
    
    If device_add() fails, cleanup the cdev. Otherwise, we leak a kobj_map()
    with a stale device number.
    
    As Jason points out, there is a small possibility that userspace has
    opened and mapped the device in the time between cdev_add() and the
    device_add() failure. We need a new kill_dax_dev() helper to invalidate
    any established mappings.
    
    Fixes: ba09c01d2fa8 ("dax: convert to the cdev api")
    Reported-by: Jason Gunthorpe <jguntho...@obsidianresearch.com>
    Signed-off-by: Dan Williams <dan.j.willi...@intel.com>
    Signed-off-by: Logan Gunthorpe <log...@deltatee.com>
    Reviewed-by: Johannes Thumshirn <jthumsh...@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 81845f52017951b6623618d68f79a7530073f2d0
Author: NeilBrown <ne...@suse.com>
Date:   Thu Apr 6 12:06:37 2017 +1000

    md/raid1: avoid reusing a resync bio after error handling.
    
    commit 0c9d5b127f695818c2c5a3868c1f28ca2969e905 upstream.
    
    fix_sync_read_error() modifies a bio on a newly faulty
    device by setting bi_end_io to end_sync_write.
    This ensure that put_buf() will still call rdev_dec_pending()
    as required, but makes sure that subsequent code in
    fix_sync_read_error() doesn't try to read from the device.
    
    Unfortunately this interacts badly with sync_request_write()
    which assumes that any bio with bi_end_io set to non-NULL
    other than end_sync_read is safe to write to.
    
    As the device is now faulty it doesn't make sense to write.
    As the bio was recently used for a read, it is "dirty"
    and not suitable for immediate submission.
    In particular, ->bi_next might be non-NULL, which will cause
    generic_make_request() to complain.
    
    Break this interaction by refusing to write to devices
    which are marked as Faulty.
    
    Reported-and-tested-by: Michael Wang <yun.w...@profitbricks.com>
    Fixes: 2e52d449bcec ("md/raid1: add failfast handling for reads.")
    Signed-off-by: NeilBrown <ne...@suse.com>
    Signed-off-by: Shaohua Li <s...@fb.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 23ebf6aa650dab9c3e08f9c65b8d4a29beae7d43
Author: Jason A. Donenfeld <ja...@zx2c4.com>
Date:   Fri Apr 7 02:33:30 2017 +0200

    padata: free correct variable
    
    commit 07a77929ba672d93642a56dc2255dd21e6e2290b upstream.
    
    The author meant to free the variable that was just allocated, instead
    of the one that failed to be allocated, but made a simple typo. This
    patch rectifies that.
    
    Signed-off-by: Jason A. Donenfeld <ja...@zx2c4.com>
    Signed-off-by: Herbert Xu <herb...@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 586aa5a6537f0f5f67487ec3f535488e77bbba82
Author: Amir Goldstein <amir7...@gmail.com>
Date:   Mon Apr 24 22:26:40 2017 +0300

    ovl: do not set overlay.opaque on non-dir create
    
    commit 4a99f3c83dc493c8ea84693d78cd792839c8aa64 upstream.
    
    The optimization for opaque dir create was wrongly being applied
    also to non-dir create.
    
    Fixes: 97c684cc9110 ("ovl: create directories inside merged parent opaque")
    Signed-off-by: Amir Goldstein <amir7...@gmail.com>
    Signed-off-by: Miklos Szeredi <mszer...@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit cf95696518f5ffdf98b64df850fe6bcf208f4a4f
Author: Björn Jacke <b...@sernet.de>
Date:   Fri May 5 04:36:16 2017 +0200

    CIFS: add misssing SFM mapping for doublequote
    
    commit 85435d7a15294f9f7ef23469e6aaf7c5dfcc54f0 upstream.
    
    SFM is mapping doublequote to 0xF020
    
    Without this patch creating files with doublequote fails to Windows/Mac
    
    Signed-off-by: Bjoern Jacke <bja...@samba.org>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 582fb96084c3d7ccc8e294c9586ddd346cf5c864
Author: David Disseldorp <dd...@suse.de>
Date:   Thu May 4 00:41:13 2017 +0200

    cifs: fix CIFS_IOC_GET_MNT_INFO oops
    
    commit d8a6e505d6bba2250852fbc1c1c86fe68aaf9af3 upstream.
    
    An open directory may have a NULL private_data pointer prior to readdir.
    
    Fixes: 0de1f4c6f6c0 ("Add way to query server fs info for smb3")
    Signed-off-by: David Disseldorp <dd...@suse.de>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 4452b80eaef8c4ed9a9d52f98cad40287a2f62eb
Author: Rabin Vincent <rab...@axis.com>
Date:   Wed May 3 17:54:01 2017 +0200

    CIFS: fix oplock break deadlocks
    
    commit 3998e6b87d4258a70df358296d6f1c7234012bfe upstream.
    
    When the final cifsFileInfo_put() is called from cifsiod and an oplock
    break work is queued, lockdep complains loudly:
    
     =============================================
     [ INFO: possible recursive locking detected ]
     4.11.0+ #21 Not tainted
     ---------------------------------------------
     kworker/0:2/78 is trying to acquire lock:
      ("cifsiod"){++++.+}, at: flush_work+0x215/0x350
    
     but task is already holding lock:
      ("cifsiod"){++++.+}, at: process_one_work+0x255/0x8e0
    
     other info that might help us debug this:
      Possible unsafe locking scenario:
    
            CPU0
            ----
       lock("cifsiod");
       lock("cifsiod");
    
      *** DEADLOCK ***
    
      May be due to missing lock nesting notation
    
     2 locks held by kworker/0:2/78:
      #0:  ("cifsiod"){++++.+}, at: process_one_work+0x255/0x8e0
      #1:  ((&wdata->work)){+.+...}, at: process_one_work+0x255/0x8e0
    
     stack backtrace:
     CPU: 0 PID: 78 Comm: kworker/0:2 Not tainted 4.11.0+ #21
     Workqueue: cifsiod cifs_writev_complete
     Call Trace:
      dump_stack+0x85/0xc2
      __lock_acquire+0x17dd/0x2260
      ? match_held_lock+0x20/0x2b0
      ? trace_hardirqs_off_caller+0x86/0x130
      ? mark_lock+0xa6/0x920
      lock_acquire+0xcc/0x260
      ? lock_acquire+0xcc/0x260
      ? flush_work+0x215/0x350
      flush_work+0x236/0x350
      ? flush_work+0x215/0x350
      ? destroy_worker+0x170/0x170
      __cancel_work_timer+0x17d/0x210
      ? ___preempt_schedule+0x16/0x18
      cancel_work_sync+0x10/0x20
      cifsFileInfo_put+0x338/0x7f0
      cifs_writedata_release+0x2a/0x40
      ? cifs_writedata_release+0x2a/0x40
      cifs_writev_complete+0x29d/0x850
      ? preempt_count_sub+0x18/0xd0
      process_one_work+0x304/0x8e0
      worker_thread+0x9b/0x6a0
      kthread+0x1b2/0x200
      ? process_one_work+0x8e0/0x8e0
      ? kthread_create_on_node+0x40/0x40
      ret_from_fork+0x31/0x40
    
    This is a real warning.  Since the oplock is queued on the same
    workqueue this can deadlock if there is only one worker thread active
    for the workqueue (which will be the case during memory pressure when
    the rescuer thread is handling it).
    
    Furthermore, there is at least one other kind of hang possible due to
    the oplock break handling if there is only worker.  (This can be
    reproduced without introducing memory pressure by having passing 1 for
    the max_active parameter of cifsiod.) cifs_oplock_break() can wait
    indefintely in the filemap_fdatawait() while the cifs_writev_complete()
    work is blocked:
    
     sysrq: SysRq : Show Blocked State
       task                        PC stack   pid father
     kworker/0:1     D    0    16      2 0x00000000
     Workqueue: cifsiod cifs_oplock_break
     Call Trace:
      __schedule+0x562/0xf40
      ? mark_held_locks+0x4a/0xb0
      schedule+0x57/0xe0
      io_schedule+0x21/0x50
      wait_on_page_bit+0x143/0x190
      ? add_to_page_cache_lru+0x150/0x150
      __filemap_fdatawait_range+0x134/0x190
      ? do_writepages+0x51/0x70
      filemap_fdatawait_range+0x14/0x30
      filemap_fdatawait+0x3b/0x40
      cifs_oplock_break+0x651/0x710
      ? preempt_count_sub+0x18/0xd0
      process_one_work+0x304/0x8e0
      worker_thread+0x9b/0x6a0
      kthread+0x1b2/0x200
      ? process_one_work+0x8e0/0x8e0
      ? kthread_create_on_node+0x40/0x40
      ret_from_fork+0x31/0x40
     dd              D    0   683    171 0x00000000
     Call Trace:
      __schedule+0x562/0xf40
      ? mark_held_locks+0x29/0xb0
      schedule+0x57/0xe0
      io_schedule+0x21/0x50
      wait_on_page_bit+0x143/0x190
      ? add_to_page_cache_lru+0x150/0x150
      __filemap_fdatawait_range+0x134/0x190
      ? do_writepages+0x51/0x70
      filemap_fdatawait_range+0x14/0x30
      filemap_fdatawait+0x3b/0x40
      filemap_write_and_wait+0x4e/0x70
      cifs_flush+0x6a/0xb0
      filp_close+0x52/0xa0
      __close_fd+0xdc/0x150
      SyS_close+0x33/0x60
      entry_SYSCALL_64_fastpath+0x1f/0xbe
    
     Showing all locks held in the system:
     2 locks held by kworker/0:1/16:
      #0:  ("cifsiod"){.+.+.+}, at: process_one_work+0x255/0x8e0
      #1:  ((&cfile->oplock_break)){+.+.+.}, at: process_one_work+0x255/0x8e0
    
     Showing busy workqueues and worker pools:
     workqueue cifsiod: flags=0xc
       pwq 0: cpus=0 node=0 flags=0x0 nice=0 active=1/1
         in-flight: 16:cifs_oplock_break
         delayed: cifs_writev_complete, cifs_echo_request
     pool 0: cpus=0 node=0 flags=0x0 nice=0 hung=0s workers=3 idle: 750 3
    
    Fix these problems by creating a a new workqueue (with a rescuer) for
    the oplock break work.
    
    Signed-off-by: Rabin Vincent <rab...@axis.com>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit cd01b999953bc9f7239429eb6dcabe1ae1f50e45
Author: David Disseldorp <dd...@suse.de>
Date:   Wed May 3 17:39:08 2017 +0200

    cifs: fix CIFS_ENUMERATE_SNAPSHOTS oops
    
    commit 6026685de33b0db5b2b6b0e9b41b3a1a3261033c upstream.
    
    As with 618763958b22, an open directory may have a NULL private_data
    pointer prior to readdir. CIFS_ENUMERATE_SNAPSHOTS must check for this
    before dereference.
    
    Fixes: 834170c85978 ("Enable previous version support")
    Signed-off-by: David Disseldorp <dd...@suse.de>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit 6ec05086dca927ba9574840e0e92ea9c92c439e6
Author: David Disseldorp <dd...@suse.de>
Date:   Wed May 3 17:39:09 2017 +0200

    cifs: fix leak in FSCTL_ENUM_SNAPS response handling
    
    commit 0e5c795592930d51fd30d53a2e7b73cba022a29b upstream.
    
    The server may respond with success, and an output buffer less than
    sizeof(struct smb_snapshot_array) in length. Do not leak the output
    buffer in this case.
    
    Fixes: 834170c85978 ("Enable previous version support")
    Signed-off-by: David Disseldorp <dd...@suse.de>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit b1b295efad9f32d7eae9eed06752d0872112e550
Author: Björn Jacke <b...@sernet.de>
Date:   Wed May 3 23:47:44 2017 +0200

    CIFS: fix mapping of SFM_SPACE and SFM_PERIOD
    
    commit b704e70b7cf48f9b67c07d585168e102dfa30bb4 upstream.
    
    - trailing space maps to 0xF028
    - trailing period maps to 0xF029
    
    This fix corrects the mapping of file names which have a trailing character
    that would otherwise be illegal (period or space) but is allowed by POSIX.
    
    Signed-off-by: Bjoern Jacke <bja...@samba.org>
    Signed-off-by: Steve French <smfre...@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gre...@linuxfoundation.org>

commit ae6c2182b8536fafe21c2dcf747eacd20d867ade
Author: Steve French <smfre...@gmail.com>
Date:   Wed May 3 21:12:20 2017 -0500

    SMB3: Work around mount failure when using SMB3 dialect to Macs
    
    commit 7db0a6efdc3e990cdfd4b24820d010e9eb7890ad upstream.
    
    Macs send the maximum buffer size in response on ioctl to validate
    negotiate security information, which causes us to fail the mount

diff --git a/Documentation/admin-guide/kernel-parameters.txt 
b/Documentation/admin-guide/kernel-parameters.txt
index be7c0d9..18eefa8 100644
--- a/Documentation/admin-guide/kernel-parameters.txt
+++ b/Documentation/admin-guide/kernel-parameters.txt
@@ -1201,6 +1201,10 @@
                        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
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/devicetree/bindings/rng/omap_rng.txt 
b/Documentation/devicetree/bindings/rng/omap_rng.txt
index 4714772..9cf7876 100644
--- a/Documentation/devicetree/bindings/rng/omap_rng.txt
+++ b/Documentation/devicetree/bindings/rng/omap_rng.txt
@@ -12,7 +12,8 @@ Required properties:
 - reg : Offset and length of the register set for the module
 - interrupts : the interrupt number for the RNG module.
                Used for "ti,omap4-rng" and "inside-secure,safexcel-eip76"
-- clocks: the trng clock source
+- clocks: the trng clock source. Only mandatory for the
+  "inside-secure,safexcel-eip76" compatible.
 
 Example:
 /* AM335x */
diff --git a/Documentation/devicetree/bindings/usb/usb-xhci.txt 
b/Documentation/devicetree/bindings/usb/usb-xhci.txt
index 0b7d857..2d80b60 100644
--- a/Documentation/devicetree/bindings/usb/usb-xhci.txt
+++ b/Documentation/devicetree/bindings/usb/usb-xhci.txt
@@ -27,6 +27,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/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/process/stable-kernel-rules.rst 
b/Documentation/process/stable-kernel-rules.rst
index 11ec2d9..61e9c78 100644
--- a/Documentation/process/stable-kernel-rules.rst
+++ b/Documentation/process/stable-kernel-rules.rst
@@ -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/Makefile b/Makefile
index 503dae1..2e8b04b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
 VERSION = 4
 PATCHLEVEL = 10
-SUBLEVEL = 0
-EXTRAVERSION = -rc8
+SUBLEVEL = 17
+EXTRAVERSION =
 NAME = Fearless Coyote
 
 # *DOCUMENTATION*
@@ -370,7 +370,7 @@ LDFLAGS_MODULE  =
 CFLAGS_KERNEL  =
 AFLAGS_KERNEL  =
 LDFLAGS_vmlinux =
-CFLAGS_GCOV    = -fprofile-arcs -ftest-coverage -fno-tree-loop-im 
-Wno-maybe-uninitialized
+CFLAGS_GCOV    := -fprofile-arcs -ftest-coverage -fno-tree-loop-im $(call 
cc-disable-warning,maybe-uninitialized,)
 CFLAGS_KCOV    := $(call cc-option,-fsanitize-coverage=trace-pc,)
 
 
@@ -651,6 +651,12 @@ KBUILD_CFLAGS += $(call cc-ifversion, -lt, 0409, \
 # Tell gcc to never replace conditional load with a non-conditional one
 KBUILD_CFLAGS  += $(call cc-option,--param=allow-store-data-races=0)
 
+# check for 'asm goto'
+ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) 
$(KBUILD_CFLAGS)), y)
+       KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
+       KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
+endif
+
 include scripts/Makefile.gcc-plugins
 
 ifdef CONFIG_READABLE_ASM
@@ -796,12 +802,6 @@ KBUILD_CFLAGS   += $(call 
cc-option,-Werror=incompatible-pointer-types)
 # use the deterministic mode of AR if available
 KBUILD_ARFLAGS := $(call ar-option,D)
 
-# check for 'asm goto'
-ifeq ($(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) 
$(KBUILD_CFLAGS)), y)
-       KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
-       KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
-endif
-
 include scripts/Makefile.kasan
 include scripts/Makefile.extrawarn
 include scripts/Makefile.ubsan
diff --git a/arch/arc/include/asm/atomic.h b/arch/arc/include/asm/atomic.h
index b65930a..54b54da 100644
--- a/arch/arc/include/asm/atomic.h
+++ b/arch/arc/include/asm/atomic.h
@@ -17,10 +17,11 @@
 #include <asm/barrier.h>
 #include <asm/smp.h>
 
+#define ATOMIC_INIT(i) { (i) }
+
 #ifndef CONFIG_ARC_PLAT_EZNPS
 
 #define atomic_read(v)  READ_ONCE((v)->counter)
-#define ATOMIC_INIT(i) { (i) }
 
 #ifdef CONFIG_ARC_HAS_LLSC
 
diff --git a/arch/arc/mm/cache.c b/arch/arc/mm/cache.c
index d408fa2..9285629 100644
--- a/arch/arc/mm/cache.c
+++ b/arch/arc/mm/cache.c
@@ -633,6 +633,9 @@ noinline static void slc_entire_op(const int op)
 
        write_aux_reg(ARC_REG_SLC_INVALIDATE, 1);
 
+       /* Make sure "busy" bit reports correct stataus, see STAR 9001165532 */
+       read_aux_reg(r);
+
        /* Important to wait for flush to complete */
        while (read_aux_reg(r) & SLC_CTRL_BUSY);
 }
diff --git a/arch/arm/boot/dts/am57xx-idk-common.dtsi 
b/arch/arm/boot/dts/am57xx-idk-common.dtsi
index 814a720..d0a55b8 100644
--- a/arch/arm/boot/dts/am57xx-idk-common.dtsi
+++ b/arch/arm/boot/dts/am57xx-idk-common.dtsi
@@ -311,6 +311,13 @@
                        /* ID & VBUS GPIOs provided in board dts */
                };
        };
+
+       tpic2810: tpic2810@60 {
+               compatible = "ti,tpic2810";
+               reg = <0x60>;
+               gpio-controller;
+               #gpio-cells = <2>;
+       };
 };
 
 &mcspi3 {
@@ -326,13 +333,6 @@
                spi-max-frequency = <1000000>;
                spi-cpol;
        };
-
-       tpic2810: tpic2810@60 {
-               compatible = "ti,tpic2810";
-               reg = <0x60>;
-               gpio-controller;
-               #gpio-cells = <2>;
-       };
 };
 
 &uart3 {
diff --git a/arch/arm/boot/dts/at91-sama5d2_xplained.dts 
b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
index 0b9a59d..30fac04 100644
--- a/arch/arm/boot/dts/at91-sama5d2_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d2_xplained.dts
@@ -148,6 +148,8 @@
                        uart1: serial@f8020000 {
                                pinctrl-names = "default";
                                pinctrl-0 = <&pinctrl_uart1_default>;
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
                                status = "okay";
                        };
 
diff --git a/arch/arm/boot/dts/at91-sama5d4_xplained.dts 
b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
index ed7fce2..44d1171 100644
--- a/arch/arm/boot/dts/at91-sama5d4_xplained.dts
+++ b/arch/arm/boot/dts/at91-sama5d4_xplained.dts
@@ -110,6 +110,8 @@
                        };
 
                        usart3: serial@fc00c000 {
+                               atmel,use-dma-rx;
+                               atmel,use-dma-tx;
                                status = "okay";
                        };
 
diff --git a/arch/arm/boot/dts/bcm5301x.dtsi b/arch/arm/boot/dts/bcm5301x.dtsi
index f09a2bb..4b60492 100644
--- a/arch/arm/boot/dts/bcm5301x.dtsi
+++ b/arch/arm/boot/dts/bcm5301x.dtsi
@@ -66,14 +66,14 @@
                timer@20200 {
                        compatible = "arm,cortex-a9-global-timer";
                        reg = <0x20200 0x100>;
-                       interrupts = <GIC_PPI 11 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_PPI 11 IRQ_TYPE_EDGE_RISING>;
                        clocks = <&periph_clk>;
                };
 
                local-timer@20600 {
                        compatible = "arm,cortex-a9-twd-timer";
                        reg = <0x20600 0x100>;
-                       interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_HIGH>;
+                       interrupts = <GIC_PPI 13 IRQ_TYPE_EDGE_RISING>;
                        clocks = <&periph_clk>;
                };
 
diff --git a/arch/arm/boot/dts/bcm958522er.dts 
b/arch/arm/boot/dts/bcm958522er.dts
index a21b0fd..417f657 100644
--- a/arch/arm/boot/dts/bcm958522er.dts
+++ b/arch/arm/boot/dts/bcm958522er.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm958525er.dts 
b/arch/arm/boot/dts/bcm958525er.dts
index be7f2f8..5279b76 100644
--- a/arch/arm/boot/dts/bcm958525er.dts
+++ b/arch/arm/boot/dts/bcm958525er.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm958525xmc.dts 
b/arch/arm/boot/dts/bcm958525xmc.dts
index 959cde9..872882b 100644
--- a/arch/arm/boot/dts/bcm958525xmc.dts
+++ b/arch/arm/boot/dts/bcm958525xmc.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 31 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm958622hr.dts 
b/arch/arm/boot/dts/bcm958622hr.dts
index ad2aa87..a340e1d 100644
--- a/arch/arm/boot/dts/bcm958622hr.dts
+++ b/arch/arm/boot/dts/bcm958622hr.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm958623hr.dts 
b/arch/arm/boot/dts/bcm958623hr.dts
index 4ceb8fe..226b652 100644
--- a/arch/arm/boot/dts/bcm958623hr.dts
+++ b/arch/arm/boot/dts/bcm958623hr.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm958625hr.dts 
b/arch/arm/boot/dts/bcm958625hr.dts
index 4420025..a1658d0 100644
--- a/arch/arm/boot/dts/bcm958625hr.dts
+++ b/arch/arm/boot/dts/bcm958625hr.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/bcm988312hr.dts 
b/arch/arm/boot/dts/bcm988312hr.dts
index 104afe9..ed05e33 100644
--- a/arch/arm/boot/dts/bcm988312hr.dts
+++ b/arch/arm/boot/dts/bcm988312hr.dts
@@ -55,6 +55,7 @@
        gpio-restart {
                compatible = "gpio-restart";
                gpios = <&gpioa 15 GPIO_ACTIVE_LOW>;
+               open-source;
                priority = <200>;
        };
 };
diff --git a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi 
b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
index 2b65d26..caea6f0 100644
--- a/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
+++ b/arch/arm/boot/dts/imx6sx-udoo-neo.dtsi
@@ -77,11 +77,6 @@
        };
 };
 
-&cpu0 {
-       arm-supply = <&sw1a_reg>;
-       soc-supply = <&sw1c_reg>;
-};
-
 &fec1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_enet1>;
diff --git a/arch/arm/boot/dts/qcom-ipq8064.dtsi 
b/arch/arm/boot/dts/qcom-ipq8064.dtsi
index 2e37557..76f4e89 100644
--- a/arch/arm/boot/dts/qcom-ipq8064.dtsi
+++ b/arch/arm/boot/dts/qcom-ipq8064.dtsi
@@ -65,13 +65,13 @@
                cxo_board {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
-                       clock-frequency = <19200000>;
+                       clock-frequency = <25000000>;
                };
 
                pxo_board {
                        compatible = "fixed-clock";
                        #clock-cells = <0>;
-                       clock-frequency = <27000000>;
+                       clock-frequency = <25000000>;
                };
 
                sleep_clk: sleep_clk {
diff --git a/arch/arm/boot/dts/sama5d2.dtsi b/arch/arm/boot/dts/sama5d2.dtsi
index ceb9783..ff7eae8 100644
--- a/arch/arm/boot/dts/sama5d2.dtsi
+++ b/arch/arm/boot/dts/sama5d2.dtsi
@@ -266,7 +266,7 @@
                };
 
                usb1: ohci@00400000 {
-                       compatible = "atmel,sama5d2-ohci", "usb-ohci";
+                       compatible = "atmel,at91rm9200-ohci", "usb-ohci";
                        reg = <0x00400000 0x100000>;
                        interrupts = <41 IRQ_TYPE_LEVEL_HIGH 2>;
                        clocks = <&uhphs_clk>, <&uhphs_clk>, <&uhpck>;
diff --git a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts 
b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
index 73c05da..e00539a 100644
--- a/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
+++ b/arch/arm/boot/dts/sun7i-a20-lamobo-r1.dts
@@ -167,7 +167,7 @@
                                        reg = <8>;
                                        label = "cpu";
                                        ethernet = <&gmac>;
-                                       phy-mode = "rgmii";
+                                       phy-mode = "rgmii-txid";
                                        fixed-link {
                                                speed = <1000>;
                                                full-duplex;
diff --git a/arch/arm/configs/multi_v7_defconfig 
b/arch/arm/configs/multi_v7_defconfig
index 028d2b7..f57ec51 100644
--- a/arch/arm/configs/multi_v7_defconfig
+++ b/arch/arm/configs/multi_v7_defconfig
@@ -824,6 +824,7 @@ CONFIG_QCOM_SMSM=y
 CONFIG_QCOM_WCNSS_CTRL=m
 CONFIG_ROCKCHIP_PM_DOMAINS=y
 CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_CLK_RPM=y
 CONFIG_CHROME_PLATFORMS=y
 CONFIG_STAGING_BOARD=y
 CONFIG_CROS_EC_CHARDEV=m
diff --git a/arch/arm/configs/qcom_defconfig b/arch/arm/configs/qcom_defconfig
index 8c3a010..c73299b 100644
--- a/arch/arm/configs/qcom_defconfig
+++ b/arch/arm/configs/qcom_defconfig
@@ -157,6 +157,8 @@ CONFIG_DMADEVICES=y
 CONFIG_QCOM_BAM_DMA=y
 CONFIG_STAGING=y
 CONFIG_COMMON_CLK_QCOM=y
+CONFIG_QCOM_CLK_RPM=y
+CONFIG_QCOM_CLK_SMD_RPM=y
 CONFIG_APQ_MMCC_8084=y
 CONFIG_IPQ_LCC_806X=y
 CONFIG_MSM_GCC_8660=y
diff --git a/arch/arm/include/asm/kvm_mmu.h b/arch/arm/include/asm/kvm_mmu.h
index 74a44727..a58bbaa 100644
--- a/arch/arm/include/asm/kvm_mmu.h
+++ b/arch/arm/include/asm/kvm_mmu.h
@@ -150,18 +150,12 @@ static inline void __coherent_cache_guest_page(struct 
kvm_vcpu *vcpu,
         * and iterate over the range.
         */
 
-       bool need_flush = !vcpu_has_cache_enabled(vcpu) || ipa_uncached;
-
        VM_BUG_ON(size & ~PAGE_MASK);
 
-       if (!need_flush && !icache_is_pipt())
-               goto vipt_cache;
-
        while (size) {
                void *va = kmap_atomic_pfn(pfn);
 
-               if (need_flush)
-                       kvm_flush_dcache_to_poc(va, PAGE_SIZE);
+               kvm_flush_dcache_to_poc(va, PAGE_SIZE);
 
                if (icache_is_pipt())
                        __cpuc_coherent_user_range((unsigned long)va,
@@ -173,7 +167,6 @@ static inline void __coherent_cache_guest_page(struct 
kvm_vcpu *vcpu,
                kunmap_atomic(va);
        }
 
-vipt_cache:
        if (!icache_is_pipt() && !icache_is_vivt_asid_tagged()) {
                /* any kind of VIPT cache */
                __flush_icache_all();
diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
index 1f59ea05..b7e0125 100644
--- a/arch/arm/include/asm/uaccess.h
+++ b/arch/arm/include/asm/uaccess.h
@@ -478,11 +478,10 @@ extern unsigned long __must_check
 arm_copy_from_user(void *to, const void __user *from, unsigned long n);
 
 static inline unsigned long __must_check
-__copy_from_user(void *to, const void __user *from, unsigned long n)
+__arch_copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        unsigned int __ua_flags;
 
-       check_object_size(to, n, false);
        __ua_flags = uaccess_save_and_enable();
        n = arm_copy_from_user(to, from, n);
        uaccess_restore(__ua_flags);
@@ -495,18 +494,15 @@ extern unsigned long __must_check
 __copy_to_user_std(void __user *to, const void *from, unsigned long n);
 
 static inline unsigned long __must_check
-__copy_to_user(void __user *to, const void *from, unsigned long n)
+__arch_copy_to_user(void __user *to, const void *from, unsigned long n)
 {
 #ifndef CONFIG_UACCESS_WITH_MEMCPY
        unsigned int __ua_flags;
-
-       check_object_size(from, n, true);
        __ua_flags = uaccess_save_and_enable();
        n = arm_copy_to_user(to, from, n);
        uaccess_restore(__ua_flags);
        return n;
 #else
-       check_object_size(from, n, true);
        return arm_copy_to_user(to, from, n);
 #endif
 }
@@ -526,25 +522,49 @@ __clear_user(void __user *addr, unsigned long n)
 }
 
 #else
-#define __copy_from_user(to, from, n)  (memcpy(to, (void __force *)from, n), 0)
-#define __copy_to_user(to, from, n)    (memcpy((void __force *)to, from, n), 0)
+#define __arch_copy_from_user(to, from, n)     \
+                                       (memcpy(to, (void __force *)from, n), 0)
+#define __arch_copy_to_user(to, from, n)       \
+                                       (memcpy((void __force *)to, from, n), 0)
 #define __clear_user(addr, n)          (memset((void __force *)addr, 0, n), 0)
 #endif
 
-static inline unsigned long __must_check copy_from_user(void *to, const void 
__user *from, unsigned long n)
+static inline unsigned long __must_check
+__copy_from_user(void *to, const void __user *from, unsigned long n)
+{
+       check_object_size(to, n, false);
+       return __arch_copy_from_user(to, from, n);
+}
+
+static inline unsigned long __must_check
+copy_from_user(void *to, const void __user *from, unsigned long n)
 {
        unsigned long res = n;
+
+       check_object_size(to, n, false);
+
        if (likely(access_ok(VERIFY_READ, from, n)))
-               res = __copy_from_user(to, from, n);
+               res = __arch_copy_from_user(to, from, n);
        if (unlikely(res))
                memset(to + (n - res), 0, res);
        return res;
 }
 
-static inline unsigned long __must_check copy_to_user(void __user *to, const 
void *from, unsigned long n)
+static inline unsigned long __must_check
+__copy_to_user(void __user *to, const void *from, unsigned long n)
 {
+       check_object_size(from, n, true);
+
+       return __arch_copy_to_user(to, from, n);
+}
+
+static inline unsigned long __must_check
+copy_to_user(void __user *to, const void *from, unsigned long n)
+{
+       check_object_size(from, n, true);
+
        if (access_ok(VERIFY_WRITE, to, n))
-               n = __copy_to_user(to, from, n);
+               n = __arch_copy_to_user(to, from, n);
        return n;
 }
 
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
index 7e45f69..8e8d20c 100644
--- a/arch/arm/kernel/armksyms.c
+++ b/arch/arm/kernel/armksyms.c
@@ -178,6 +178,6 @@ EXPORT_SYMBOL(__pv_offset);
 #endif
 
 #ifdef CONFIG_HAVE_ARM_SMCCC
-EXPORT_SYMBOL(arm_smccc_smc);
-EXPORT_SYMBOL(arm_smccc_hvc);
+EXPORT_SYMBOL(__arm_smccc_smc);
+EXPORT_SYMBOL(__arm_smccc_hvc);
 #endif
diff --git a/arch/arm/kernel/smccc-call.S b/arch/arm/kernel/smccc-call.S
index 2e48b67..e5d4306 100644
--- a/arch/arm/kernel/smccc-call.S
+++ b/arch/arm/kernel/smccc-call.S
@@ -46,17 +46,19 @@ UNWIND(     .fnend)
 /*
  * void smccc_smc(unsigned long a0, unsigned long a1, unsigned long a2,
  *               unsigned long a3, unsigned long a4, unsigned long a5,
- *               unsigned long a6, unsigned long a7, struct arm_smccc_res *res)
+ *               unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
+ *               struct arm_smccc_quirk *quirk)
  */
-ENTRY(arm_smccc_smc)
+ENTRY(__arm_smccc_smc)
        SMCCC SMCCC_SMC
-ENDPROC(arm_smccc_smc)
+ENDPROC(__arm_smccc_smc)
 
 /*
  * void smccc_hvc(unsigned long a0, unsigned long a1, unsigned long a2,
  *               unsigned long a3, unsigned long a4, unsigned long a5,
- *               unsigned long a6, unsigned long a7, struct arm_smccc_res *res)
+ *               unsigned long a6, unsigned long a7, struct arm_smccc_res *res,
+ *               struct arm_smccc_quirk *quirk)
  */
-ENTRY(arm_smccc_hvc)
+ENTRY(__arm_smccc_hvc)
        SMCCC SMCCC_HVC
-ENDPROC(arm_smccc_hvc)
+ENDPROC(__arm_smccc_hvc)
diff --git a/arch/arm/kvm/mmu.c b/arch/arm/kvm/mmu.c
index a5265ed..2fd5c13 100644
--- a/arch/arm/kvm/mmu.c
+++ b/arch/arm/kvm/mmu.c
@@ -292,11 +292,18 @@ static void unmap_stage2_range(struct kvm *kvm, 
phys_addr_t start, u64 size)
        phys_addr_t addr = start, end = start + size;
        phys_addr_t next;
 
+       assert_spin_locked(&kvm->mmu_lock);
        pgd = kvm->arch.pgd + stage2_pgd_index(addr);
        do {
                next = stage2_pgd_addr_end(addr, end);
                if (!stage2_pgd_none(*pgd))
                        unmap_stage2_puds(kvm, pgd, addr, next);
+               /*
+                * If the range is too large, release the kvm->mmu_lock
+                * to prevent starvation and lockup detector warnings.
+                */
+               if (next != end)
+                       cond_resched_lock(&kvm->mmu_lock);
        } while (pgd++, addr = next, addr != end);
 }
 
@@ -803,6 +810,7 @@ void stage2_unmap_vm(struct kvm *kvm)
        int idx;
 
        idx = srcu_read_lock(&kvm->srcu);
+       down_read(&current->mm->mmap_sem);
        spin_lock(&kvm->mmu_lock);
 
        slots = kvm_memslots(kvm);
@@ -810,6 +818,7 @@ void stage2_unmap_vm(struct kvm *kvm)
                stage2_unmap_memslot(kvm, memslot);
 
        spin_unlock(&kvm->mmu_lock);
+       up_read(&current->mm->mmap_sem);
        srcu_read_unlock(&kvm->srcu, idx);
 }
 
@@ -829,7 +838,10 @@ void kvm_free_stage2_pgd(struct kvm *kvm)
        if (kvm->arch.pgd == NULL)
                return;
 
+       spin_lock(&kvm->mmu_lock);
        unmap_stage2_range(kvm, 0, KVM_PHYS_SIZE);
+       spin_unlock(&kvm->mmu_lock);
+
        /* Free the HW pgd, one page at a time */
        free_pages_exact(kvm->arch.pgd, S2_PGD_SIZE);
        kvm->arch.pgd = NULL;
@@ -1804,6 +1816,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
            (KVM_PHYS_SIZE >> PAGE_SHIFT))
                return -EFAULT;
 
+       down_read(&current->mm->mmap_sem);
        /*
         * A memory region could potentially cover multiple VMAs, and any holes
         * between them, so iterate over all of them to find out if we can map
@@ -1847,8 +1860,10 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
                        pa += vm_start - vma->vm_start;
 
                        /* IO region dirty page logging not allowed */
-                       if (memslot->flags & KVM_MEM_LOG_DIRTY_PAGES)
-                               return -EINVAL;
+                       if (memslot->flags & KVM_MEM_LOG_DIRTY_PAGES) {
+                               ret = -EINVAL;
+                               goto out;
+                       }
 
                        ret = kvm_phys_addr_ioremap(kvm, gpa, pa,
                                                    vm_end - vm_start,
@@ -1860,7 +1875,7 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
        } while (hva < reg_end);
 
        if (change == KVM_MR_FLAGS_ONLY)
-               return ret;
+               goto out;
 
        spin_lock(&kvm->mmu_lock);
        if (ret)
@@ -1868,6 +1883,8 @@ int kvm_arch_prepare_memory_region(struct kvm *kvm,
        else
                stage2_flush_memslot(kvm, memslot);
        spin_unlock(&kvm->mmu_lock);
+out:
+       up_read(&current->mm->mmap_sem);
        return ret;
 }
 
diff --git a/arch/arm/kvm/psci.c b/arch/arm/kvm/psci.c
index c2b1315..a08d7a9 100644
--- a/arch/arm/kvm/psci.c
+++ b/arch/arm/kvm/psci.c
@@ -208,9 +208,10 @@ int kvm_psci_version(struct kvm_vcpu *vcpu)
 
 static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu)
 {
-       int ret = 1;
+       struct kvm *kvm = vcpu->kvm;
        unsigned long psci_fn = vcpu_get_reg(vcpu, 0) & ~((u32) 0);
        unsigned long val;
+       int ret = 1;
 
        switch (psci_fn) {
        case PSCI_0_2_FN_PSCI_VERSION:
@@ -230,7 +231,9 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu)
                break;
        case PSCI_0_2_FN_CPU_ON:
        case PSCI_0_2_FN64_CPU_ON:
+               mutex_lock(&kvm->lock);
                val = kvm_psci_vcpu_on(vcpu);
+               mutex_unlock(&kvm->lock);
                break;
        case PSCI_0_2_FN_AFFINITY_INFO:
        case PSCI_0_2_FN64_AFFINITY_INFO:
@@ -279,6 +282,7 @@ static int kvm_psci_0_2_call(struct kvm_vcpu *vcpu)
 
 static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu)
 {
+       struct kvm *kvm = vcpu->kvm;
        unsigned long psci_fn = vcpu_get_reg(vcpu, 0) & ~((u32) 0);
        unsigned long val;
 
@@ -288,7 +292,9 @@ static int kvm_psci_0_1_call(struct kvm_vcpu *vcpu)
                val = PSCI_RET_SUCCESS;
                break;
        case KVM_PSCI_FN_CPU_ON:
+               mutex_lock(&kvm->lock);
                val = kvm_psci_vcpu_on(vcpu);
+               mutex_unlock(&kvm->lock);
                break;
        default:
                val = PSCI_RET_NOT_SUPPORTED;
diff --git a/arch/arm/lib/getuser.S b/arch/arm/lib/getuser.S
index 8ecfd15..df73914 100644
--- a/arch/arm/lib/getuser.S
+++ b/arch/arm/lib/getuser.S
@@ -67,7 +67,7 @@ ENTRY(__get_user_4)
 ENDPROC(__get_user_4)
 
 ENTRY(__get_user_8)
-       check_uaccess r0, 8, r1, r2, __get_user_bad
+       check_uaccess r0, 8, r1, r2, __get_user_bad8
 #ifdef CONFIG_THUMB2_KERNEL
 5: TUSER(ldr)  r2, [r0]
 6: TUSER(ldr)  r3, [r0, #4]
diff --git a/arch/arm/mach-at91/pm.c b/arch/arm/mach-at91/pm.c
index b4332b7..31dde8b 100644
--- a/arch/arm/mach-at91/pm.c
+++ b/arch/arm/mach-at91/pm.c
@@ -289,6 +289,22 @@ static void at91_ddr_standby(void)
                at91_ramc_write(1, AT91_DDRSDRC_LPR, saved_lpr1);
 }
 
+static void sama5d3_ddr_standby(void)
+{
+       u32 lpr0;
+       u32 saved_lpr0;
+
+       saved_lpr0 = at91_ramc_read(0, AT91_DDRSDRC_LPR);
+       lpr0 = saved_lpr0 & ~AT91_DDRSDRC_LPCB;
+       lpr0 |= AT91_DDRSDRC_LPCB_POWER_DOWN;
+
+       at91_ramc_write(0, AT91_DDRSDRC_LPR, lpr0);
+
+       cpu_do_idle();
+
+       at91_ramc_write(0, AT91_DDRSDRC_LPR, saved_lpr0);
+}
+
 /* We manage both DDRAM/SDRAM controllers, we need more than one value to
  * remember.
  */
@@ -323,7 +339,7 @@ static const struct of_device_id const ramc_ids[] 
__initconst = {
        { .compatible = "atmel,at91rm9200-sdramc", .data = at91rm9200_standby },
        { .compatible = "atmel,at91sam9260-sdramc", .data = 
at91sam9_sdram_standby },
        { .compatible = "atmel,at91sam9g45-ddramc", .data = at91_ddr_standby },
-       { .compatible = "atmel,sama5d3-ddramc", .data = at91_ddr_standby },
+       { .compatible = "atmel,sama5d3-ddramc", .data = sama5d3_ddr_standby },
        { /*sentinel*/ }
 };
 
diff --git a/arch/arm/mach-omap2/omap-headsmp.S 
b/arch/arm/mach-omap2/omap-headsmp.S
index fe36ce2..4c6f14c 100644
--- a/arch/arm/mach-omap2/omap-headsmp.S
+++ b/arch/arm/mach-omap2/omap-headsmp.S
@@ -17,6 +17,7 @@
 
 #include <linux/linkage.h>
 #include <linux/init.h>
+#include <asm/assembler.h>
 
 #include "omap44xx.h"
 
@@ -66,7 +67,7 @@ wait_2:       ldr     r2, =AUX_CORE_BOOT0_PA  @ read from 
AuxCoreBoot0
        cmp     r0, r4
        bne     wait_2
        ldr     r12, =API_HYP_ENTRY
-       adr     r0, hyp_boot
+       badr    r0, hyp_boot
        smc     #0
 hyp_boot:
        b       omap_secondary_startup
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c 
b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index 56f917e..507ff07 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -2112,11 +2112,20 @@ static struct omap_hwmod_ocp_if omap3_l4_core__i2c3 = {
 };
 
 /* L4 CORE -> SR1 interface */
+static struct omap_hwmod_addr_space omap3_sr1_addr_space[] = {
+       {
+               .pa_start       = OMAP34XX_SR1_BASE,
+               .pa_end         = OMAP34XX_SR1_BASE + SZ_1K - 1,
+               .flags          = ADDR_TYPE_RT,
+       },
+       { },
+};
 
 static struct omap_hwmod_ocp_if omap34xx_l4_core__sr1 = {
        .master         = &omap3xxx_l4_core_hwmod,
        .slave          = &omap34xx_sr1_hwmod,
        .clk            = "sr_l4_ick",
+       .addr           = omap3_sr1_addr_space,
        .user           = OCP_USER_MPU,
 };
 
@@ -2124,15 +2133,25 @@ static struct omap_hwmod_ocp_if omap36xx_l4_core__sr1 = 
{
        .master         = &omap3xxx_l4_core_hwmod,
        .slave          = &omap36xx_sr1_hwmod,
        .clk            = "sr_l4_ick",
+       .addr           = omap3_sr1_addr_space,
        .user           = OCP_USER_MPU,
 };
 
 /* L4 CORE -> SR1 interface */
+static struct omap_hwmod_addr_space omap3_sr2_addr_space[] = {
+       {
+               .pa_start       = OMAP34XX_SR2_BASE,
+               .pa_end         = OMAP34XX_SR2_BASE + SZ_1K - 1,
+               .flags          = ADDR_TYPE_RT,
+       },
+       { },
+};
 
 static struct omap_hwmod_ocp_if omap34xx_l4_core__sr2 = {
        .master         = &omap3xxx_l4_core_hwmod,
        .slave          = &omap34xx_sr2_hwmod,
        .clk            = "sr_l4_ick",
+       .addr           = omap3_sr2_addr_space,
        .user           = OCP_USER_MPU,
 };
 
@@ -2140,6 +2159,7 @@ static struct omap_hwmod_ocp_if omap36xx_l4_core__sr2 = {
        .master         = &omap3xxx_l4_core_hwmod,
        .slave          = &omap36xx_sr2_hwmod,
        .clk            = "sr_l4_ick",
+       .addr           = omap3_sr2_addr_space,
        .user           = OCP_USER_MPU,
 };
 
diff --git a/arch/arm/mach-pxa/ezx.c b/arch/arm/mach-pxa/ezx.c
index 0b8300e..a057cf9 100644
--- a/arch/arm/mach-pxa/ezx.c
+++ b/arch/arm/mach-pxa/ezx.c
@@ -696,32 +696,7 @@ static struct pxa27x_keypad_platform_data 
e2_keypad_platform_data = {
 };
 #endif /* CONFIG_MACH_EZX_E2 */
 
-#ifdef CONFIG_MACH_EZX_A780
-/* gpio_keys */
-static struct gpio_keys_button a780_buttons[] = {
-       [0] = {
-               .code       = SW_LID,
-               .gpio       = GPIO12_A780_FLIP_LID,
-               .active_low = 0,
-               .desc       = "A780 flip lid",
-               .type       = EV_SW,
-               .wakeup     = 1,
-       },
-};
-
-static struct gpio_keys_platform_data a780_gpio_keys_platform_data = {
-       .buttons  = a780_buttons,
-       .nbuttons = ARRAY_SIZE(a780_buttons),
-};
-
-static struct platform_device a780_gpio_keys = {
-       .name = "gpio-keys",
-       .id   = -1,
-       .dev  = {
-               .platform_data = &a780_gpio_keys_platform_data,
-       },
-};
-
+#if defined(CONFIG_MACH_EZX_A780) || defined(CONFIG_MACH_EZX_A910)
 /* camera */
 static struct regulator_consumer_supply camera_dummy_supplies[] = {
        REGULATOR_SUPPLY("vdd", "0-005d"),
@@ -750,6 +725,35 @@ static struct platform_device camera_supply_dummy_device = 
{
                .platform_data = &camera_dummy_config,
        },
 };
+#endif
+
+#ifdef CONFIG_MACH_EZX_A780
+/* gpio_keys */
+static struct gpio_keys_button a780_buttons[] = {
+       [0] = {
+               .code       = SW_LID,
+               .gpio       = GPIO12_A780_FLIP_LID,
+               .active_low = 0,
+               .desc       = "A780 flip lid",
+               .type       = EV_SW,
+               .wakeup     = 1,
+       },
+};
+
+static struct gpio_keys_platform_data a780_gpio_keys_platform_data = {
+       .buttons  = a780_buttons,
+       .nbuttons = ARRAY_SIZE(a780_buttons),
+};
+
+static struct platform_device a780_gpio_keys = {
+       .name = "gpio-keys",
+       .id   = -1,
+       .dev  = {
+               .platform_data = &a780_gpio_keys_platform_data,
+       },
+};
+
+/* camera */
 static int a780_camera_reset(struct device *dev)
 {
        gpio_set_value(GPIO19_GEN1_CAM_RST, 0);
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 1117421..51634f7 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -479,6 +479,16 @@ config CAVIUM_ERRATUM_27456
 
          If unsure, say Y.
 
+config QCOM_QDF2400_ERRATUM_0065
+       bool "QDF2400 E0065: Incorrect GITS_TYPER.ITT_Entry_size"
+       default y
+       help
+         On Qualcomm Datacenter Technologies QDF2400 SoC, ITS hardware reports
+         ITE size incorrectly. The GITS_TYPER.ITT_Entry_size field should have
+         been indicated as 16Bytes (0xf), not 8Bytes (0x7).
+
+         If unsure, say Y.
+
 endmenu
 
 
diff --git a/arch/arm64/boot/dts/renesas/r8a7795.dtsi 
b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
index bbf594b..bb8709a 100644
--- a/arch/arm64/boot/dts/renesas/r8a7795.dtsi
+++ b/arch/arm64/boot/dts/renesas/r8a7795.dtsi
@@ -563,6 +563,7 @@
                        phy-mode = "rgmii-id";
                        #address-cells = <1>;
                        #size-cells = <0>;
+                       status = "disabled";
                };
 
                can0: can@e6c30000 {
diff --git a/arch/arm64/include/asm/kvm_emulate.h 
b/arch/arm64/include/asm/kvm_emulate.h
index f5ea0ba..fe39e68 100644
--- a/arch/arm64/include/asm/kvm_emulate.h
+++ b/arch/arm64/include/asm/kvm_emulate.h
@@ -240,6 +240,12 @@ static inline u8 kvm_vcpu_trap_get_fault_type(const struct 
kvm_vcpu *vcpu)
        return kvm_vcpu_get_hsr(vcpu) & ESR_ELx_FSC_TYPE;
 }

_______________________________________________
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