Merge tag 'docs-4.10' of git://git.lwn.net/linux
authorLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Dec 2016 05:58:13 +0000 (21:58 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Tue, 13 Dec 2016 05:58:13 +0000 (21:58 -0800)
Pull documentation update from Jonathan Corbet:
 "These are the documentation changes for 4.10.

  It's another busy cycle for the docs tree, as the sphinx conversion
  continues. Highlights include:

   - Further work on PDF output, which remains a bit of a pain but
     should be more solid now.

   - Five more DocBook template files converted to Sphinx. Only 27 to
     go... Lots of plain-text files have also been converted and
     integrated.

   - Images in binary formats have been replaced with more
     source-friendly versions.

   - Various bits of organizational work, including the renaming of
     various files discussed at the kernel summit.

   - New documentation for the device_link mechanism.

  ... and, of course, lots of typo fixes and small updates"

* tag 'docs-4.10' of git://git.lwn.net/linux: (193 commits)
  dma-buf: Extract dma-buf.rst
  Update Documentation/00-INDEX
  docs: 00-INDEX: document directories/files with no docs
  docs: 00-INDEX: remove non-existing entries
  docs: 00-INDEX: add missing entries for documentation files/dirs
  docs: 00-INDEX: consolidate process/ and admin-guide/ description
  scripts: add a script to check if Documentation/00-INDEX is sane
  Docs: change sh -> awk in REPORTING-BUGS
  Documentation/core-api/device_link: Add initial documentation
  core-api: remove an unexpected unident
  ppc/idle: Add documentation for powersave=off
  Doc: Correct typo, "Introdution" => "Introduction"
  Documentation/atomic_ops.txt: convert to ReST markup
  Documentation/local_ops.txt: convert to ReST markup
  Documentation/assoc_array.txt: convert to ReST markup
  docs-rst: parse-headers.pl: cleanup the documentation
  docs-rst: fix media cleandocs target
  docs-rst: media/Makefile: reorganize the rules
  docs-rst: media: build SVG from graphviz files
  docs-rst: replace bayer.png by a SVG image
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
Documentation/filesystems/proc.txt
Documentation/sysctl/kernel.txt
MAINTAINERS
arch/x86/Kconfig
include/linux/device.h
init/Kconfig
init/main.c
lib/Kconfig.debug
scripts/checkpatch.pl

@@@ -1,202 -1,3 +1,3 @@@
-                           Kernel Parameters
-                           ~~~~~~~~~~~~~~~~~
- The following is a consolidated list of the kernel parameters as
- implemented by the __setup(), core_param() and module_param() macros
- and sorted into English Dictionary order (defined as ignoring all
- punctuation and sorting digits before letters in a case insensitive
- manner), and with descriptions where known.
- The kernel parses parameters from the kernel command line up to "--";
- if it doesn't recognize a parameter and it doesn't contain a '.', the
- parameter gets passed to init: parameters with '=' go into init's
- environment, others are passed as command line arguments to init.
- Everything after "--" is passed as an argument to init.
- Module parameters can be specified in two ways: via the kernel command
- line with a module name prefix, or via modprobe, e.g.:
-       (kernel command line) usbcore.blinkenlights=1
-       (modprobe command line) modprobe usbcore blinkenlights=1
- Parameters for modules which are built into the kernel need to be
- specified on the kernel command line.  modprobe looks through the
- kernel command line (/proc/cmdline) and collects module parameters
- when it loads a module, so the kernel command line can be used for
- loadable modules too.
- Hyphens (dashes) and underscores are equivalent in parameter names, so
-       log_buf_len=1M print-fatal-signals=1
- can also be entered as
-       log-buf-len=1M print_fatal_signals=1
- Double-quotes can be used to protect spaces in values, e.g.:
-       param="spaces in here"
- cpu lists:
- ----------
- Some kernel parameters take a list of CPUs as a value, e.g.  isolcpus,
- nohz_full, irqaffinity, rcu_nocbs.  The format of this list is:
-       <cpu number>,...,<cpu number>
- or
-       <cpu number>-<cpu number>
-       (must be a positive range in ascending order)
- or a mixture
- <cpu number>,...,<cpu number>-<cpu number>
- Note that for the special case of a range one can split the range into equal
- sized groups and for each group use some amount from the beginning of that
- group:
-       <cpu number>-cpu number>:<used size>/<group size>
- For example one can add to the command line following parameter:
-       isolcpus=1,2,10-20,100-2000:2/25
- where the final item represents CPUs 100,101,125,126,150,151,...
- This document may not be entirely up to date and comprehensive. The command
- "modinfo -p ${modulename}" shows a current list of all parameters of a loadable
- module. Loadable modules, after being loaded into the running kernel, also
- reveal their parameters in /sys/module/${modulename}/parameters/. Some of these
- parameters may be changed at runtime by the command
- "echo -n ${value} > /sys/module/${modulename}/parameters/${parm}".
- The parameters listed below are only valid if certain kernel build options were
- enabled and if respective hardware is present. The text in square brackets at
- the beginning of each description states the restrictions within which a
- parameter is applicable:
-       ACPI    ACPI support is enabled.
-       AGP     AGP (Accelerated Graphics Port) is enabled.
-       ALSA    ALSA sound support is enabled.
-       APIC    APIC support is enabled.
-       APM     Advanced Power Management support is enabled.
-       ARM     ARM architecture is enabled.
-       AVR32   AVR32 architecture is enabled.
-       AX25    Appropriate AX.25 support is enabled.
-       BLACKFIN Blackfin architecture is enabled.
-       CLK     Common clock infrastructure is enabled.
-       CMA     Contiguous Memory Area support is enabled.
-       DRM     Direct Rendering Management support is enabled.
-       DYNAMIC_DEBUG Build in debug messages and enable them at runtime
-       EDD     BIOS Enhanced Disk Drive Services (EDD) is enabled
-       EFI     EFI Partitioning (GPT) is enabled
-       EIDE    EIDE/ATAPI support is enabled.
-       EVM     Extended Verification Module
-       FB      The frame buffer device is enabled.
-       FTRACE  Function tracing enabled.
-       GCOV    GCOV profiling is enabled.
-       HW      Appropriate hardware is enabled.
-       IA-64   IA-64 architecture is enabled.
-       IMA     Integrity measurement architecture is enabled.
-       IOSCHED More than one I/O scheduler is enabled.
-       IP_PNP  IP DHCP, BOOTP, or RARP is enabled.
-       IPV6    IPv6 support is enabled.
-       ISAPNP  ISA PnP code is enabled.
-       ISDN    Appropriate ISDN support is enabled.
-       JOY     Appropriate joystick support is enabled.
-       KGDB    Kernel debugger support is enabled.
-       KVM     Kernel Virtual Machine support is enabled.
-       LIBATA  Libata driver is enabled
-       LP      Printer support is enabled.
-       LOOP    Loopback device support is enabled.
-       M68k    M68k architecture is enabled.
-                       These options have more detailed description inside of
-                       Documentation/m68k/kernel-options.txt.
-       MDA     MDA console support is enabled.
-       MIPS    MIPS architecture is enabled.
-       MOUSE   Appropriate mouse support is enabled.
-       MSI     Message Signaled Interrupts (PCI).
-       MTD     MTD (Memory Technology Device) support is enabled.
-       NET     Appropriate network support is enabled.
-       NUMA    NUMA support is enabled.
-       NFS     Appropriate NFS support is enabled.
-       OSS     OSS sound support is enabled.
-       PV_OPS  A paravirtualized kernel is enabled.
-       PARIDE  The ParIDE (parallel port IDE) subsystem is enabled.
-       PARISC  The PA-RISC architecture is enabled.
-       PCI     PCI bus support is enabled.
-       PCIE    PCI Express support is enabled.
-       PCMCIA  The PCMCIA subsystem is enabled.
-       PNP     Plug & Play support is enabled.
-       PPC     PowerPC architecture is enabled.
-       PPT     Parallel port support is enabled.
-       PS2     Appropriate PS/2 support is enabled.
-       RAM     RAM disk support is enabled.
-       S390    S390 architecture is enabled.
-       SCSI    Appropriate SCSI support is enabled.
-                       A lot of drivers have their options described inside
-                       the Documentation/scsi/ sub-directory.
-       SECURITY Different security models are enabled.
-       SELINUX SELinux support is enabled.
-       APPARMOR AppArmor support is enabled.
-       SERIAL  Serial support is enabled.
-       SH      SuperH architecture is enabled.
-       SMP     The kernel is an SMP kernel.
-       SPARC   Sparc architecture is enabled.
-       SWSUSP  Software suspend (hibernation) is enabled.
-       SUSPEND System suspend states are enabled.
-       TPM     TPM drivers are enabled.
-       TS      Appropriate touchscreen support is enabled.
-       UMS     USB Mass Storage support is enabled.
-       USB     USB support is enabled.
-       USBHID  USB Human Interface Device support is enabled.
-       V4L     Video For Linux support is enabled.
-       VMMIO   Driver for memory mapped virtio devices is enabled.
-       VGA     The VGA console has been enabled.
-       VT      Virtual terminal support is enabled.
-       WDT     Watchdog support is enabled.
-       XT      IBM PC/XT MFM hard disk support is enabled.
-       X86-32  X86-32, aka i386 architecture is enabled.
-       X86-64  X86-64 architecture is enabled.
-                       More X86-64 boot options can be found in
-                       Documentation/x86/x86_64/boot-options.txt .
-       X86     Either 32-bit or 64-bit x86 (same as X86-32+X86-64)
-       X86_UV  SGI UV support is enabled.
-       XEN     Xen support is enabled
- In addition, the following text indicates that the option:
-       BUGS=   Relates to possible processor bugs on the said processor.
-       KNL     Is a kernel start-up parameter.
-       BOOT    Is a boot loader parameter.
- Parameters denoted with BOOT are actually interpreted by the boot
- loader, and have no meaning to the kernel directly.
- Do not modify the syntax of boot loader parameters without extreme
- need or coordination with <Documentation/x86/boot.txt>.
- There are also arch-specific kernel-parameters not documented here.
- See for example <Documentation/x86/x86_64/boot-options.txt>.
- Note that ALL kernel parameters listed below are CASE SENSITIVE, and that
- a trailing = on the name of any parameter states that that parameter will
- be entered as an environment variable, whereas its absence indicates that
- it will appear as a kernel argument readable via /proc/cmdline by programs
- running once the system is up.
- The number of kernel parameters is not limited, but the length of the
- complete command line (parameters including spaces etc.) is limited to
- a fixed number of characters. This limit depends on the architecture
- and is between 256 and 4096 characters. It is defined in the file
- ./include/asm/setup.h as COMMAND_LINE_SIZE.
- Finally, the [KMG] suffix is commonly described after a number of kernel
- parameter values. These 'K', 'M', and 'G' letters represent the _binary_
- multipliers 'Kilo', 'Mega', and 'Giga', equalling 2^10, 2^20, and 2^30
- bytes respectively. Such letter suffixes can also be entirely omitted.
        acpi=           [HW,ACPI,X86,ARM64]
                        Advanced Configuration and Power Interface
                        Format: { force | on | off | strict | noirq | rsdt |
                        bits, and "f" is flow control ("r" for RTS or
                        omit it).  Default is "9600n8".
  
-                       See Documentation/serial-console.txt for more
+                       See Documentation/admin-guide/serial-console.rst for more
                        information.  See
                        Documentation/networking/netconsole.txt for an
                        alternative.
  
        dscc4.setup=    [NET]
  
 +      dump_apple_properties   [X86]
 +                      Dump name and content of EFI device properties on
 +                      x86 Macs.  Useful for driver authors to determine
 +                      what data is available or for reverse-engineering.
 +
        dyndbg[="val"]          [KNL,DYNAMIC_DEBUG]
        module.dyndbg[="val"]
                        Enable debug messages at boot time.  See
        nopku           [X86] Disable Memory Protection Keys CPU feature found
                        in some Intel CPUs.
  
 -      eagerfpu=       [X86]
 -                      on      enable eager fpu restore
 -                      off     disable eager fpu restore
 -                      auto    selects the default scheme, which automatically
 -                              enables eagerfpu restore for xsaveopt.
 -
        module.async_probe [KNL]
                        Enable asynchronous probe on this module.
  
                        kmemcheck=2 (one-shot mode)
                        Default: 2 (one-shot mode)
  
 -      kstack=N        [X86] Print N words from the kernel stack
 -                      in oops dumps.
 -
        kvm.ignore_msrs=[KVM] Ignore guest accesses to unhandled MSRs.
                        Default is 0 (don't ignore, but inject #GP)
  
        mce=option      [X86-64] See Documentation/x86/x86_64/boot-options.txt
  
        md=             [HW] RAID subsystems devices and level
-                       See Documentation/md.txt.
+                       See Documentation/admin-guide/md.rst.
  
        mdacon=         [MDA]
                        Format: <first>,<last>
                        that the amount of memory usable for all allocations
                        is not too small.
  
 -      movable_node    [KNL,X86] Boot-time switch to enable the effects
 +      movable_node    [KNL] Boot-time switch to enable the effects
                        of CONFIG_MOVABLE_NODE=y. See mm/Kconfig for details.
  
        MTD_Partition=  [MTD]
                        will be sent.
                        The default is to send the implementation identification
                        information.
-       
        nfs.recover_lost_locks =
                        [NFSv4] Attempt to recover locks that were lost due
                        to a lease timeout on the server. Please note that
        no-kvmapf       [X86,KVM] Disable paravirtualized asynchronous page
                        fault handling.
  
 +      no-vmw-sched-clock
 +                      [X86,PV_OPS] Disable paravirtualized VMware scheduler
 +                      clock and use the default one.
 +
        no-steal-acc    [X86,KVM] Disable paravirtualized steal time accounting.
                        steal time is computed, but won't influence scheduler
                        behaviour
                        may be specified.
                        Format: <port>,<port>....
  
+       powersave=off   [PPC] This option disables power saving features.
+                       It specifically disables cpuidle and sets the
+                       platform machine description specific power_save
+                       function to NULL. On Idle the CPU just reduces
+                       execution priority.
        ppc_strict_facility_enable
                        [PPC] This option catches any kernel floating point,
                        Altivec, VSX and SPE outside of regions specifically
        r128=           [HW,DRM]
  
        raid=           [HW,RAID]
-                       See Documentation/md.txt.
+                       See Documentation/admin-guide/md.rst.
  
        ramdisk_size=   [RAM] Sizes of RAM disks in kilobytes
                        See Documentation/blockdev/ramdisk.txt.
        shapers=        [NET]
                        Maximal number of shapers.
  
 -      show_msr=       [x86] show boot-time MSR settings
 -                      Format: { <integer> }
 -                      Show boot-time (BIOS-initialized) MSR settings.
 -                      The parameter means the number of CPUs to show,
 -                      for example 1 means boot CPU only.
 -
        simeth=         [IA-64]
        simscsi=
  
                        See also Documentation/input/joystick-parport.txt
  
        udbg-immortal   [PPC] When debugging early kernel crashes that
-                       happen after console_init() and before a proper 
+                       happen after console_init() and before a proper
                        console driver takes over, this boot options might
                        help "seeing" what's going on.
  
        xirc2ps_cs=     [NET,PCMCIA]
                        Format:
                        <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
- ______________________________________________________________________
- TODO:
-       Add more DRM drivers.
@@@ -191,7 -191,6 +191,7 @@@ read the file /proc/PID/status
    CapPrm: 0000000000000000
    CapEff: 0000000000000000
    CapBnd: ffffffffffffffff
 +  NoNewPrivs:     0
    Seccomp:        0
    voluntary_ctxt_switches:        0
    nonvoluntary_ctxt_switches:     1
@@@ -263,7 -262,6 +263,7 @@@ Table 1-2: Contents of the status file
   CapPrm                      bitmap of permitted capabilities
   CapEff                      bitmap of effective capabilities
   CapBnd                      bitmap of capabilities bounding set
 + NoNewPrivs                  no_new_privs, like prctl(PR_GET_NO_NEW_PRIV, ...)
   Seccomp                     seccomp mode, like prctl(PR_GET_SECCOMP, ...)
   Cpus_allowed                mask of CPUs on which this process may run
   Cpus_allowed_list           Same as previous, but in "list format"
@@@ -1307,7 -1305,16 +1307,16 @@@ second).  The meanings of the columns a
  - nice: niced processes executing in user mode
  - system: processes executing in kernel mode
  - idle: twiddling thumbs
- - iowait: waiting for I/O to complete
+ - iowait: In a word, iowait stands for waiting for I/O to complete. But there
+   are several problems:
+   1. Cpu will not wait for I/O to complete, iowait is the time that a task is
+      waiting for I/O to complete. When cpu goes into idle state for
+      outstanding task io, another task will be scheduled on this CPU.
+   2. In a multi-core CPU, the task waiting for I/O to complete is not running
+      on any CPU, so the iowait of each CPU is difficult to calculate.
+   3. The value of iowait field in /proc/stat will decrease in certain
+      conditions.
+   So, the iowait is not reliable by reading from /proc/stat.
  - irq: servicing interrupts
  - softirq: servicing softirqs
  - steal: involuntary wait
@@@ -40,6 -40,7 +40,6 @@@ show up in /proc/sys/kernel
  - hung_task_warnings
  - kexec_load_disabled
  - kptr_restrict
 -- kstack_depth_to_print       [ X86 only ]
  - l2cr                        [ PPC only ]
  - modprobe                    ==> Documentation/debugging-modules.txt
  - modules_disabled
@@@ -70,7 -71,7 +70,7 @@@
  - printk_ratelimit_burst
  - pty                         ==> Documentation/filesystems/devpts.txt
  - randomize_va_space
- - real-root-dev               ==> Documentation/initrd.txt
+ - real-root-dev               ==> Documentation/admin-guide/initrd.rst
  - reboot-cmd                  [ SPARC only ]
  - rtsig-max
  - rtsig-nr
@@@ -394,6 -395,13 +394,6 @@@ When kptr_restrict is set to (2), kerne
  
  ==============================================================
  
 -kstack_depth_to_print: (X86 only)
 -
 -Controls the number of words to print when dumping the raw
 -kernel stack.
 -
 -==============================================================
 -
  l2cr: (PPC only)
  
  This flag controls the L2 cache of G3 processor boards. If
@@@ -445,7 -453,7 +445,7 @@@ in a KVM virtual machine. This default 
  
     nmi_watchdog=1
  
- to the guest kernel command line (see Documentation/kernel-parameters.txt).
+ to the guest kernel command line (see Documentation/admin-guide/kernel-parameters.rst).
  
  ==============================================================
  
diff --combined MAINTAINERS
@@@ -35,13 -35,13 +35,13 @@@ trivial patch so apply some common sens
  
        PLEASE check your patch with the automated style checker
        (scripts/checkpatch.pl) to catch trivial style violations.
-       See Documentation/CodingStyle for guidance here.
+       See Documentation/process/coding-style.rst for guidance here.
  
        PLEASE CC: the maintainers and mailing lists that are generated
        by scripts/get_maintainer.pl.  The results returned by the
        script will be best if you have git installed and are making
        your changes in a branch derived from Linus' latest git tree.
-       See Documentation/SubmittingPatches for details.
+       See Documentation/process/submitting-patches.rst for details.
  
        PLEASE try to include any credit lines you want added with the
        patch. It avoids people being missed off by mistake and makes
@@@ -54,7 -54,7 +54,7 @@@
        of the Linux Foundation certificate of contribution and should
        include a Signed-off-by: line.  The current version of this
        "Developer's Certificate of Origin" (DCO) is listed in the file
-       Documentation/SubmittingPatches.
+       Documentation/process/submitting-patches.rst.
  
  6.    Make sure you have the right to send any changes you make. If you
        do changes at work you may find your employer owns the patch
@@@ -74,14 -74,9 +74,14 @@@ Descriptions of section entries
           These reviewers should be CCed on patches.
        L: Mailing list that is relevant to this area
        W: Web-page with status/info
 +      B: URI for where to file bugs. A web-page with detailed bug
 +         filing info, a direct bug tracker link, or a mailto: URI.
 +      C: URI for chat protocol, server and channel where developers
 +         usually hang out, for example irc://server/channel.
        Q: Patchwork web based patch tracking system site
        T: SCM tree type and location.
           Type is one of: git, hg, quilt, stgit, topgit
 +      B: Bug tracking system location.
        S: Status, one of the following:
           Supported:   Someone is actually paid to look after this.
           Maintained:  Someone actually looks after it.
@@@ -286,7 -281,6 +286,7 @@@ L: linux-acpi@vger.kernel.or
  W:    https://01.org/linux-acpi
  Q:    https://patchwork.kernel.org/project/linux-acpi/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    drivers/acpi/
  F:    drivers/pnp/pnpacpi/
@@@ -310,8 -304,6 +310,8 @@@ W: https://acpica.org
  W:    https://github.com/acpica/acpica/
  Q:    https://patchwork.kernel.org/project/linux-acpi/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
 +B:    https://bugzilla.kernel.org
 +B:    https://bugs.acpica.org
  S:    Supported
  F:    drivers/acpi/acpica/
  F:    include/acpi/
@@@ -321,7 -313,6 +321,7 @@@ ACPI FAN DRIVE
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
  W:    https://01.org/linux-acpi
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    drivers/acpi/fan.c
  
@@@ -337,7 -328,6 +337,7 @@@ ACPI THERMAL DRIVE
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
  W:    https://01.org/linux-acpi
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    drivers/acpi/*thermal*
  
@@@ -345,7 -335,6 +345,7 @@@ ACPI VIDEO DRIVE
  M:    Zhang Rui <rui.zhang@intel.com>
  L:    linux-acpi@vger.kernel.org
  W:    https://01.org/linux-acpi
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    drivers/acpi/acpi_video.c
  
@@@ -581,11 -570,6 +581,11 @@@ T:       git git://linuxtv.org/anttip/media_t
  S:    Maintained
  F:    drivers/media/usb/airspy/
  
 +ALACRITECH GIGABIT ETHERNET DRIVER
 +M:    Lino Sanfilippo <LinoSanfilippo@gmx.de>
 +S:    Maintained
 +F:    drivers/net/ethernet/alacritech/*
 +
  ALCATEL SPEEDTOUCH USB DRIVER
  M:    Duncan Sands <duncan.sands@free.fr>
  L:    linux-usb@vger.kernel.org
@@@ -2546,8 -2530,6 +2546,8 @@@ L:      netdev@vger.kernel.or
  L:    linux-kernel@vger.kernel.org
  S:    Supported
  F:    kernel/bpf/
 +F:    tools/testing/selftests/bpf/
 +F:    lib/test_bpf.c
  
  BROADCOM B44 10/100 ETHERNET DRIVER
  M:    Michael Chan <michael.chan@broadcom.com>
@@@ -2948,7 -2930,7 +2948,7 @@@ CAPELLA MICROSYSTEMS LIGHT SENSOR DRIVE
  M:    Kevin Tsai <ktsai@capellamicro.com>
  S:    Maintained
  F:    drivers/iio/light/cm*
- F:    Documentation/devicetree/bindings/i2c/trivial-devices.txt
+ F:    Documentation/devicetree/bindings/i2c/trivial-admin-guide/devices.rst
  
  CAVIUM I2C DRIVER
  M:    Jan Glauber <jglauber@cavium.com>
@@@ -3096,7 -3078,7 +3096,7 @@@ M:      Harry Wei <harryxiyou@gmail.com
  L:    xiyoulinuxkernelgroup@googlegroups.com (subscribers-only)
  L:    linux-kernel@zh-kernel.org (moderated for non-subscribers)
  S:    Maintained
- F:    Documentation/zh_CN/
+ F:    Documentation/translations/zh_CN/
  
  CHIPIDEA USB HIGH SPEED DUAL ROLE CONTROLLER
  M:    Peter Chen <Peter.Chen@nxp.com>
@@@ -4028,8 -4010,6 +4028,8 @@@ DRM DRIVER
  M:    David Airlie <airlied@linux.ie>
  L:    dri-devel@lists.freedesktop.org
  T:    git git://people.freedesktop.org/~airlied/linux
 +B:    https://bugs.freedesktop.org/
 +C:    irc://chat.freenode.net/dri-devel
  S:    Maintained
  F:    drivers/gpu/drm/
  F:    drivers/gpu/vga/
@@@ -4082,8 -4062,6 +4082,8 @@@ M:      Jani Nikula <jani.nikula@linux.intel
  L:    intel-gfx@lists.freedesktop.org
  L:    dri-devel@lists.freedesktop.org
  W:    https://01.org/linuxgraphics/
 +B:    https://01.org/linuxgraphics/documentation/how-report-bugs
 +C:    irc://chat.freenode.net/intel-gfx
  Q:    http://patchwork.freedesktop.org/project/intel-gfx/
  T:    git git://anongit.freedesktop.org/drm-intel
  S:    Supported
@@@ -4653,14 -4631,12 +4653,14 @@@ L:   linux-efi@vger.kernel.or
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/efi/efi.git
  S:    Maintained
  F:    Documentation/efi-stub.txt
 -F:    arch/ia64/kernel/efi.c
 +F:    arch/*/kernel/efi.c
  F:    arch/x86/boot/compressed/eboot.[ch]
 -F:    arch/x86/include/asm/efi.h
 +F:    arch/*/include/asm/efi.h
  F:    arch/x86/platform/efi/
  F:    drivers/firmware/efi/
  F:    include/linux/efi*.h
 +F:    arch/arm/boot/compressed/efi-header.S
 +F:    arch/arm64/kernel/efi-entry.S
  
  EFI VARIABLE FILESYSTEM
  M:    Matthew Garrett <matthew.garrett@nebula.com>
@@@ -5687,7 -5663,6 +5687,7 @@@ HIBERNATION (aka Software Suspend, aka 
  M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  M:    Pavel Machek <pavel@ucw.cz>
  L:    linux-pm@vger.kernel.org
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    arch/x86/power/
  F:    drivers/base/power/
@@@ -6112,9 -6087,14 +6112,9 @@@ S:     Maintaine
  F:    Documentation/cdrom/ide-cd
  F:    drivers/ide/ide-cd*
  
 -IDLE-I7300
 -M:    Andy Henroid <andrew.d.henroid@intel.com>
 -L:    linux-pm@vger.kernel.org
 -S:    Supported
 -F:    drivers/idle/i7300_idle.c
 -
  IEEE 802.15.4 SUBSYSTEM
  M:    Alexander Aring <aar@pengutronix.de>
 +M:    Stefan Schmidt <stefan@osg.samsung.com>
  L:    linux-wpan@vger.kernel.org
  W:    http://wpan.cakelab.org/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth.git
@@@ -7104,7 -7084,6 +7104,7 @@@ F:      drivers/scsi/53c700
  LED SUBSYSTEM
  M:    Richard Purdie <rpurdie@rpsys.net>
  M:    Jacek Anaszewski <j.anaszewski@samsung.com>
 +M:    Pavel Machek <pavel@ucw.cz>
  L:    linux-leds@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/j.anaszewski/linux-leds.git
  S:    Maintained
@@@ -7577,10 -7556,8 +7577,10 @@@ S:    Maintaine
  MARVELL 88E6XXX ETHERNET SWITCH FABRIC DRIVER
  M:    Andrew Lunn <andrew@lunn.ch>
  M:    Vivien Didelot <vivien.didelot@savoirfairelinux.com>
 +L:    netdev@vger.kernel.org
  S:    Maintained
  F:    drivers/net/dsa/mv88e6xxx/
 +F:    Documentation/devicetree/bindings/net/dsa/marvell.txt
  
  MARVELL ARMADA DRM SUPPORT
  M:    Russell King <rmk+kernel@armlinux.org.uk>
@@@ -8080,7 -8057,6 +8080,7 @@@ F:      drivers/infiniband/hw/mlx4
  F:    include/linux/mlx4/
  
  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
@@@ -8471,6 -8447,7 +8471,6 @@@ F:      include/uapi/linux/net_namespace.
  F:    tools/net/
  F:    tools/testing/selftests/net/
  F:    lib/random32.c
 -F:    lib/test_bpf.c
  
  NETWORKING [IPv4/IPv6]
  M:    "David S. Miller" <davem@davemloft.net>
@@@ -8981,11 -8958,9 +8981,11 @@@ F:    drivers/of/resolver.
  
  OPENRISC ARCHITECTURE
  M:    Jonas Bonn <jonas@southpole.se>
 -W:    http://openrisc.net
 +M:    Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
 +M:    Stafford Horne <shorne@gmail.com>
 +L:    openrisc@lists.librecores.org
 +W:    http://openrisc.io
  S:    Maintained
 -T:    git git://openrisc.net/~jonas/linux
  F:    arch/openrisc/
  
  OPENVSWITCH
@@@ -9272,12 -9247,11 +9272,12 @@@ S:   Maintaine
  F:    drivers/pci/host/*layerscape*
  
  PCI DRIVER FOR IMX6
 -M:    Richard Zhu <Richard.Zhu@freescale.com>
 +M:    Richard Zhu <hongxing.zhu@nxp.com>
  M:    Lucas Stach <l.stach@pengutronix.de>
  L:    linux-pci@vger.kernel.org
  L:    linux-arm-kernel@lists.infradead.org (moderated for non-subscribers)
  S:    Maintained
 +F:    Documentation/devicetree/bindings/pci/fsl,imx6q-pcie.txt
  F:    drivers/pci/host/*imx6*
  
  PCI DRIVER FOR TI KEYSTONE
@@@ -9336,11 -9310,17 +9336,11 @@@ F:   drivers/pci/host/pci-exynos.
  
  PCI DRIVER FOR SYNOPSIS DESIGNWARE
  M:    Jingoo Han <jingoohan1@gmail.com>
 -M:    Pratyush Anand <pratyush.anand@gmail.com>
 -L:    linux-pci@vger.kernel.org
 -S:    Maintained
 -F:    drivers/pci/host/*designware*
 -
 -PCI DRIVER FOR SYNOPSYS PROTOTYPING DEVICE
 -M:    Jose Abreu <Jose.Abreu@synopsys.com>
 +M:    Joao Pinto <Joao.Pinto@synopsys.com>
  L:    linux-pci@vger.kernel.org
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
 -F:    drivers/pci/host/pcie-designware-plat.c
 +F:    drivers/pci/host/*designware*
  
  PCI DRIVER FOR GENERIC OF HOSTS
  M:    Will Deacon <will.deacon@arm.com>
@@@ -9355,7 -9335,7 +9355,7 @@@ PCI DRIVER FOR INTEL VOLUME MANAGEMENT 
  M:    Keith Busch <keith.busch@intel.com>
  L:    linux-pci@vger.kernel.org
  S:    Supported
 -F:    arch/x86/pci/vmd.c
 +F:    drivers/pci/host/vmd.c
  
  PCIE DRIVER FOR ST SPEAR13XX
  M:    Pratyush Anand <pratyush.anand@gmail.com>
@@@ -9642,7 -9622,6 +9642,7 @@@ POWER MANAGEMENT COR
  M:    "Rafael J. Wysocki" <rjw@rjwysocki.net>
  L:    linux-pm@vger.kernel.org
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    drivers/base/power/
  F:    include/linux/pm.h
@@@ -11486,7 -11465,7 +11486,7 @@@ STABLE BRANC
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  L:    stable@vger.kernel.org
  S:    Supported
- F:    Documentation/stable_kernel_rules.txt
+ F:    Documentation/process/stable-kernel-rules.rst
  
  STAGING SUBSYSTEM
  M:    Greg Kroah-Hartman <gregkh@linuxfoundation.org>
@@@ -11632,7 -11611,6 +11632,7 @@@ M:   "Rafael J. Wysocki" <rjw@rjwysocki.n
  M:    Len Brown <len.brown@intel.com>
  M:    Pavel Machek <pavel@ucw.cz>
  L:    linux-pm@vger.kernel.org
 +B:    https://bugzilla.kernel.org
  S:    Supported
  F:    Documentation/power/
  F:    arch/x86/kernel/acpi/
@@@ -12928,7 -12906,7 +12928,7 @@@ M:   Greg Kroah-Hartman <gregkh@linuxfoun
  L:    devel@driverdev.osuosl.org
  S:    Maintained
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core.git
- F:    Documentation/vme_api.txt
+ F:    Documentation/driver-api/vme.rst
  F:    drivers/staging/vme/
  F:    drivers/vme/
  F:    include/linux/vme*
@@@ -13152,7 -13130,7 +13152,7 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Maintained
  F:    include/linux/workqueue.h
  F:    kernel/workqueue.c
- F:    Documentation/workqueue.txt
+ F:    Documentation/core-api/workqueue.rst
  
  X-POWERS MULTIFUNCTION PMIC DEVICE DRIVERS
  M:    Chen-Yu Tsai <wens@csie.org>
diff --combined arch/x86/Kconfig
@@@ -9,50 -9,28 +9,50 @@@ config 64BI
  config X86_32
        def_bool y
        depends on !64BIT
 +      # Options that are inherently 32-bit kernel only:
 +      select ARCH_WANT_IPC_PARSE_VERSION
 +      select CLKSRC_I8253
 +      select CLONE_BACKWARDS
 +      select HAVE_AOUT
 +      select HAVE_GENERIC_DMA_COHERENT
 +      select MODULES_USE_ELF_REL
 +      select OLD_SIGACTION
  
  config X86_64
        def_bool y
        depends on 64BIT
 +      # Options that are inherently 64-bit kernel only:
 +      select ARCH_HAS_GIGANTIC_PAGE
 +      select ARCH_SUPPORTS_INT128
 +      select ARCH_USE_CMPXCHG_LOCKREF
 +      select HAVE_ARCH_SOFT_DIRTY
 +      select MODULES_USE_ELF_RELA
 +      select X86_DEV_DMA_OPS
  
 -### Arch settings
 +#
 +# Arch settings
 +#
 +# ( Note that options that are marked 'if X86_64' could in principle be
 +#   ported to 32-bit as well. )
 +#
  config X86
        def_bool y
 +      #
 +      # Note: keep this list sorted alphabetically
 +      #
        select ACPI_LEGACY_TABLES_LOOKUP        if ACPI
        select ACPI_SYSTEM_POWER_STATES_SUPPORT if ACPI
        select ANON_INODES
        select ARCH_CLOCKSOURCE_DATA
        select ARCH_DISCARD_MEMBLOCK
 -      select ARCH_HAS_ACPI_TABLE_UPGRADE if ACPI
 +      select ARCH_HAS_ACPI_TABLE_UPGRADE      if ACPI
        select ARCH_HAS_DEVMEM_IS_ALLOWED
        select ARCH_HAS_ELF_RANDOMIZE
        select ARCH_HAS_FAST_MULTIPLIER
        select ARCH_HAS_GCOV_PROFILE_ALL
 -      select ARCH_HAS_GIGANTIC_PAGE           if X86_64
        select ARCH_HAS_KCOV                    if X86_64
 -      select ARCH_HAS_PMEM_API                if X86_64
        select ARCH_HAS_MMIO_FLUSH
 +      select ARCH_HAS_PMEM_API                if X86_64
        select ARCH_HAS_SG_CHAIN
        select ARCH_HAS_UBSAN_SANITIZE_ALL
        select ARCH_HAVE_NMI_SAFE_CMPXCHG
        select ARCH_MIGHT_HAVE_PC_SERIO
        select ARCH_SUPPORTS_ATOMIC_RMW
        select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
 -      select ARCH_SUPPORTS_INT128             if X86_64
        select ARCH_SUPPORTS_NUMA_BALANCING     if X86_64
        select ARCH_USE_BUILTIN_BSWAP
 -      select ARCH_USE_CMPXCHG_LOCKREF         if X86_64
        select ARCH_USE_QUEUED_RWLOCKS
        select ARCH_USE_QUEUED_SPINLOCKS
        select ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH if SMP
 -      select ARCH_WANTS_DYNAMIC_TASK_STRUCT
        select ARCH_WANT_FRAME_POINTERS
 -      select ARCH_WANT_IPC_PARSE_VERSION      if X86_32
 +      select ARCH_WANTS_DYNAMIC_TASK_STRUCT
        select BUILDTIME_EXTABLE_SORT
        select CLKEVT_I8253
 -      select CLKSRC_I8253                     if X86_32
        select CLOCKSOURCE_VALIDATE_LAST_CYCLE
        select CLOCKSOURCE_WATCHDOG
 -      select CLONE_BACKWARDS                  if X86_32
 -      select COMPAT_OLD_SIGACTION             if IA32_EMULATION
        select DCACHE_WORD_ACCESS
        select EDAC_ATOMIC_SCRUB
        select EDAC_SUPPORT
@@@ -93,6 -77,7 +93,6 @@@
        select HAVE_ACPI_APEI                   if ACPI
        select HAVE_ACPI_APEI_NMI               if ACPI
        select HAVE_ALIGNED_STRUCT_PAGE         if SLUB
 -      select HAVE_AOUT                        if X86_32
        select HAVE_ARCH_AUDITSYSCALL
        select HAVE_ARCH_HARDENED_USERCOPY
        select HAVE_ARCH_HUGE_VMAP              if X86_64 || X86_PAE
        select HAVE_ARCH_MMAP_RND_BITS          if MMU
        select HAVE_ARCH_MMAP_RND_COMPAT_BITS   if MMU && COMPAT
        select HAVE_ARCH_SECCOMP_FILTER
 -      select HAVE_ARCH_SOFT_DIRTY             if X86_64
        select HAVE_ARCH_TRACEHOOK
        select HAVE_ARCH_TRANSPARENT_HUGEPAGE
 -      select HAVE_ARCH_WITHIN_STACK_FRAMES
 -      select HAVE_EBPF_JIT                    if X86_64
        select HAVE_ARCH_VMAP_STACK             if X86_64
 +      select HAVE_ARCH_WITHIN_STACK_FRAMES
        select HAVE_CC_STACKPROTECTOR
        select HAVE_CMPXCHG_DOUBLE
        select HAVE_CMPXCHG_LOCAL
        select HAVE_DMA_CONTIGUOUS
        select HAVE_DYNAMIC_FTRACE
        select HAVE_DYNAMIC_FTRACE_WITH_REGS
 +      select HAVE_EBPF_JIT                    if X86_64
        select HAVE_EFFICIENT_UNALIGNED_ACCESS
        select HAVE_EXIT_THREAD
        select HAVE_FENTRY                      if X86_64
        select HAVE_FUNCTION_GRAPH_TRACER
        select HAVE_FUNCTION_TRACER
        select HAVE_GCC_PLUGINS
 -      select HAVE_GENERIC_DMA_COHERENT        if X86_32
        select HAVE_HW_BREAKPOINT
        select HAVE_IDE
        select HAVE_IOREMAP_PROT
        select HAVE_PERF_REGS
        select HAVE_PERF_USER_STACK_DUMP
        select HAVE_REGS_AND_STACK_ACCESS_API
 +      select HAVE_STACK_VALIDATION            if X86_64
        select HAVE_SYSCALL_TRACEPOINTS
 -      select HAVE_UID16                       if X86_32 || IA32_EMULATION
        select HAVE_UNSTABLE_SCHED_CLOCK
        select HAVE_USER_RETURN_NOTIFIER
        select IRQ_FORCED_THREADING
 -      select MODULES_USE_ELF_RELA             if X86_64
 -      select MODULES_USE_ELF_REL              if X86_32
 -      select OLD_SIGACTION                    if X86_32
 -      select OLD_SIGSUSPEND3                  if X86_32 || IA32_EMULATION
        select PERF_EVENTS
        select RTC_LIB
        select RTC_MC146818_LIB
        select THREAD_INFO_IN_TASK
        select USER_STACKTRACE_SUPPORT
        select VIRT_TO_BUS
 -      select X86_DEV_DMA_OPS                  if X86_64
        select X86_FEATURE_NAMES                if PROC_FS
 -      select HAVE_STACK_VALIDATION            if X86_64
 -      select ARCH_USES_HIGH_VMA_FLAGS         if X86_INTEL_MEMORY_PROTECTION_KEYS
 -      select ARCH_HAS_PKEYS                   if X86_INTEL_MEMORY_PROTECTION_KEYS
  
  config INSTRUCTION_DECODER
        def_bool y
@@@ -944,27 -939,6 +944,27 @@@ config SCHED_M
          making when dealing with multi-core CPU chips at a cost of slightly
          increased overhead in some places. If unsure say N here.
  
 +config SCHED_MC_PRIO
 +      bool "CPU core priorities scheduler support"
 +      depends on SCHED_MC && CPU_SUP_INTEL
 +      select X86_INTEL_PSTATE
 +      select CPU_FREQ
 +      default y
 +      ---help---
 +        Intel Turbo Boost Max Technology 3.0 enabled CPUs have a
 +        core ordering determined at manufacturing time, which allows
 +        certain cores to reach higher turbo frequencies (when running
 +        single threaded workloads) than others.
 +
 +        Enabling this kernel feature teaches the scheduler about
 +        the TBM3 (aka ITMT) priority order of the CPU cores and adjusts the
 +        scheduler's CPU selection logic accordingly, so that higher
 +        overall system performance can be achieved.
 +
 +        This feature will have no effect on CPUs without this feature.
 +
 +        If unsure say Y here.
 +
  source "kernel/Kconfig.preempt"
  
  config UP_LATE_INIT
@@@ -1051,7 -1025,7 +1051,7 @@@ config X86_MCE_INTE
  config X86_MCE_AMD
        def_bool y
        prompt "AMD MCE features"
 -      depends on X86_MCE && X86_LOCAL_APIC
 +      depends on X86_MCE && X86_LOCAL_APIC && AMD_NB
        ---help---
           Additional support for AMD specific MCE features such as
           the DRAM Error Threshold.
@@@ -1551,7 -1525,7 +1551,7 @@@ config X86_CHECK_BIOS_CORRUPTIO
          line.  By default it scans the low 64k of memory every 60
          seconds; see the memory_corruption_check_size and
          memory_corruption_check_period parameters in
-         Documentation/kernel-parameters.txt to adjust this.
+         Documentation/admin-guide/kernel-parameters.rst to adjust this.
  
          When enabled with the default parameters, this option has
          almost no overhead, as it reserves a relatively small amount
@@@ -1763,8 -1737,6 +1763,8 @@@ config X86_INTEL_MEMORY_PROTECTION_KEY
        def_bool y
        # Note: only available in 64-bit mode
        depends on CPU_SUP_INTEL && X86_64
 +      select ARCH_USES_HIGH_VMA_FLAGS
 +      select ARCH_HAS_PKEYS
        ---help---
          Memory Protection Keys provides a mechanism for enforcing
          page-based protections, but without requiring modification of the
@@@ -2120,7 -2092,7 +2120,7 @@@ config DEBUG_HOTPLUG_CPU
  config COMPAT_VDSO
        def_bool n
        prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
 -      depends on X86_32 || IA32_EMULATION
 +      depends on COMPAT_32
        ---help---
          Certain buggy versions of glibc will crash if they are
          presented with a 32-bit vDSO that is not mapped at the address
@@@ -2722,10 -2694,9 +2722,10 @@@ source "fs/Kconfig.binfmt
  config IA32_EMULATION
        bool "IA32 Emulation"
        depends on X86_64
 +      select ARCH_WANT_OLD_COMPAT_IPC
        select BINFMT_ELF
        select COMPAT_BINFMT_ELF
 -      select ARCH_WANT_OLD_COMPAT_IPC
 +      select COMPAT_OLD_SIGACTION
        ---help---
          Include code to run legacy 32-bit programs under a
          64-bit kernel. You should likely turn this on, unless you're
@@@ -2750,12 -2721,6 +2750,12 @@@ config X86_X3
          elf32_x86_64 support enabled to compile a kernel with this
          option set.
  
 +config COMPAT_32
 +      def_bool y
 +      depends on IA32_EMULATION || X86_32
 +      select HAVE_UID16
 +      select OLD_SIGSUSPEND3
 +
  config COMPAT
        def_bool y
        depends on IA32_EMULATION || X86_X32
diff --combined include/linux/device.h
@@@ -698,25 -698,6 +698,25 @@@ static inline int devm_add_action_or_re
        return ret;
  }
  
 +/**
 + * devm_alloc_percpu - Resource-managed alloc_percpu
 + * @dev: Device to allocate per-cpu memory for
 + * @type: Type to allocate per-cpu memory for
 + *
 + * Managed alloc_percpu. Per-cpu memory allocated with this function is
 + * automatically freed on driver detach.
 + *
 + * RETURNS:
 + * Pointer to allocated memory on success, NULL on failure.
 + */
 +#define devm_alloc_percpu(dev, type)      \
 +      ((typeof(type) __percpu *)__devm_alloc_percpu((dev), sizeof(type), \
 +                                                    __alignof__(type)))
 +
 +void __percpu *__devm_alloc_percpu(struct device *dev, size_t size,
 +                                 size_t align);
 +void devm_free_percpu(struct device *dev, void __percpu *pdata);
 +
  struct device_dma_parameters {
        /*
         * a low level driver may set these to teach IOMMU code about
   *            minimizes board-specific #ifdefs in drivers.
   * @driver_data: Private pointer for driver specific info.
   * @power:    For device power management.
-  *            See Documentation/power/devices.txt for details.
+  *            See Documentation/power/admin-guide/devices.rst for details.
   * @pm_domain:        Provide callbacks that are executed during system suspend,
   *            hibernation, system resume and during runtime PM transitions
   *            along with subsystem-level and driver-level callbacks.
diff --combined init/Kconfig
@@@ -1154,18 -1154,6 +1154,18 @@@ config CGROUP_PER
  
          Say N if unsure.
  
 +config CGROUP_BPF
 +      bool "Support for eBPF programs attached to cgroups"
 +      depends on BPF_SYSCALL && SOCK_CGROUP_DATA
 +      help
 +        Allow attaching eBPF programs to a cgroup using the bpf(2)
 +        syscall command BPF_PROG_ATTACH.
 +
 +        In which context these programs are accessed depends on the type
 +        of attachment. For instance, programs that are attached using
 +        BPF_CGROUP_INET_INGRESS will be executed on the ingress path of
 +        inet sockets.
 +
  config CGROUP_DEBUG
        bool "Example controller"
        default n
@@@ -1318,7 -1306,7 +1318,7 @@@ config BLK_DEV_INITR
          boot loader (loadlin or lilo) and that is mounted as root
          before the normal boot procedure. It is typically used to
          load modules needed to mount the "real" root file system,
-         etc. See <file:Documentation/initrd.txt> for details.
+         etc. See <file:Documentation/admin-guide/initrd.rst> for details.
  
          If RAM disk support (BLK_DEV_RAM) is also included, this
          also enables initial RAM disk (initrd) support and adds
@@@ -1457,23 -1445,6 +1457,23 @@@ config SYSCTL_SYSCAL
  
          If unsure say N here.
  
 +config POSIX_TIMERS
 +      bool "Posix Clocks & timers" if EXPERT
 +      default y
 +      help
 +        This includes native support for POSIX timers to the kernel.
 +        Some embedded systems have no use for them and therefore they
 +        can be configured out to reduce the size of the kernel image.
 +
 +        When this option is disabled, the following syscalls won't be
 +        available: timer_create, timer_gettime: timer_getoverrun,
 +        timer_settime, timer_delete, clock_adjtime, getitimer,
 +        setitimer, alarm. Furthermore, the clock_settime, clock_gettime,
 +        clock_getres and clock_nanosleep syscalls will be limited to
 +        CLOCK_REALTIME, CLOCK_MONOTONIC and CLOCK_BOOTTIME only.
 +
 +        If unsure say y.
 +
  config KALLSYMS
         bool "Load all symbols for debugging/ksymoops" if EXPERT
         default y
diff --combined init/main.c
@@@ -448,8 -448,6 +448,8 @@@ void __init parse_early_param(void
        done = 1;
  }
  
 +void __init __weak arch_post_acpi_subsys_init(void) { }
 +
  void __init __weak smp_setup_processor_id(void)
  {
  }
@@@ -651,7 -649,6 +651,7 @@@ asmlinkage __visible void __init start_
        check_bugs();
  
        acpi_subsystem_init();
 +      arch_post_acpi_subsys_init();
        sfi_init_late();
  
        if (efi_enabled(EFI_RUNTIME_SERVICES)) {
@@@ -983,7 -980,7 +983,7 @@@ static int __ref kernel_init(void *unus
                return 0;
  
        panic("No working init found.  Try passing init= option to kernel. "
-             "See Linux Documentation/init.txt for guidance.");
+             "See Linux Documentation/admin-guide/init.rst for guidance.");
  }
  
  static noinline void __init kernel_init_freeable(void)
diff --combined lib/Kconfig.debug
@@@ -13,23 -13,8 +13,23 @@@ config PRINTK_TIM
          be included, not that the timestamp is recorded.
  
          The behavior is also controlled by the kernel command line
-         parameter printk.time=1. See Documentation/kernel-parameters.txt
+         parameter printk.time=1. See Documentation/admin-guide/kernel-parameters.rst
  
 +config CONSOLE_LOGLEVEL_DEFAULT
 +      int "Default console loglevel (1-15)"
 +      range 1 15
 +      default "7"
 +      help
 +        Default loglevel to determine what will be printed on the console.
 +
 +        Setting a default here is equivalent to passing in loglevel=<x> in
 +        the kernel bootargs. loglevel=<x> continues to override whatever
 +        value is specified here as well.
 +
 +        Note: This does not affect the log level of un-prefixed prink()
 +        usage in the kernel. That is controlled by the MESSAGE_LOGLEVEL_DEFAULT
 +        option.
 +
  config MESSAGE_LOGLEVEL_DEFAULT
        int "Default message log level (1-7)"
        range 1 7
          that are auditing their logs closely may want to set it to a lower
          priority.
  
 +        Note: This does not affect what message level gets printed on the console
 +        by default. To change that, use loglevel=<x> in the kernel bootargs,
 +        or pick a different CONSOLE_LOGLEVEL_DEFAULT configuration value.
 +
  config BOOT_PRINTK_DELAY
        bool "Delay each boot printk message by N milliseconds"
        depends on DEBUG_KERNEL && PRINTK && GENERIC_CALIBRATE_DELAY
@@@ -1104,9 -1085,6 +1104,9 @@@ config PROVE_LOCKIN
  
         For more details, see Documentation/locking/lockdep-design.txt.
  
 +config PROVE_LOCKING_SMALL
 +      bool
 +
  config LOCKDEP
        bool
        depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
@@@ -1237,7 -1215,7 +1237,7 @@@ config DEBUG_BUGVERBOS
  
  config DEBUG_LIST
        bool "Debug linked list manipulation"
 -      depends on DEBUG_KERNEL
 +      depends on DEBUG_KERNEL || BUG_ON_DATA_CORRUPTION
        help
          Enable this to turn on extended checks in the linked-list
          walking routines.
@@@ -1453,8 -1431,7 +1453,8 @@@ config RCU_TRAC
        select TRACE_CLOCK
        help
          This option provides tracing in RCU which presents stats
 -        in debugfs for debugging RCU implementation.
 +        in debugfs for debugging RCU implementation.  It also enables
 +        additional tracepoints for ftrace-style event tracing.
  
          Say Y here if you want to enable RCU tracing
          Say N if you are unsure.
@@@ -1984,16 -1961,6 +1984,16 @@@ config TEST_STATIC_KEY
  
          If unsure, say N.
  
 +config BUG_ON_DATA_CORRUPTION
 +      bool "Trigger a BUG when data corruption is detected"
 +      select DEBUG_LIST
 +      help
 +        Select this option if the kernel should BUG when it encounters
 +        data corruption in kernel memory structures when they get checked
 +        for validity.
 +
 +        If unsure, say N.
 +
  source "samples/Kconfig"
  
  source "lib/Kconfig.kgdb"
@@@ -2005,7 -1972,7 +2005,7 @@@ config ARCH_HAS_DEVMEM_IS_ALLOWE
  
  config STRICT_DEVMEM
        bool "Filter access to /dev/mem"
 -      depends on MMU
 +      depends on MMU && DEVMEM
        depends on ARCH_HAS_DEVMEM_IS_ALLOWED
        default y if TILE || PPC
        ---help---
diff --combined scripts/checkpatch.pl
@@@ -761,7 -761,7 +761,7 @@@ sub seed_camelcase_file 
  sub is_maintained_obsolete {
        my ($filename) = @_;
  
 -      return 0 if (!(-e "$root/scripts/get_maintainer.pl"));
 +      return 0 if (!$tree || !(-e "$root/scripts/get_maintainer.pl"));
  
        my $status = `perl $root/scripts/get_maintainer.pl --status --nom --nol --nogit --nogit-fallback -f $filename 2>&1`;
  
@@@ -2187,7 -2187,7 +2187,7 @@@ sub process 
  
                if ($rawline=~/^\+\+\+\s+(\S+)/) {
                        $setup_docs = 0;
-                       if ($1 =~ m@Documentation/kernel-parameters.txt$@) {
+                       if ($1 =~ m@Documentation/admin-guide/kernel-parameters.rst$@) {
                                $setup_docs = 1;
                        }
                        #next;
                     $line =~ /^rename (?:from|to) [\w\/\.\-]+\s*$/ ||
                     ($line =~ /\{\s*([\w\/\.\-]*)\s*\=\>\s*([\w\/\.\-]*)\s*\}/ &&
                      (defined($1) || defined($2))))) {
 +                      $is_patch = 1;
                        $reported_maintainer_file = 1;
                        WARN("FILE_PATH_CHANGES",
                             "added, moved or deleted file(s), does MAINTAINERS need updating?\n" . $herecurr);
                                $herecurr) if (!$emitted_corrupt++);
                }
  
 -# Check for absolute kernel paths.
 -              if ($tree) {
 -                      while ($line =~ m{(?:^|\s)(/\S*)}g) {
 -                              my $file = $1;
 -
 -                              if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
 -                                  check_absolute_file($1, $herecurr)) {
 -                                      #
 -                              } else {
 -                                      check_absolute_file($file, $herecurr);
 -                              }
 -                      }
 -              }
 -
  # UTF-8 regex found at http://www.w3.org/International/questions/qa-forms-utf-8.en.php
                if (($realfile =~ /^$/ || $line =~ /^\+/) &&
                    $rawline !~ m/^$UTF8*$/) {
                            "8-bit UTF-8 used in possible commit log\n" . $herecurr);
                }
  
 +# Check for absolute kernel paths in commit message
 +              if ($tree && $in_commit_log) {
 +                      while ($line =~ m{(?:^|\s)(/\S*)}g) {
 +                              my $file = $1;
 +
 +                              if ($file =~ m{^(.*?)(?::\d+)+:?$} &&
 +                                  check_absolute_file($1, $herecurr)) {
 +                                      #
 +                              } else {
 +                                      check_absolute_file($file, $herecurr);
 +                              }
 +                      }
 +              }
 +
  # Check for various typo / spelling mistakes
                if (defined($misspellings) &&
                    ($in_commit_log || $line =~ /^(?:\+|Subject:)/i)) {
                }
  
  # check we are in a valid source file if not then ignore this hunk
 -              next if ($realfile !~ /\.(h|c|s|S|pl|sh|dtsi|dts)$/);
 +              next if ($realfile !~ /\.(h|c|s|S|sh|dtsi|dts)$/);
  
  # line length limit (with some exclusions)
  #
  #ignore lines not being added
                next if ($line =~ /^[^\+]/);
  
 +# check for dereferences that span multiple lines
 +              if ($prevline =~ /^\+.*$Lval\s*(?:\.|->)\s*$/ &&
 +                  $line =~ /^\+\s*(?!\#\s*(?!define\s+|if))\s*$Lval/) {
 +                      $prevline =~ /($Lval\s*(?:\.|->))\s*$/;
 +                      my $ref = $1;
 +                      $line =~ /^.\s*($Lval)/;
 +                      $ref .= $1;
 +                      $ref =~ s/\s//g;
 +                      WARN("MULTILINE_DEREFERENCE",
 +                           "Avoid multiple line dereference - prefer '$ref'\n" . $hereprev);
 +              }
 +
  # check for declarations of signed or unsigned without int
                while ($line =~ m{\b($Declare)\s*(?!char\b|short\b|int\b|long\b)\s*($Ident)?\s*[=,;\[\)\(]}g) {
                        my $type = $1;
                my $asm_volatile = qr{\b(__asm__|asm)\s+(__volatile__|volatile)\b};
                if ($line =~ /\bvolatile\b/ && $line !~ /$asm_volatile/) {
                        WARN("VOLATILE",
-                            "Use of volatile is usually wrong: see Documentation/volatile-considered-harmful.txt\n" . $herecurr);
+                            "Use of volatile is usually wrong: see Documentation/process/volatile-considered-harmful.rst\n" . $herecurr);
                }
  
  # Check for user-visible strings broken across lines, which breaks the ability
                              "Using weak declarations can have unintended link defects\n" . $herecurr);
                }
  
 -# check for c99 types like uint8_t used outside of uapi/
 +# check for c99 types like uint8_t used outside of uapi/ and tools/
                if ($realfile !~ m@\binclude/uapi/@ &&
 +                  $realfile !~ m@\btools/@ &&
                    $line =~ /\b($Declare)\s*$Ident\s*[=;,\[]/) {
                        my $type = $1;
                        if ($type =~ /\b($typeC99Typedefs)\b/) {
  
                        if (!grep(/$name/, @setup_docs)) {
                                CHK("UNDOCUMENTED_SETUP",
-                                   "__setup appears un-documented -- check Documentation/kernel-parameters.txt\n" . $herecurr);
+                                   "__setup appears un-documented -- check Documentation/admin-guide/kernel-parameters.rst\n" . $herecurr);
                        }
                }
  
                        }
                        if (!$has_break && $has_statement) {
                                WARN("MISSING_BREAK",
 -                                   "Possible switch case/default not preceeded by break or fallthrough comment\n" . $herecurr);
 +                                   "Possible switch case/default not preceded by break or fallthrough comment\n" . $herecurr);
                        }
                }
  
                        }
                }
  
 +# check for mutex_trylock_recursive usage
 +              if ($line =~ /mutex_trylock_recursive/) {
 +                      ERROR("LOCKING",
 +                            "recursive locking is bad, do not use this ever.\n" . $herecurr);
 +              }
 +
  # check for lockdep_set_novalidate_class
                if ($line =~ /^.\s*lockdep_set_novalidate_class\s*\(/ ||
                    $line =~ /__lockdep_no_validate__\s*\)/ ) {