Merge tag 'docs-4.18' of git://git.lwn.net/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 19:34:27 +0000 (12:34 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Mon, 4 Jun 2018 19:34:27 +0000 (12:34 -0700)
Pull documentation updates from Jonathan Corbet:
 "There's been a fair amount of work in the docs tree this time around,
  including:

   - Extensive RST conversions and organizational work in the
     memory-management docs thanks to Mike Rapoport.

   - An update of Documentation/features from Andrea Parri and a script
     to keep it updated.

   - Various LICENSES updates from Thomas, along with a script to check
     SPDX tags.

   - Work to fix dangling references to documentation files; this
     involved a fair number of one-liner comment changes outside of
     Documentation/

  ... and the usual list of documentation improvements, typo fixes, etc"

* tag 'docs-4.18' of git://git.lwn.net/linux: (103 commits)
  Documentation: document hung_task_panic kernel parameter
  docs/admin-guide/mm: add high level concepts overview
  docs/vm: move ksm and transhuge from "user" to "internals" section.
  docs: Use the kerneldoc comments for memalloc_no*()
  doc: document scope NOFS, NOIO APIs
  docs: update kernel versions and dates in tables
  docs/vm: transhuge: split userspace bits to admin-guide/mm/transhuge
  docs/vm: transhuge: minor updates
  docs/vm: transhuge: change sections order
  Documentation: arm: clean up Marvell Berlin family info
  Documentation: gpio: driver: Fix a typo and some odd grammar
  docs: ranoops.rst: fix location of ramoops.txt
  scripts/documentation-file-ref-check: rewrite it in perl with auto-fix mode
  docs: uio-howto.rst: use a code block to solve a warning
  mm, THP, doc: Add document for thp_swpout/thp_swpout_fallback
  w1: w1_io.c: fix a kernel-doc warning
  Documentation/process/posting: wrap text at 80 cols
  docs: admin-guide: add cgroup-v2 documentation
  Revert "Documentation/features/vm: Remove arch support status file for 'pte_special'"
  Documentation: refcount-vs-atomic: Update reference to LKMM doc.
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
Documentation/trace/ftrace.rst
MAINTAINERS
arch/alpha/Kconfig
arch/ia64/Kconfig
arch/mips/Kconfig
arch/powerpc/Kconfig
mm/Kconfig
mm/huge_memory.c
mm/mmap.c

                        use by PCI
                        Format: <irq>,<irq>...
  
-       acpi_mask_gpe=  [HW,ACPI]
+       acpi_mask_gpe=  [HW,ACPI]
                        Due to the existence of _Lxx/_Exx, some GPEs triggered
                        by unsupported hardware/firmware features can result in
-                         GPE floodings that cannot be automatically disabled by
-                         the GPE dispatcher.
+                       GPE floodings that cannot be automatically disabled by
+                       the GPE dispatcher.
                        This facility can be used to prevent such uncontrolled
                        GPE floodings.
                        Format: <int>
                        for platform specific values (SB1, Loongson3 and
                        others).
  
-       ccw_timeout_log [S390]
+       ccw_timeout_log [S390]
                        See Documentation/s390/CommonIO for details.
  
-       cgroup_disable= [KNL] Disable a particular controller
+       cgroup_disable= [KNL] Disable a particular controller
                        Format: {name of the controller(s) to disable}
                        The effects of cgroup_disable=foo are:
                        - foo isn't auto-mounted if you mount all cgroups in
                        those clocks in any way. This parameter is useful for
                        debug and development, but should not be needed on a
                        platform with proper driver support.  For more
-                       information, see Documentation/clk.txt.
+                       information, see Documentation/driver-api/clk.rst.
  
        clock=          [BUGS=X86-32, HW] gettimeofday clocksource override.
                        [Deprecated]
                hvc<n>  Use the hypervisor console device <n>. This is for
                        both Xen and PowerPC hypervisors.
  
-                 If the device connected to the port is not a TTY but a braille
-                 device, prepend "brl," before the device type, for instance
+               If the device connected to the port is not a TTY but a braille
+               device, prepend "brl," before the device type, for instance
                        console=brl,ttyS0
                For now, only VisioBraille is supported.
  
  
        consoleblank=   [KNL] The console blank (screen saver) timeout in
                        seconds. A value of 0 disables the blank timer.
-                        Defaults to 0.
+                       Defaults to 0.
  
        coredump_filter=
                        [KNL] Change the default value for
                        or memory reserved is below 4G.
  
        cryptomgr.notests
-                         [KNL] Disable crypto self-tests
+                       [KNL] Disable crypto self-tests
  
        cs89x0_dma=     [HW,NET]
                        Format: <dma>
                        Format: <port#>,<type>
                        See also Documentation/input/devices/joystick-parport.rst
  
-       ddebug_query=   [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
+       ddebug_query=   [KNL,DYNAMIC_DEBUG] Enable debug messages at early boot
                        time. See
                        Documentation/admin-guide/dynamic-debug-howto.rst for
                        details.  Deprecated, see dyndbg.
                        causing system reset or hang due to sending
                        INIT from AP to BSP.
  
-       disable_ddw     [PPC/PSERIES]
+       disable_ddw     [PPC/PSERIES]
                        Disable Dynamic DMA Window support. Use this if
                        to workaround buggy firmware.
  
                        parameter will force ia64_sal_cache_flush to call
                        ia64_pal_cache_flush instead of SAL_CACHE_FLUSH.
  
-       forcepae [X86-32]
+       forcepae        [X86-32]
                        Forcefully enable Physical Address Extension (PAE).
                        Many Pentium M systems disable PAE but may have a
                        functionally usable PAE implementation.
  
        gamma=          [HW,DRM]
  
-       gart_fix_e820=  [X86_64] disable the fix e820 for K8 GART
+       gart_fix_e820=  [X86_64] disable the fix e820 for K8 GART
                        Format: off | on
                        default: on
  
                        x86-64 are 2M (when the CPU supports "pse") and 1G
                        (when the CPU supports the "pdpe1gb" cpuinfo flag).
  
-       hvc_iucv=       [S390] Number of z/VM IUCV hypervisor console (HVC)
-                              terminal devices. Valid values: 0..8
-       hvc_iucv_allow= [S390] Comma-separated list of z/VM user IDs.
-                              If specified, z/VM IUCV HVC accepts connections
-                              from listed z/VM user IDs only.
+       hung_task_panic=
+                       [KNL] Should the hung task detector generate panics.
+                       Format: <integer>
  
+                       A nonzero value instructs the kernel to panic when a
+                       hung task is detected. The default value is controlled
+                       by the CONFIG_BOOTPARAM_HUNG_TASK_PANIC build-time
+                       option. The value selected by this boot parameter can
+                       be changed later by the kernel.hung_task_panic sysctl.
+       hvc_iucv=       [S390]  Number of z/VM IUCV hypervisor console (HVC)
+                               terminal devices. Valid values: 0..8
+       hvc_iucv_allow= [S390]  Comma-separated list of z/VM user IDs.
+                               If specified, z/VM IUCV HVC accepts connections
+                               from listed z/VM user IDs only.
        keep_bootcon    [KNL]
                        Do not unregister boot console at start. This is only
                        useful for debugging when something happens in the window
                        between unregistering the boot console and initializing
                        the real console.
  
-       i2c_bus=        [HW] Override the default board specific I2C bus speed
-                            or register an additional I2C bus that is not
-                            registered from board initialization code.
-                            Format:
-                            <bus_id>,<clkrate>
+       i2c_bus=        [HW]    Override the default board specific I2C bus speed
+                               or register an additional I2C bus that is not
+                               registered from board initialization code.
+                               Format:
+                               <bus_id>,<clkrate>
  
        i8042.debug     [HW] Toggle i8042 debug mode
        i8042.unmask_kbd_data
                        Default: only on s2r transitions on x86; most other
                        architectures force reset to be always executed
        i8042.unlock    [HW] Unlock (ignore) the keylock
-       i8042.kbdreset  [HW] Reset device connected to KBD port
+       i8042.kbdreset  [HW] Reset device connected to KBD port
  
        i810=           [HW,DRM]
  
                        programs exec'd, files mmap'd for exec, and all files
                        opened for read by uid=0.
  
-       ima_template=   [IMA]
+       ima_template=   [IMA]
                        Select one of defined IMA measurements template formats.
                        Formats: { "ima" | "ima-ng" | "ima-sig" }
                        Default: "ima-ng"
  
        ima_template_fmt=
-                       [IMA] Define a custom template format.
+                       [IMA] Define a custom template format.
                        Format: { "field1|...|fieldN" }
  
        ima.ahash_minsize= [IMA] Minimum file size for asynchronous hash usage
        inport.irq=     [HW] Inport (ATI XL and Microsoft) busmouse driver
                        Format: <irq>
  
-       int_pln_enable  [x86] Enable power limit notification interrupt
+       int_pln_enable  [x86] Enable power limit notification interrupt
  
        integrity_audit=[IMA]
                        Format: { "0" | "1" }
                        0       disables intel_idle and fall back on acpi_idle.
                        1 to 9  specify maximum depth of C-state.
  
-       intel_pstate=  [X86]
-                      disable
-                        Do not enable intel_pstate as the default
-                        scaling driver for the supported processors
-                      passive
-                        Use intel_pstate as a scaling driver, but configure it
-                        to work with generic cpufreq governors (instead of
-                        enabling its internal governor).  This mode cannot be
-                        used along with the hardware-managed P-states (HWP)
-                        feature.
-                      force
-                        Enable intel_pstate on systems that prohibit it by default
-                        in favor of acpi-cpufreq. Forcing the intel_pstate driver
-                        instead of acpi-cpufreq may disable platform features, such
-                        as thermal controls and power capping, that rely on ACPI
-                        P-States information being indicated to OSPM and therefore
-                        should be used with caution. This option does not work with
-                        processors that aren't supported by the intel_pstate driver
-                        or on platforms that use pcc-cpufreq instead of acpi-cpufreq.
-                      no_hwp
-                        Do not enable hardware P state control (HWP)
-                        if available.
-               hwp_only
-                       Only load intel_pstate on systems which support
-                       hardware P state control (HWP) if available.
-               support_acpi_ppc
-                       Enforce ACPI _PPC performance limits. If the Fixed ACPI
-                       Description Table, specifies preferred power management
-                       profile as "Enterprise Server" or "Performance Server",
-                       then this feature is turned on by default.
-               per_cpu_perf_limits
-                       Allow per-logical-CPU P-State performance control limits using
-                       cpufreq sysfs interface
+       intel_pstate=   [X86]
+                       disable
+                         Do not enable intel_pstate as the default
+                         scaling driver for the supported processors
+                       passive
+                         Use intel_pstate as a scaling driver, but configure it
+                         to work with generic cpufreq governors (instead of
+                         enabling its internal governor).  This mode cannot be
+                         used along with the hardware-managed P-states (HWP)
+                         feature.
+                       force
+                         Enable intel_pstate on systems that prohibit it by default
+                         in favor of acpi-cpufreq. Forcing the intel_pstate driver
+                         instead of acpi-cpufreq may disable platform features, such
+                         as thermal controls and power capping, that rely on ACPI
+                         P-States information being indicated to OSPM and therefore
+                         should be used with caution. This option does not work with
+                         processors that aren't supported by the intel_pstate driver
+                         or on platforms that use pcc-cpufreq instead of acpi-cpufreq.
+                       no_hwp
+                         Do not enable hardware P state control (HWP)
+                         if available.
+                       hwp_only
+                         Only load intel_pstate on systems which support
+                         hardware P state control (HWP) if available.
+                       support_acpi_ppc
+                         Enforce ACPI _PPC performance limits. If the Fixed ACPI
+                         Description Table, specifies preferred power management
+                         profile as "Enterprise Server" or "Performance Server",
+                         then this feature is turned on by default.
+                       per_cpu_perf_limits
+                         Allow per-logical-CPU P-State performance control limits using
+                         cpufreq sysfs interface
  
        intremap=       [X86-64, Intel-IOMMU]
                        on      enable Interrupt Remapping (default)
                nopanic
                merge
                nomerge
 -              forcesac
                soft
                pt              [x86, IA-64]
                nobypass        [PPC/POWERNV]
                        * [no]ncqtrim: Turn off queued DSM TRIM.
  
                        * nohrst, nosrst, norst: suppress hard, soft
-                           and both resets.
+                         and both resets.
  
                        * rstonce: only attempt one reset during
                          hot-unplug link recovery
                        [KNL,SH] Allow user to override the default size for
                        per-device physically contiguous DMA buffers.
  
-         memhp_default_state=online/offline
+       memhp_default_state=online/offline
                        [KNL] Set the initial state for the memory hotplug
                        onlining policy. If not specified, the default value is
                        set according to the
                        allow data leaks with this option, which is equivalent
                        to spectre_v2=off.
  
 +      nospec_store_bypass_disable
 +                      [HW] Disable all mitigations for the Speculative Store Bypass vulnerability
 +
        noxsave         [BUGS=X86] Disables x86 extended register state save
                        and restore using xsave. The kernel will fallback to
                        enabling legacy floating-point and sse state.
                        [X86,PV_OPS] Disable paravirtualized VMware scheduler
                        clock and use the default one.
  
-       no-steal-acc    [X86,KVM] Disable paravirtualized steal time accounting.
+       no-steal-acc    [X86,KVM] Disable paravirtualized steal time accounting.
                        steal time is computed, but won't influence scheduler
                        behaviour
  
        notsc           [BUGS=X86-32] Disable Time Stamp Counter
  
        nowatchdog      [KNL] Disable both lockup detectors, i.e.
-                         soft-lockup and NMI watchdog (hard-lockup).
+                       soft-lockup and NMI watchdog (hard-lockup).
  
        nowb            [ARM]
  
                        If the dependencies are under your control, you can
                        turn on cpu0_hotplug.
  
-       nps_mtm_hs_ctr= [KNL,ARC]
+       nps_mtm_hs_ctr= [KNL,ARC]
                        This parameter sets the maximum duration, in
                        cycles, each HW thread of the CTOP can run
                        without interruptions, before HW switches it.
  
        pci=option[,option...]  [PCI] various PCI subsystem options:
                earlydump       [X86] dump PCI config space before the kernel
-                               changes anything
+                               changes anything
                off             [X86] don't probe for the PCI bus
                bios            [X86-32] force use of PCI BIOS, don't access
                                the hardware directly. Use this if your machine
                                is enabled by default.  If you need to use this,
                                please report a bug.
                nocrs           [X86] Ignore PCI host bridge windows from ACPI.
-                               If you need to use this, please report a bug.
+                               If you need to use this, please report a bug.
                routeirq        Do IRQ routing for all PCI devices.
                                This is normally done in pci_enable_device(),
                                so this option is a temporary workaround
                        cache (risks via metadata attacks are mostly
                        unchanged). Debug options disable merging on their
                        own.
-                       For more information see Documentation/vm/slub.txt.
+                       For more information see Documentation/vm/slub.rst.
  
        slab_max_order= [MM, SLAB]
                        Determines the maximum allowed order for slabs.
                        slub_debug can create guard zones around objects and
                        may poison objects when not in use. Also tracks the
                        last alloc / free. For more information see
-                       Documentation/vm/slub.txt.
+                       Documentation/vm/slub.rst.
  
        slub_memcg_sysfs=       [MM, SLUB]
                        Determines whether to enable sysfs directories for
                        Determines the maximum allowed order for slabs.
                        A high setting may cause OOMs due to memory
                        fragmentation. For more information see
-                       Documentation/vm/slub.txt.
+                       Documentation/vm/slub.rst.
  
        slub_min_objects=       [MM, SLUB]
                        The minimum number of objects per slab. SLUB will
                        the number of objects indicated. The higher the number
                        of objects the smaller the overhead of tracking slabs
                        and the less frequently locks need to be acquired.
-                       For more information see Documentation/vm/slub.txt.
+                       For more information see Documentation/vm/slub.rst.
  
        slub_min_order= [MM, SLUB]
                        Determines the minimum page order for slabs. Must be
                        lower than slub_max_order.
-                       For more information see Documentation/vm/slub.txt.
+                       For more information see Documentation/vm/slub.rst.
  
        slub_nomerge    [MM, SLUB]
                        Same with slab_nomerge. This is supported for legacy.
                        Not specifying this option is equivalent to
                        spectre_v2=auto.
  
 +      spec_store_bypass_disable=
 +                      [HW] Control Speculative Store Bypass (SSB) Disable mitigation
 +                      (Speculative Store Bypass vulnerability)
 +
 +                      Certain CPUs are vulnerable to an exploit against a
 +                      a common industry wide performance optimization known
 +                      as "Speculative Store Bypass" in which recent stores
 +                      to the same memory location may not be observed by
 +                      later loads during speculative execution. The idea
 +                      is that such stores are unlikely and that they can
 +                      be detected prior to instruction retirement at the
 +                      end of a particular speculation execution window.
 +
 +                      In vulnerable processors, the speculatively forwarded
 +                      store can be used in a cache side channel attack, for
 +                      example to read memory to which the attacker does not
 +                      directly have access (e.g. inside sandboxed code).
 +
 +                      This parameter controls whether the Speculative Store
 +                      Bypass optimization is used.
 +
 +                      on      - Unconditionally disable Speculative Store Bypass
 +                      off     - Unconditionally enable Speculative Store Bypass
 +                      auto    - Kernel detects whether the CPU model contains an
 +                                implementation of Speculative Store Bypass and
 +                                picks the most appropriate mitigation. If the
 +                                CPU is not vulnerable, "off" is selected. If the
 +                                CPU is vulnerable the default mitigation is
 +                                architecture and Kconfig dependent. See below.
 +                      prctl   - Control Speculative Store Bypass per thread
 +                                via prctl. Speculative Store Bypass is enabled
 +                                for a process by default. The state of the control
 +                                is inherited on fork.
 +                      seccomp - Same as "prctl" above, but all seccomp threads
 +                                will disable SSB unless they explicitly opt out.
 +
 +                      Not specifying this option is equivalent to
 +                      spec_store_bypass_disable=auto.
 +
 +                      Default mitigations:
 +                      X86:    If CONFIG_SECCOMP=y "seccomp", otherwise "prctl"
 +
        spia_io_base=   [HW,MTD]
        spia_fio_base=
        spia_pedr=
                        Format: [always|madvise|never]
                        Can be used to control the default behavior of the system
                        with respect to transparent hugepages.
-                       See Documentation/vm/transhuge.txt for more details.
+                       See Documentation/admin-guide/mm/transhuge.rst
+                       for more details.
  
        tsc=            Disable clocksource stability checks for TSC.
                        Format: <string>
  
        usbcore.initial_descriptor_timeout=
                        [USB] Specifies timeout for the initial 64-byte
-                         USB_REQ_GET_DESCRIPTOR request in milliseconds
+                       USB_REQ_GET_DESCRIPTOR request in milliseconds
                        (default 5000 = 5.0 seconds).
  
        usbcore.nousb   [USB] Disable the USB subsystem
@@@ -224,6 -224,8 +224,8 @@@ of ftrace. Here is a list of some of th
        has a side effect of enabling or disabling specific functions
        to be traced. Echoing names of functions into this file
        will limit the trace to only those functions.
+       This influences the tracers "function" and "function_graph"
+       and thus also function profiling (see "function_profile_enabled").
  
        The functions listed in "available_filter_functions" are what
        can be written into this file.
        Functions listed in this file will cause the function graph
        tracer to only trace these functions and the functions that
        they call. (See the section "dynamic ftrace" for more details).
+       Note, set_ftrace_filter and set_ftrace_notrace still affects
+       what functions are being traced.
  
    set_graph_notrace:
  
  
        This lists the functions that ftrace has processed and can trace.
        These are the function names that you can pass to
-       "set_ftrace_filter" or "set_ftrace_notrace".
+       "set_ftrace_filter", "set_ftrace_notrace",
+       "set_graph_function", or "set_graph_notrace".
        (See the section "dynamic ftrace" below for more details.)
  
    dyn_ftrace_total_info:
                and ticks at the same rate as the hardware clocksource.
  
        boot:
 -              Same as mono. Used to be a separate clock which accounted
 -              for the time spent in suspend while CLOCK_MONOTONIC did
 -              not.
 +              This is the boot clock (CLOCK_BOOTTIME) and is based on the
 +              fast monotonic clock, but also accounts for time spent in
 +              suspend. Since the clock access is designed for use in
 +              tracing in the suspend path, some side effects are possible
 +              if clock is accessed after the suspend time is accounted before
 +              the fast mono clock is updated. In this case, the clock update
 +              appears to happen slightly sooner than it normally would have.
 +              Also on 32-bit systems, it's possible that the 64-bit boot offset
 +              sees a partial update. These effects are rare and post
 +              processing should be able to handle them. See comments in the
 +              ktime_get_boot_fast_ns() function for more information.
  
        To set a clock, simply echo the clock name into this file::
  
diff --combined MAINTAINERS
@@@ -137,9 -137,9 +137,9 @@@ Maintainers List (try to look for most 
                -----------------------------------
  
  3C59X NETWORK DRIVER
 -M:    Steffen Klassert <klassert@mathematik.tu-chemnitz.de>
 +M:    Steffen Klassert <klassert@kernel.org>
  L:    netdev@vger.kernel.org
 -S:    Maintained
 +S:    Odd Fixes
  F:    Documentation/networking/vortex.txt
  F:    drivers/net/ethernet/3com/3c59x.c
  
@@@ -564,9 -564,8 +564,9 @@@ S: Maintaine
  F:    drivers/media/dvb-frontends/af9033*
  
  AFFS FILE SYSTEM
 +M:    David Sterba <dsterba@suse.com>
  L:    linux-fsdevel@vger.kernel.org
 -S:    Orphan
 +S:    Odd Fixes
  F:    Documentation/filesystems/affs.txt
  F:    fs/affs/
  
@@@ -906,8 -905,6 +906,8 @@@ ANDROID ION DRIVE
  M:    Laura Abbott <labbott@redhat.com>
  M:    Sumit Semwal <sumit.semwal@linaro.org>
  L:    devel@driverdev.osuosl.org
 +L:    dri-devel@lists.freedesktop.org
 +L:    linaro-mm-sig@lists.linaro.org (moderated for non-subscribers)
  S:    Supported
  F:    drivers/staging/android/ion
  F:    drivers/staging/android/uapi/ion.h
@@@ -1211,6 -1208,7 +1211,6 @@@ F:      drivers/*/*alpine
  ARM/ARTPEC MACHINE SUPPORT
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
  M:    Lars Persson <lars.persson@axis.com>
 -M:    Niklas Cassel <niklas.cassel@axis.com>
  S:    Maintained
  L:    linux-arm-kernel@axis.com
  F:    arch/arm/mach-artpec
@@@ -2332,7 -2330,7 +2332,7 @@@ F:      drivers/gpio/gpio-ath79.
  F:    Documentation/devicetree/bindings/gpio/gpio-ath79.txt
  
  ATHEROS ATH GENERIC UTILITIES
 -M:    "Luis R. Rodriguez" <mcgrof@do-not-panic.com>
 +M:    Kalle Valo <kvalo@codeaurora.org>
  L:    linux-wireless@vger.kernel.org
  S:    Supported
  F:    drivers/net/wireless/ath/*
@@@ -2347,7 -2345,7 +2347,7 @@@ S:      Maintaine
  F:    drivers/net/wireless/ath/ath5k/
  
  ATHEROS ATH6KL WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@qca.qualcomm.com>
 +M:    Kalle Valo <kvalo@codeaurora.org>
  L:    linux-wireless@vger.kernel.org
  W:    http://wireless.kernel.org/en/users/Drivers/ath6kl
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
@@@ -2554,6 -2552,7 +2554,6 @@@ F:      Documentation/devicetree/bindings/so
  F:    sound/soc/atmel/tse850-pcm5142.c
  
  AZ6007 DVB DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -2618,7 -2617,7 +2618,7 @@@ S:      Maintaine
  F:    drivers/net/hamradio/baycom*
  
  BCACHE (BLOCK LAYER CACHE)
 -M:    Michael Lyle <mlyle@lyle.org>
 +M:    Coly Li <colyli@suse.de>
  M:    Kent Overstreet <kent.overstreet@gmail.com>
  L:    linux-bcache@vger.kernel.org
  W:    http://bcache.evilpiepirate.org
@@@ -3082,6 -3081,7 +3082,6 @@@ F:      include/linux/btrfs
  F:    include/uapi/linux/btrfs*
  
  BTTV VIDEO4LINUX DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -3691,6 -3691,7 +3691,6 @@@ F:      drivers/cpufreq/arm_big_little_dt.
  
  CPU POWER MONITORING SUBSYSTEM
  M:    Thomas Renninger <trenn@suse.com>
 -M:    Shuah Khan <shuahkh@osg.samsung.com>
  M:    Shuah Khan <shuah@kernel.org>
  L:    linux-pm@vger.kernel.org
  S:    Maintained
@@@ -3809,6 -3810,7 +3809,6 @@@ S:      Maintaine
  F:    drivers/media/dvb-frontends/cx24120*
  
  CX88 VIDEO4LINUX DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -4309,7 -4311,7 +4309,7 @@@ F:      Documentation/driver-api/dma-buf.rs
  T:    git git://anongit.freedesktop.org/drm/drm-misc
  
  DMA GENERIC OFFLOAD ENGINE SUBSYSTEM
 -M:    Vinod Koul <vinod.koul@intel.com>
 +M:    Vinod Koul <vkoul@kernel.org>
  L:    dmaengine@vger.kernel.org
  Q:    https://patchwork.kernel.org/project/linux-dmaengine/list/
  S:    Maintained
@@@ -4330,14 -4332,12 +4330,14 @@@ W:   http://git.infradead.org/users/hch/d
  S:    Supported
  F:    lib/dma-debug.c
  F:    lib/dma-direct.c
 +F:    lib/dma-noncoherent.c
  F:    lib/dma-virt.c
  F:    drivers/base/dma-mapping.c
  F:    drivers/base/dma-coherent.c
  F:    include/asm-generic/dma-mapping.h
  F:    include/linux/dma-direct.h
  F:    include/linux/dma-mapping.h
 +F:    include/linux/dma-noncoherent.h
  
  DME1737 HARDWARE MONITOR DRIVER
  M:    Juerg Haefliger <juergh@gmail.com>
@@@ -5051,6 -5051,7 +5051,6 @@@ F:      drivers/edac/thunderx_edac
  
  EDAC-CORE
  M:    Borislav Petkov <bp@alien8.de>
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp.git for-next
@@@ -5079,6 -5080,7 +5079,6 @@@ S:      Maintaine
  F:    drivers/edac/fsl_ddr_edac.*
  
  EDAC-GHES
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -5095,18 -5097,21 +5095,18 @@@ S:   Maintaine
  F:    drivers/edac/i5000_edac.c
  
  EDAC-I5400
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/i5400_edac.c
  
  EDAC-I7300
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
  F:    drivers/edac/i7300_edac.c
  
  EDAC-I7CORE
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -5156,6 -5161,7 +5156,6 @@@ S:      Maintaine
  F:    drivers/edac/r82600_edac.c
  
  EDAC-SBRIDGE
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-edac@vger.kernel.org
  S:    Maintained
@@@ -5214,6 -5220,7 +5214,6 @@@ S:      Maintaine
  F:    drivers/net/ethernet/ibm/ehea/
  
  EM28XX VIDEO4LINUX DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -5390,6 -5397,7 +5390,6 @@@ S:      Maintaine
  F:    drivers/iommu/exynos-iommu.c
  
  EZchip NPS platform support
 -M:    Elad Kanfi <eladkan@mellanox.com>
  M:    Vineet Gupta <vgupta@synopsys.com>
  S:    Supported
  F:    arch/arc/plat-eznps
@@@ -6219,7 -6227,6 +6219,7 @@@ L:      linux-hwmon@vger.kernel.or
  W:    http://hwmon.wiki.kernel.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/
  F:    Documentation/hwmon/
  F:    drivers/hwmon/
  F:    include/linux/hwmon*.h
@@@ -6506,15 -6513,9 +6506,15 @@@ F:    Documentation/networking/hinic.tx
  F:    drivers/net/ethernet/huawei/hinic/
  
  HUGETLB FILESYSTEM
 -M:    Nadia Yvette Chambers <nyc@holomorphy.com>
 +M:    Mike Kravetz <mike.kravetz@oracle.com>
 +L:    linux-mm@kvack.org
  S:    Maintained
  F:    fs/hugetlbfs/
 +F:    mm/hugetlb.c
 +F:    include/linux/hugetlb.h
 +F:    Documentation/admin-guide/mm/hugetlbpage.rst
 +F:    Documentation/vm/hugetlbfs_reserv.rst
 +F:    Documentation/ABI/testing/sysfs-kernel-mm-hugepages
  
  HVA ST MEDIA DRIVER
  M:    Jean-Christophe Trotin <jean-christophe.trotin@st.com>
@@@ -7410,6 -7411,16 +7410,6 @@@ S:     Obsolet
  F:    include/uapi/linux/ipx.h
  F:    drivers/staging/ipx/
  
 -IRDA SUBSYSTEM
 -M:    Samuel Ortiz <samuel@sortiz.org>
 -L:    irda-users@lists.sourceforge.net (subscribers-only)
 -L:    netdev@vger.kernel.org
 -W:    http://irda.sourceforge.net/
 -S:    Obsolete
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/sameo/irda-2.6.git
 -F:    Documentation/networking/irda.txt
 -F:    drivers/staging/irda/
 -
  IRQ DOMAINS (IRQ NUMBER MAPPING LIBRARY)
  M:    Marc Zyngier <marc.zyngier@arm.com>
  S:    Maintained
@@@ -7674,11 -7685,9 +7674,11 @@@ L:    linux-kbuild@vger.kernel.or
  S:    Maintained
  F:    Documentation/kbuild/
  F:    Makefile
 -F:    scripts/Makefile.*
 +F:    scripts/Kbuild*
 +F:    scripts/Makefile*
  F:    scripts/basic/
  F:    scripts/mk*
 +F:    scripts/mod/
  F:    scripts/package/
  
  KERNEL JANITORS
@@@ -7703,10 -7712,10 +7703,10 @@@ F:   include/linux/sunrpc
  F:    include/uapi/linux/sunrpc/
  
  KERNEL SELFTEST FRAMEWORK
 -M:    Shuah Khan <shuahkh@osg.samsung.com>
  M:    Shuah Khan <shuah@kernel.org>
  L:    linux-kselftest@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest.git
 +Q:    https://patchwork.kernel.org/project/linux-kselftest/list/
  S:    Maintained
  F:    tools/testing/selftests/
  F:    Documentation/dev-tools/kselftest*
@@@ -7744,7 -7753,7 +7744,7 @@@ F:      arch/x86/include/asm/svm.
  F:    arch/x86/kvm/svm.c
  
  KERNEL VIRTUAL MACHINE FOR ARM (KVM/arm)
 -M:    Christoffer Dall <christoffer.dall@linaro.org>
 +M:    Christoffer Dall <christoffer.dall@arm.com>
  M:    Marc Zyngier <marc.zyngier@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kvmarm@lists.cs.columbia.edu
@@@ -7758,7 -7767,7 +7758,7 @@@ F:      virt/kvm/arm
  F:    include/kvm/arm_*
  
  KERNEL VIRTUAL MACHINE FOR ARM64 (KVM/arm64)
 -M:    Christoffer Dall <christoffer.dall@linaro.org>
 +M:    Christoffer Dall <christoffer.dall@arm.com>
  M:    Marc Zyngier <marc.zyngier@arm.com>
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  L:    kvmarm@lists.cs.columbia.edu
@@@ -8870,6 -8879,7 +8870,6 @@@ F:      Documentation/devicetree/bindings/me
  F:    drivers/staging/media/tegra-vde/
  
  MEDIA INPUT INFRASTRUCTURE (V4L/DVB)
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  P:    LinuxTV.org Project
  L:    linux-media@vger.kernel.org
@@@ -9029,6 -9039,7 +9029,6 @@@ Q:      http://patchwork.ozlabs.org/project/
  F:    drivers/net/ethernet/mellanox/mlx5/core/en_*
  
  MELLANOX ETHERNET INNOVA DRIVER
 -M:    Ilan Tayari <ilant@mellanox.com>
  R:    Boris Pismenny <borisp@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -9038,6 -9049,7 +9038,6 @@@ F:      drivers/net/ethernet/mellanox/mlx5/c
  F:    include/linux/mlx5/mlx5_ifc_fpga.h
  
  MELLANOX ETHERNET INNOVA IPSEC DRIVER
 -M:    Ilan Tayari <ilant@mellanox.com>
  R:    Boris Pismenny <borisp@mellanox.com>
  L:    netdev@vger.kernel.org
  S:    Supported
@@@ -9093,6 -9105,7 +9093,6 @@@ F:      include/uapi/rdma/mlx4-abi.
  
  MELLANOX MLX5 core VPI driver
  M:    Saeed Mahameed <saeedm@mellanox.com>
 -M:    Matan Barak <matanb@mellanox.com>
  M:    Leon Romanovsky <leonro@mellanox.com>
  L:    netdev@vger.kernel.org
  L:    linux-rdma@vger.kernel.org
@@@ -9103,6 -9116,7 +9103,6 @@@ F:      drivers/net/ethernet/mellanox/mlx5/c
  F:    include/linux/mlx5/
  
  MELLANOX MLX5 IB driver
 -M:    Matan Barak <matanb@mellanox.com>
  M:    Leon Romanovsky <leonro@mellanox.com>
  L:    linux-rdma@vger.kernel.org
  W:    http://www.mellanox.com
@@@ -9703,7 -9717,7 +9703,7 @@@ S:      Maintaine
  F:    drivers/net/ethernet/netronome/
  
  NETWORK BLOCK DEVICE (NBD)
 -M:    Josef Bacik <jbacik@fb.com>
 +M:    Josef Bacik <josef@toxicpanda.com>
  S:    Maintained
  L:    linux-block@vger.kernel.org
  L:    nbd@other.debian.org
@@@ -9719,7 -9733,6 +9719,7 @@@ W:      https://fedorahosted.org/dropwatch
  F:    net/core/drop_monitor.c
  
  NETWORKING DRIVERS
 +M:    "David S. Miller" <davem@davemloft.net>
  L:    netdev@vger.kernel.org
  W:    http://www.linuxfoundation.org/en/Net
  Q:    http://patchwork.ozlabs.org/project/netdev/list/
@@@ -9836,6 -9849,7 +9836,6 @@@ F:      net/netfilter/xt_CONNSECMARK.
  F:    net/netfilter/xt_SECMARK.c
  
  NETWORKING [TLS]
 -M:    Ilya Lesokhin <ilyal@mellanox.com>
  M:    Aviad Yehezkel <aviadye@mellanox.com>
  M:    Dave Watson <davejwatson@fb.com>
  L:    netdev@vger.kernel.org
@@@ -9875,7 -9889,7 +9875,7 @@@ F:      include/linux/platform_data/nxp-nci.
  F:    Documentation/devicetree/bindings/net/nfc/
  
  NFS, SUNRPC, AND LOCKD CLIENTS
 -M:    Trond Myklebust <trond.myklebust@primarydata.com>
 +M:    Trond Myklebust <trond.myklebust@hammerspace.com>
  M:    Anna Schumaker <anna.schumaker@netapp.com>
  L:    linux-nfs@vger.kernel.org
  W:    http://client.linux-nfs.org
@@@ -10895,6 -10909,7 +10895,6 @@@ F:   drivers/pci/host
  F:    drivers/pci/dwc/
  
  PCIE DRIVER FOR AXIS ARTPEC
 -M:    Niklas Cassel <niklas.cassel@axis.com>
  M:    Jesper Nilsson <jesper.nilsson@axis.com>
  L:    linux-arm-kernel@axis.com
  L:    linux-pci@vger.kernel.org
@@@ -11635,7 -11650,7 +11635,7 @@@ S:   Maintaine
  F:    drivers/media/tuners/qt1010*
  
  QUALCOMM ATHEROS ATH10K WIRELESS DRIVER
 -M:    Kalle Valo <kvalo@qca.qualcomm.com>
 +M:    Kalle Valo <kvalo@codeaurora.org>
  L:    ath10k@lists.infradead.org
  W:    http://wireless.kernel.org/en/users/Drivers/ath10k
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/ath.git
@@@ -11686,7 -11701,7 +11686,7 @@@ S:   Maintaine
  F:    drivers/media/platform/qcom/venus/
  
  QUALCOMM WCN36XX WIRELESS DRIVER
 -M:    Eugene Krasnikov <k.eugene.e@gmail.com>
 +M:    Kalle Valo <kvalo@codeaurora.org>
  L:    wcn36xx@lists.infradead.org
  W:    http://wireless.kernel.org/en/users/Drivers/wcn36xx
  T:    git git://github.com/KrasnikovEugene/wcn36xx.git
@@@ -12224,7 -12239,7 +12224,7 @@@ F:   Documentation/s390/vfio-ccw.tx
  F:    include/uapi/linux/vfio_ccw.h
  
  S390 ZCRYPT DRIVER
 -M:    Harald Freudenberger <freude@de.ibm.com>
 +M:    Harald Freudenberger <freude@linux.ibm.com>
  L:    linux-s390@vger.kernel.org
  W:    http://www.ibm.com/developerworks/linux/linux390/
  S:    Supported
@@@ -12253,6 -12268,7 +12253,6 @@@ S:   Odd Fixe
  F:    drivers/media/i2c/saa6588*
  
  SAA7134 VIDEO4LINUX DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -12491,7 -12507,6 +12491,7 @@@ F:   drivers/scsi/st_*.
  SCTP PROTOCOL
  M:    Vlad Yasevich <vyasevich@gmail.com>
  M:    Neil Horman <nhorman@tuxdriver.com>
 +M:    Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
  L:    linux-sctp@vger.kernel.org
  W:    http://lksctp.sourceforge.net
  S:    Maintained
@@@ -12757,6 -12772,7 +12757,6 @@@ S:   Maintaine
  F:    drivers/media/radio/si4713/radio-usb-si4713.c
  
  SIANO DVB DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -13268,12 -13284,6 +13268,12 @@@ M: Jan-Benedict Glaw <jbglaw@lug-owl.de
  S:    Maintained
  F:    arch/alpha/kernel/srm_env.c
  
 +ST STM32 I2C/SMBUS DRIVER
 +M:    Pierre-Yves MORDRET <pierre-yves.mordret@st.com>
 +L:    linux-i2c@vger.kernel.org
 +S:    Maintained
 +F:    drivers/i2c/busses/i2c-stm32*
 +
  STABLE BRANCH
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    stable@vger.kernel.org
@@@ -13753,6 -13763,7 +13753,6 @@@ S:   Maintaine
  F:    drivers/media/i2c/tda9840*
  
  TEA5761 TUNER DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -13761,6 -13772,7 +13761,6 @@@ S:   Odd fixe
  F:    drivers/media/tuners/tea5761.*
  
  TEA5767 TUNER DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -13850,6 -13862,7 +13850,6 @@@ S:   Supporte
  F:    drivers/iommu/tegra*
  
  TEGRA KBC DRIVER
 -M:    Rakesh Iyer <riyer@nvidia.com>
  M:    Laxman Dewangan <ldewangan@nvidia.com>
  S:    Supported
  F:    drivers/input/keyboard/tegra-kbc.c
@@@ -13952,7 -13965,7 +13952,7 @@@ THUNDERBOLT DRIVE
  M:    Andreas Noever <andreas.noever@gmail.com>
  M:    Michael Jamet <michael.jamet@intel.com>
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 -M:    Yehezkel Bernat <yehezkel.bernat@intel.com>
 +M:    Yehezkel Bernat <YehezkelShB@gmail.com>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/westeri/thunderbolt.git
  S:    Maintained
  F:    Documentation/admin-guide/thunderbolt.rst
@@@ -13962,7 -13975,7 +13962,7 @@@ F:   include/linux/thunderbolt.
  THUNDERBOLT NETWORK DRIVER
  M:    Michael Jamet <michael.jamet@intel.com>
  M:    Mika Westerberg <mika.westerberg@linux.intel.com>
 -M:    Yehezkel Bernat <yehezkel.bernat@intel.com>
 +M:    Yehezkel Bernat <YehezkelShB@gmail.com>
  L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/thunderbolt.c
@@@ -14176,6 -14189,7 +14176,6 @@@ F:   Documentation/networking/tlan.tx
  F:    drivers/net/ethernet/ti/tlan.*
  
  TM6000 VIDEO4LINUX DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -14658,6 -14672,7 +14658,6 @@@ F:   drivers/usb/common/usb-otg-fsm.
  
  USB OVER IP DRIVER
  M:    Valentina Manea <valentina.manea.m@gmail.com>
 -M:    Shuah Khan <shuahkh@osg.samsung.com>
  M:    Shuah Khan <shuah@kernel.org>
  L:    linux-usb@vger.kernel.org
  S:    Maintained
@@@ -15401,6 -15416,7 +15401,6 @@@ S:   Maintaine
  F:    arch/x86/entry/vdso/
  
  XC2028/3028 TUNER DRIVER
 -M:    Mauro Carvalho Chehab <mchehab@s-opensource.com>
  M:    Mauro Carvalho Chehab <mchehab@kernel.org>
  L:    linux-media@vger.kernel.org
  W:    https://linuxtv.org
@@@ -15516,14 -15532,6 +15516,14 @@@ L: linux-kernel@vger.kernel.or
  S:    Supported
  F:    drivers/char/xillybus/
  
 +XLP9XX I2C DRIVER
 +M:    George Cherian <george.cherian@cavium.com>
 +M:    Jan Glauber <jglauber@cavium.com>
 +L:    linux-i2c@vger.kernel.org
 +W:    http://www.cavium.com
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-xlp9xx.c
 +
  XRA1403 GPIO EXPANDER
  M:    Nandor Han <nandor.han@ge.com>
  M:    Semi Malinen <semi.malinen@ge.com>
@@@ -15642,7 -15650,7 +15642,7 @@@ L:   linux-mm@kvack.or
  S:    Maintained
  F:    mm/zsmalloc.c
  F:    include/linux/zsmalloc.h
- F:    Documentation/vm/zsmalloc.txt
+ F:    Documentation/vm/zsmalloc.rst
  
  ZSWAP COMPRESSED SWAP CACHING
  M:    Seth Jennings <sjenning@redhat.com>
diff --combined arch/alpha/Kconfig
@@@ -10,8 -10,6 +10,8 @@@ config ALPH
        select HAVE_OPROFILE
        select HAVE_PCSPKR_PLATFORM
        select HAVE_PERF_EVENTS
 +      select NEED_DMA_MAP_STATE
 +      select NEED_SG_DMA_LENGTH
        select VIRT_TO_BUS
        select GENERIC_IRQ_PROBE
        select AUTO_IRQ_AFFINITY if SMP
@@@ -66,6 -64,15 +66,6 @@@ config ZONE_DM
        bool
        default y
  
 -config ARCH_DMA_ADDR_T_64BIT
 -      def_bool y
 -
 -config NEED_DMA_MAP_STATE
 -       def_bool y
 -
 -config NEED_SG_DMA_LENGTH
 -      def_bool y
 -
  config GENERIC_ISA_DMA
        bool
        default y
@@@ -204,7 -211,6 +204,7 @@@ config ALPHA_EIGE
  config ALPHA_JENSEN
        bool "Jensen"
        depends on BROKEN
 +      select DMA_DIRECT_OPS
        help
          DEC PC 150 AXP (aka Jensen): This is a very old Digital system - one
          of the first-generation Alpha systems. A number of these systems
@@@ -339,6 -345,9 +339,6 @@@ config PCI_DOMAIN
  config PCI_SYSCALL
        def_bool PCI
  
 -config IOMMU_HELPER
 -      def_bool PCI
 -
  config ALPHA_NONAME
        bool
        depends on ALPHA_BOOK1 || ALPHA_NONAME_CH
@@@ -576,7 -585,7 +576,7 @@@ config ARCH_DISCONTIGMEM_ENABL
          Say Y to support efficient handling of discontiguous physical memory,
          for architectures which are either NUMA (Non-Uniform Memory Access)
          or have huge holes in the physical address space for other reasons.
-         See <file:Documentation/vm/numa> for more.
+         See <file:Documentation/vm/numa.rst> for more.
  
  source "mm/Kconfig"
  
diff --combined arch/ia64/Kconfig
@@@ -29,6 -29,7 +29,6 @@@ config IA6
        select HAVE_FUNCTION_TRACER
        select TTY
        select HAVE_ARCH_TRACEHOOK
 -      select HAVE_DMA_API_DEBUG
        select HAVE_MEMBLOCK
        select HAVE_MEMBLOCK_NODE_MAP
        select HAVE_VIRT_CPU_ACCOUNTING
@@@ -53,8 -54,6 +53,8 @@@
        select MODULES_USE_ELF_RELA
        select ARCH_USE_CMPXCHG_LOCKREF
        select HAVE_ARCH_AUDITSYSCALL
 +      select NEED_DMA_MAP_STATE
 +      select NEED_SG_DMA_LENGTH
        default y
        help
          The Itanium Processor Family is Intel's 64-bit successor to
@@@ -79,6 -78,18 +79,6 @@@ config MM
        bool
        default y
  
 -config ARCH_DMA_ADDR_T_64BIT
 -      def_bool y
 -
 -config NEED_DMA_MAP_STATE
 -      def_bool y
 -
 -config NEED_SG_DMA_LENGTH
 -      def_bool y
 -
 -config SWIOTLB
 -       bool
 -
  config STACKTRACE_SUPPORT
        def_bool y
  
@@@ -135,6 -146,7 +135,6 @@@ config IA64_GENERI
        bool "generic"
        select NUMA
        select ACPI_NUMA
 -      select DMA_DIRECT_OPS
        select SWIOTLB
        select PCI_MSI
        help
  
  config IA64_DIG
        bool "DIG-compliant"
 -      select DMA_DIRECT_OPS
        select SWIOTLB
  
  config IA64_DIG_VTD
@@@ -170,6 -183,7 +170,6 @@@ config IA64_HP_ZX
  
  config IA64_HP_ZX1_SWIOTLB
        bool "HP-zx1/sx1000 with software I/O TLB"
 -      select DMA_DIRECT_OPS
        select SWIOTLB
        help
          Build a kernel that runs on HP zx1 and sx1000 systems even when they
@@@ -193,6 -207,7 +193,6 @@@ config IA64_SGI_U
        bool "SGI-UV"
        select NUMA
        select ACPI_NUMA
 -      select DMA_DIRECT_OPS
        select SWIOTLB
        help
          Selecting this option will optimize the kernel for use on UV based
  
  config IA64_HP_SIM
        bool "Ski-simulator"
 -      select DMA_DIRECT_OPS
        select SWIOTLB
        depends on !PM
  
@@@ -381,7 -397,7 +381,7 @@@ config ARCH_DISCONTIGMEM_ENABL
          Say Y to support efficient handling of discontiguous physical memory,
          for architectures which are either NUMA (Non-Uniform Memory Access)
          or have huge holes in the physical address space for other reasons.
-         See <file:Documentation/vm/numa> for more.
+         See <file:Documentation/vm/numa.rst> for more.
  
  config ARCH_FLATMEM_ENABLE
        def_bool y
@@@ -597,3 -613,6 +597,3 @@@ source "security/Kconfig
  source "crypto/Kconfig"
  
  source "lib/Kconfig"
 -
 -config IOMMU_HELPER
 -      def_bool (IA64_HP_ZX1 || IA64_HP_ZX1_SWIOTLB || IA64_GENERIC || SWIOTLB)
diff --combined arch/mips/Kconfig
@@@ -42,6 -42,7 +42,6 @@@ config MIP
        select HAVE_C_RECORDMCOUNT
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DEBUG_STACKOVERFLOW
 -      select HAVE_DMA_API_DEBUG
        select HAVE_DMA_CONTIGUOUS
        select HAVE_DYNAMIC_FTRACE
        select HAVE_EXIT_THREAD
@@@ -131,7 -132,7 +131,7 @@@ config MIPS_GENERI
  
  config MIPS_ALCHEMY
        bool "Alchemy processor based machines"
 -      select ARCH_PHYS_ADDR_T_64BIT
 +      select PHYS_ADDR_T_64BIT
        select CEVT_R4K
        select CSRC_R4K
        select IRQ_MIPS_CPU
@@@ -889,7 -890,7 +889,7 @@@ config CAVIUM_OCTEON_SO
        bool "Cavium Networks Octeon SoC based boards"
        select CEVT_R4K
        select ARCH_HAS_PHYS_TO_DMA
 -      select ARCH_PHYS_ADDR_T_64BIT
 +      select PHYS_ADDR_T_64BIT
        select DMA_COHERENT
        select SYS_SUPPORTS_64BIT_KERNEL
        select SYS_SUPPORTS_BIG_ENDIAN
        select MIPS_NR_CPU_NR_MAP_1024
        select BUILTIN_DTB
        select MTD_COMPLEX_MAPPINGS
 +      select SWIOTLB
        select SYS_SUPPORTS_RELOCATABLE
        help
          This option supports all of the Octeon reference boards from Cavium
@@@ -936,7 -936,7 +936,7 @@@ config NLM_XLR_BOAR
        select SWAP_IO_SPACE
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
 -      select ARCH_PHYS_ADDR_T_64BIT
 +      select PHYS_ADDR_T_64BIT
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_HIGHMEM
        select DMA_COHERENT
@@@ -962,7 -962,7 +962,7 @@@ config NLM_XLP_BOAR
        select HW_HAS_PCI
        select SYS_SUPPORTS_32BIT_KERNEL
        select SYS_SUPPORTS_64BIT_KERNEL
 -      select ARCH_PHYS_ADDR_T_64BIT
 +      select PHYS_ADDR_T_64BIT
        select GPIOLIB
        select SYS_SUPPORTS_BIG_ENDIAN
        select SYS_SUPPORTS_LITTLE_ENDIAN
@@@ -1101,6 -1101,9 +1101,6 @@@ config GPIO_TXX
  config FW_CFE
        bool
  
 -config ARCH_DMA_ADDR_T_64BIT
 -      def_bool (HIGHMEM && ARCH_PHYS_ADDR_T_64BIT) || 64BIT
 -
  config ARCH_SUPPORTS_UPROBES
        bool
  
@@@ -1119,6 -1122,9 +1119,6 @@@ config DMA_NONCOHEREN
        bool
        select NEED_DMA_MAP_STATE
  
 -config NEED_DMA_MAP_STATE
 -      bool
 -
  config SYS_HAS_EARLY_PRINTK
        bool
  
@@@ -1367,7 -1373,6 +1367,7 @@@ config CPU_LOONGSON
        select MIPS_PGD_C0_CONTEXT
        select MIPS_L1_CACHE_SHIFT_6
        select GPIOLIB
 +      select SWIOTLB
        help
                The Loongson 3 processor implements the MIPS64R2 instruction
                set with many extensions.
@@@ -1765,7 -1770,7 +1765,7 @@@ config CPU_MIPS32_R5_XP
        depends on SYS_SUPPORTS_HIGHMEM
        select XPA
        select HIGHMEM
 -      select ARCH_PHYS_ADDR_T_64BIT
 +      select PHYS_ADDR_T_64BIT
        default n
        help
          Choose this option if you want to enable the Extended Physical
@@@ -2397,6 -2402,9 +2397,6 @@@ config SB1_PASS_2_1_WORKAROUND
        default y
  
  
 -config ARCH_PHYS_ADDR_T_64BIT
 -       bool
 -
  choice
        prompt "SmartMIPS or microMIPS ASE support"
  
@@@ -2548,7 -2556,7 +2548,7 @@@ config ARCH_DISCONTIGMEM_ENABL
          Say Y to support efficient handling of discontiguous physical memory,
          for architectures which are either NUMA (Non-Uniform Memory Access)
          or have huge holes in the physical address space for other reasons.
-         See <file:Documentation/vm/numa> for more.
+         See <file:Documentation/vm/numa.rst> for more.
  
  config ARCH_SPARSEMEM_ENABLE
        bool
diff --combined arch/powerpc/Kconfig
@@@ -13,6 -13,12 +13,6 @@@ config 64BI
        bool
        default y if PPC64
  
 -config ARCH_PHYS_ADDR_T_64BIT
 -       def_bool PPC64 || PHYS_64BIT
 -
 -config ARCH_DMA_ADDR_T_64BIT
 -      def_bool ARCH_PHYS_ADDR_T_64BIT
 -
  config MMU
        bool
        default y
@@@ -181,6 -187,7 +181,6 @@@ config PP
        select HAVE_CONTEXT_TRACKING            if PPC64
        select HAVE_DEBUG_KMEMLEAK
        select HAVE_DEBUG_STACKOVERFLOW
 -      select HAVE_DMA_API_DEBUG
        select HAVE_DYNAMIC_FTRACE
        select HAVE_DYNAMIC_FTRACE_WITH_REGS    if MPROFILE_KERNEL
        select HAVE_EBPF_JIT                    if PPC64
        select HAVE_SYSCALL_TRACEPOINTS
        select HAVE_VIRT_CPU_ACCOUNTING
        select HAVE_IRQ_TIME_ACCOUNTING
 +      select IOMMU_HELPER                     if PPC64
        select IRQ_DOMAIN
        select IRQ_FORCED_THREADING
        select MODULES_USE_ELF_RELA
 +      select NEED_SG_DMA_LENGTH
        select NO_BOOTMEM
        select OF
        select OF_EARLY_FLATTREE
@@@ -473,6 -478,19 +473,6 @@@ config MPROFILE_KERNE
        depends on PPC64 && CPU_LITTLE_ENDIAN
        def_bool !DISABLE_MPROFILE_KERNEL
  
 -config IOMMU_HELPER
 -      def_bool PPC64
 -
 -config SWIOTLB
 -      bool "SWIOTLB support"
 -      default n
 -      select IOMMU_HELPER
 -      ---help---
 -        Support for IO bounce buffering for systems without an IOMMU.
 -        This allows us to DMA to the full physical address space on
 -        platforms where the size of a physical address is larger
 -        than the bus address.  Not all platforms support this.
 -
  config HOTPLUG_CPU
        bool "Support for enabling/disabling CPUs"
        depends on SMP && (PPC_PSERIES || \
@@@ -865,7 -883,7 +865,7 @@@ config PPC_MEM_KEY
          page-based protections, but without requiring modification of the
          page tables when an application changes protection domains.
  
-         For details, see Documentation/vm/protection-keys.txt
+         For details, see Documentation/vm/protection-keys.rst
  
          If unsure, say y.
  
@@@ -895,6 -913,9 +895,6 @@@ config ZONE_DM
  config NEED_DMA_MAP_STATE
        def_bool (PPC64 || NOT_COHERENT_CACHE)
  
 -config NEED_SG_DMA_LENGTH
 -      def_bool y
 -
  config GENERIC_ISA_DMA
        bool
        depends on ISA_DMA_API
diff --combined mm/Kconfig
@@@ -266,7 -266,7 +266,7 @@@ config ARCH_ENABLE_THP_MIGRATIO
        bool
  
  config PHYS_ADDR_T_64BIT
 -      def_bool 64BIT || ARCH_PHYS_ADDR_T_64BIT
 +      def_bool 64BIT
  
  config BOUNCE
        bool "Enable bounce buffers"
@@@ -305,7 -305,7 +305,7 @@@ config KS
          the many instances by a single page with that content, so
          saving memory until one or another app needs to modify the content.
          Recommended for use with KVM, or with other duplicative applications.
-         See Documentation/vm/ksm.txt for more information: KSM is inactive
+         See Documentation/vm/ksm.rst for more information: KSM is inactive
          until a program has madvised that an area is MADV_MERGEABLE, and
          root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
  
@@@ -530,7 -530,7 +530,7 @@@ config MEM_SOFT_DIRT
          into a page just as regular dirty bit, but unlike the latter
          it can be cleared by hands.
  
-         See Documentation/vm/soft-dirty.txt for more details.
+         See Documentation/admin-guide/mm/soft-dirty.rst for more details.
  
  config ZSWAP
        bool "Compressed cache for swap pages (EXPERIMENTAL)"
@@@ -636,7 -636,6 +636,7 @@@ config DEFERRED_STRUCT_PAGE_INI
        default n
        depends on NO_BOOTMEM
        depends on !FLATMEM
 +      depends on !NEED_PER_CPU_KM
        help
          Ordinarily all struct pages are initialised during early boot in a
          single thread. On very large machines this can take a considerable
@@@ -657,7 -656,8 +657,8 @@@ config IDLE_PAGE_TRACKIN
          be useful to tune memory cgroup limits and/or for job placement
          within a compute cluster.
  
-         See Documentation/vm/idle_page_tracking.txt for more details.
+         See Documentation/admin-guide/mm/idle_page_tracking.rst for
+         more details.
  
  # arch_add_memory() comprehends device memory
  config ARCH_HAS_ZONE_DEVICE
diff --combined mm/huge_memory.c
@@@ -1185,7 -1185,7 +1185,7 @@@ static int do_huge_pmd_wp_page_fallback
         * mmu_notifier_invalidate_range_end() happens which can lead to a
         * device seeing memory write in different order than CPU.
         *
-        * See Documentation/vm/mmu_notifier.txt
+        * See Documentation/vm/mmu_notifier.rst
         */
        pmdp_huge_clear_flush_notify(vma, haddr, vmf->pmd);
  
@@@ -2037,7 -2037,7 +2037,7 @@@ static void __split_huge_zero_page_pmd(
         * replacing a zero pmd write protected page with a zero pte write
         * protected page.
         *
-        * See Documentation/vm/mmu_notifier.txt
+        * See Documentation/vm/mmu_notifier.rst
         */
        pmdp_huge_clear_flush(vma, haddr, pmd);
  
@@@ -2431,7 -2431,7 +2431,7 @@@ static void __split_huge_page(struct pa
                __split_huge_page_tail(head, i, lruvec, list);
                /* Some pages can be beyond i_size: drop them from page cache */
                if (head[i].index >= end) {
 -                      __ClearPageDirty(head + i);
 +                      ClearPageDirty(head + i);
                        __delete_from_page_cache(head + i, NULL);
                        if (IS_ENABLED(CONFIG_SHMEM) && PageSwapBacked(head))
                                shmem_uncharge(head->mapping->host, 1);
diff --combined mm/mmap.c
+++ b/mm/mmap.c
@@@ -100,20 -100,11 +100,20 @@@ pgprot_t protection_map[16] __ro_after_
        __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
  };
  
 +#ifndef CONFIG_ARCH_HAS_FILTER_PGPROT
 +static inline pgprot_t arch_filter_pgprot(pgprot_t prot)
 +{
 +      return prot;
 +}
 +#endif
 +
  pgprot_t vm_get_page_prot(unsigned long vm_flags)
  {
 -      return __pgprot(pgprot_val(protection_map[vm_flags &
 +      pgprot_t ret = __pgprot(pgprot_val(protection_map[vm_flags &
                                (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
                        pgprot_val(arch_vm_get_page_prot(vm_flags)));
 +
 +      return arch_filter_pgprot(ret);
  }
  EXPORT_SYMBOL(vm_get_page_prot);
  
@@@ -1324,35 -1315,6 +1324,35 @@@ static inline int mlock_future_check(st
        return 0;
  }
  
 +static inline u64 file_mmap_size_max(struct file *file, struct inode *inode)
 +{
 +      if (S_ISREG(inode->i_mode))
 +              return MAX_LFS_FILESIZE;
 +
 +      if (S_ISBLK(inode->i_mode))
 +              return MAX_LFS_FILESIZE;
 +
 +      /* Special "we do even unsigned file positions" case */
 +      if (file->f_mode & FMODE_UNSIGNED_OFFSET)
 +              return 0;
 +
 +      /* Yes, random drivers might want more. But I'm tired of buggy drivers */
 +      return ULONG_MAX;
 +}
 +
 +static inline bool file_mmap_ok(struct file *file, struct inode *inode,
 +                              unsigned long pgoff, unsigned long len)
 +{
 +      u64 maxsize = file_mmap_size_max(file, inode);
 +
 +      if (maxsize && len > maxsize)
 +              return false;
 +      maxsize -= len;
 +      if (pgoff > maxsize >> PAGE_SHIFT)
 +              return false;
 +      return true;
 +}
 +
  /*
   * The caller must hold down_write(&current->mm->mmap_sem).
   */
@@@ -1438,9 -1400,6 +1438,9 @@@ unsigned long do_mmap(struct file *file
                struct inode *inode = file_inode(file);
                unsigned long flags_mask;
  
 +              if (!file_mmap_ok(file, inode, pgoff, len))
 +                      return -EOVERFLOW;
 +
                flags_mask = LEGACY_MAP_MASK | file->f_op->mmap_supported_flags;
  
                switch (flags & MAP_TYPE) {
@@@ -2828,7 -2787,7 +2828,7 @@@ SYSCALL_DEFINE5(remap_file_pages, unsig
        unsigned long ret = -EINVAL;
        struct file *file;
  
-       pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.txt.\n",
+       pr_warn_once("%s (%d) uses deprecated remap_file_pages() syscall. See Documentation/vm/remap_file_pages.rst.\n",
                     current->comm, current->pid);
  
        if (prot)
@@@ -3056,32 -3015,6 +3056,32 @@@ void exit_mmap(struct mm_struct *mm
        /* mm's last user has gone, and its about to be pulled down */
        mmu_notifier_release(mm);
  
 +      if (unlikely(mm_is_oom_victim(mm))) {
 +              /*
 +               * Manually reap the mm to free as much memory as possible.
 +               * Then, as the oom reaper does, set MMF_OOM_SKIP to disregard
 +               * this mm from further consideration.  Taking mm->mmap_sem for
 +               * write after setting MMF_OOM_SKIP will guarantee that the oom
 +               * reaper will not run on this mm again after mmap_sem is
 +               * dropped.
 +               *
 +               * Nothing can be holding mm->mmap_sem here and the above call
 +               * to mmu_notifier_release(mm) ensures mmu notifier callbacks in
 +               * __oom_reap_task_mm() will not block.
 +               *
 +               * This needs to be done before calling munlock_vma_pages_all(),
 +               * which clears VM_LOCKED, otherwise the oom reaper cannot
 +               * reliably test it.
 +               */
 +              mutex_lock(&oom_lock);
 +              __oom_reap_task_mm(mm);
 +              mutex_unlock(&oom_lock);
 +
 +              set_bit(MMF_OOM_SKIP, &mm->flags);
 +              down_write(&mm->mmap_sem);
 +              up_write(&mm->mmap_sem);
 +      }
 +
        if (mm->locked_vm) {
                vma = mm->mmap;
                while (vma) {
        /* update_hiwater_rss(mm) here? but nobody should be looking */
        /* Use -1 here to ensure all VMAs in the mm are unmapped */
        unmap_vmas(&tlb, vma, 0, -1);
 -
 -      if (unlikely(mm_is_oom_victim(mm))) {
 -              /*
 -               * Wait for oom_reap_task() to stop working on this
 -               * mm. Because MMF_OOM_SKIP is already set before
 -               * calling down_read(), oom_reap_task() will not run
 -               * on this "mm" post up_write().
 -               *
 -               * mm_is_oom_victim() cannot be set from under us
 -               * either because victim->mm is already set to NULL
 -               * under task_lock before calling mmput and oom_mm is
 -               * set not NULL by the OOM killer only if victim->mm
 -               * is found not NULL while holding the task_lock.
 -               */
 -              set_bit(MMF_OOM_SKIP, &mm->flags);
 -              down_write(&mm->mmap_sem);
 -              up_write(&mm->mmap_sem);
 -      }
        free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
        tlb_finish_mmu(&tlb, 0, -1);