]> Git Repo - linux.git/commitdiff
Merge tag 'docs-4.20' of git://git.lwn.net/linux
authorLinus Torvalds <[email protected]>
Wed, 24 Oct 2018 17:01:11 +0000 (18:01 +0100)
committerLinus Torvalds <[email protected]>
Wed, 24 Oct 2018 17:01:11 +0000 (18:01 +0100)
Pull documentation updates from Jonathan Corbet:
 "This is a fairly typical cycle for documentation. There's some welcome
  readability improvements for the formatted output, some LICENSES
  updates including the addition of the ISC license, the removal of the
  unloved and unmaintained 00-INDEX files, the deprecated APIs document
  from Kees, more MM docs from Mike Rapoport, and the usual pile of typo
  fixes and corrections"

* tag 'docs-4.20' of git://git.lwn.net/linux: (41 commits)
  docs: Fix typos in histogram.rst
  docs: Introduce deprecated APIs list
  kernel-doc: fix declaration type determination
  doc: fix a typo in adding-syscalls.rst
  docs/admin-guide: memory-hotplug: remove table of contents
  doc: printk-formats: Remove bogus kobject references for device nodes
  Documentation: preempt-locking: Use better example
  dm flakey: Document "error_writes" feature
  docs/completion.txt: Fix a couple of punctuation nits
  LICENSES: Add ISC license text
  LICENSES: Add note to CDDL-1.0 license that it should not be used
  docs/core-api: memory-hotplug: add some details about locking internals
  docs/core-api: rename memory-hotplug-notifier to memory-hotplug
  docs: improve readability for people with poorer eyesight
  yama: clarify ptrace_scope=2 in Yama documentation
  docs/vm: split memory hotplug notifier description to Documentation/core-api
  docs: move memory hotplug description into admin-guide/mm
  doc: Fix acronym "FEKEK" in ecryptfs
  docs: fix some broken documentation references
  iommu: Fix passthrough option documentation
  ...

1  2 
Documentation/admin-guide/kernel-parameters.txt
Documentation/conf.py
Documentation/process/index.rst
Documentation/scheduler/completion.txt
MAINTAINERS
lib/vsprintf.c

index 4cdcd1a1bbc3445fab39be8332950a854dd74bfd,8c5a956f3d9c259ddead3d5414548500d6d53624..e129cd8a6dcc87d0cde9eafb251d076e9feaa8f2
                        causing system reset or hang due to sending
                        INIT from AP to BSP.
  
 +      disable_counter_freezing [HW]
 +                      Disable Intel PMU counter freezing feature.
 +                      The feature only exists starting from
 +                      Arch Perfmon v4 (Skylake and newer).
 +
        disable_ddw     [PPC/PSERIES]
                        Disable Dynamic DMA Window support. Use this if
                        to workaround buggy firmware.
        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.
 +
 +      hv_nopvspin     [X86,HYPER_V] Disables the paravirt spinlock optimizations
 +                                    which allow the hypervisor to 'idle' the
 +                                    guest on lock contention.
 +
        keep_bootcon    [KNL]
                        Do not unregister boot console at start. This is only
                        useful for debugging when something happens in the window
                        Format: { "0" | "1" }
                        0 - Use IOMMU translation for DMA.
                        1 - Bypass the IOMMU for DMA.
-                       unset - Use IOMMU translation for DMA.
+                       unset - Use value of CONFIG_IOMMU_DEFAULT_PASSTHROUGH.
  
        io7=            [HW] IO7 for Marvel based alpha systems
                        See comment before marvel_specify_io7 in
        ltpc=           [NET]
                        Format: <io>,<irq>,<dma>
  
 +      lsm.debug       [SECURITY] Enable LSM initialization debugging output.
 +
        machvec=        [IA-64] Force the use of a particular machine-vector
                        (machvec) in a generic kernel.
                        Example: machvec=hpzx1_swiotlb
        ramdisk_size=   [RAM] Sizes of RAM disks in kilobytes
                        See Documentation/blockdev/ramdisk.txt.
  
 +      random.trust_cpu={on,off}
 +                      [KNL] Enable or disable trusting the use of the
 +                      CPU's random number generator (if available) to
 +                      fully seed the kernel's CRNG. Default is controlled
 +                      by CONFIG_RANDOM_TRUST_CPU.
 +
        ras=option[,option,...] [KNL] RAS-specific options
  
                cec_disable     [X86]
  
                        In kernels built with CONFIG_RCU_NOCB_CPU=y, set
                        the specified list of CPUs to be no-callback CPUs.
 -                      Invocation of these CPUs' RCU callbacks will
 -                      be offloaded to "rcuox/N" kthreads created for
 -                      that purpose, where "x" is "b" for RCU-bh, "p"
 -                      for RCU-preempt, and "s" for RCU-sched, and "N"
 -                      is the CPU number.  This reduces OS jitter on the
 -                      offloaded CPUs, which can be useful for HPC and
 -                      real-time workloads.  It can also improve energy
 -                      efficiency for asymmetric multiprocessors.
 +                      Invocation of these CPUs' RCU callbacks will be
 +                      offloaded to "rcuox/N" kthreads created for that
 +                      purpose, where "x" is "p" for RCU-preempt, and
 +                      "s" for RCU-sched, and "N" is the CPU number.
 +                      This reduces OS jitter on the offloaded CPUs,
 +                      which can be useful for HPC and real-time
 +                      workloads.  It can also improve energy efficiency
 +                      for asymmetric multiprocessors.
  
        rcu_nocb_poll   [KNL]
                        Rather than requiring that offloaded CPUs
                        Set required age in jiffies for a
                        given grace period before RCU starts
                        soliciting quiescent-state help from
 -                      rcu_note_context_switch().
 +                      rcu_note_context_switch().  If not specified, the
 +                      kernel will calculate a value based on the most
 +                      recent settings of rcutree.jiffies_till_first_fqs
 +                      and rcutree.jiffies_till_next_fqs.
 +                      This calculated value may be viewed in
 +                      rcutree.jiffies_to_sched_qs.  Any attempt to
 +                      set rcutree.jiffies_to_sched_qs will be
 +                      cheerfully overwritten.
  
        rcutree.jiffies_till_first_fqs= [KNL]
                        Set delay from grace-period initialization to
        rcupdate.rcu_self_test= [KNL]
                        Run the RCU early boot self tests
  
 -      rcupdate.rcu_self_test_bh= [KNL]
 -                      Run the RCU bh early boot self tests
 -
 -      rcupdate.rcu_self_test_sched= [KNL]
 -                      Run the RCU sched early boot self tests
 -
        rdinit=         [KNL]
                        Format: <full_path>
                        Run specified binary instead of /init from the ramdisk,
                        Disables the PV optimizations forcing the HVM guest to
                        run as generic HVM guest with no PV drivers.
  
 +      xen_scrub_pages=        [XEN]
 +                      Boolean option to control scrubbing pages before giving them back
 +                      to Xen, for use by other domains. Can be also changed at runtime
 +                      with /sys/devices/system/xen_memory/xen_memory0/scrub_pages.
 +                      Default value controlled with CONFIG_XEN_SCRUB_PAGES_DEFAULT.
 +
        xirc2ps_cs=     [NET,PCMCIA]
                        Format:
                        <irq>,<irq_mask>,<io>,<full_duplex>,<do_sound>,<lockup_hack>[,<irq2>[,<irq3>[,<irq4>]]]
diff --combined Documentation/conf.py
index ede67ccafc29712b74d29e38327e46fa42d45ac4,89946361e5455defb96a26ed3809006bc422aa99..72647a38b5c2a2d0969da240649d3a1178a8283b
@@@ -259,7 -259,7 +259,7 @@@ latex_elements = 
  'papersize': 'a4paper',
  
  # The font size ('10pt', '11pt' or '12pt').
- 'pointsize': '8pt',
+ 'pointsize': '11pt',
  
  # Latex figure (float) alignment
  #'figure_align': 'htbp',
      'preamble': '''
        % Use some font with UTF-8 support with XeLaTeX
          \\usepackage{fontspec}
-         \\setsansfont{DejaVu Serif}
-         \\setromanfont{DejaVu Sans}
+         \\setsansfont{DejaVu Sans}
+         \\setromanfont{DejaVu Serif}
          \\setmonofont{DejaVu Sans Mono}
  
       '''
@@@ -383,10 -383,6 +383,10 @@@ latex_documents = 
       'The kernel development community', 'manual'),
      ('filesystems/index', 'filesystems.tex', 'Linux Filesystems API',
       'The kernel development community', 'manual'),
 +    ('admin-guide/ext4', 'ext4-admin-guide.tex', 'ext4 Administration Guide',
 +     'ext4 Community', 'manual'),
 +    ('filesystems/ext4/index', 'ext4-data-structures.tex',
 +     'ext4 Data Structures and Algorithms', 'ext4 Community', 'manual'),
      ('gpu/index', 'gpu.tex', 'Linux GPU Driver Developer\'s Guide',
       'The kernel development community', 'manual'),
      ('input/index', 'linux-input.tex', 'The Linux input driver subsystem',
index 42691e2880eb0710d488d56b5c84fcd7b425cbdb,1ddde440f333d8f239cc9c34f0586e4a2b56e84b..757808526d9a8bbb2197dc54a532ea766e5c4be3
@@@ -19,9 -19,9 +19,10 @@@ Below are the essential guides that eve
  .. toctree::
     :maxdepth: 1
  
+    license-rules
     howto
 -   code-of-conflict
 +   code-of-conduct
 +   code-of-conduct-interpretation
     development-process
     submitting-patches
     coding-style
@@@ -42,6 -42,7 +43,7 @@@ Other guides to the community that are 
     stable-kernel-rules
     submit-checklist
     kernel-docs
+    deprecated
  
  These are some overall technical guides that have been put here for now for
  lack of a better place.
index 2dbff579f95783613aae4c0800a2cf167bf67fc8,108bd0f264b3bae5555b7e4dae1f8a5f1ba4b29c..e5b9df4d8078bf258da650ee239808648149a6a0
 -completions - wait for completion handling
 -==========================================
 -
 -This document was originally written based on 3.18.0 (linux-next)
 +Completions - "wait for completion" barrier APIs
 +================================================
  
  Introduction:
  -------------
  
 -If you have one or more threads of execution that must wait for some process
 +If you have one or more threads that must wait for some kernel activity
  to have reached a point or a specific state, completions can provide a
  race-free solution to this problem. Semantically they are somewhat like a
 -pthread_barrier and have similar use-cases.
 +pthread_barrier() and have similar use-cases.
  
  Completions are a code synchronization mechanism which is preferable to any
 -misuse of locks. Any time you think of using yield() or some quirky
 -msleep(1) loop to allow something else to proceed, you probably want to
 -look into using one of the wait_for_completion*() calls instead. The
 -advantage of using completions is clear intent of the code, but also more
 -efficient code as both threads can continue until the result is actually
 -needed.
 -
 -Completions are built on top of the generic event infrastructure in Linux,
 -with the event reduced to a simple flag (appropriately called "done") in
 -struct completion that tells the waiting threads of execution if they
 -can continue safely.
 -
 -As completions are scheduling related, the code is found in
 +misuse of locks/semaphores and busy-loops. Any time you think of using
 +yield() or some quirky msleep(1) loop to allow something else to proceed,
 +you probably want to look into using one of the wait_for_completion*()
 +calls and complete() instead.
 +
 +The advantage of using completions is that they have a well defined, focused
 +purpose which makes it very easy to see the intent of the code, but they
 +also result in more efficient code as all threads can continue execution
 +until the result is actually needed, and both the waiting and the signalling
 +is highly efficient using low level scheduler sleep/wakeup facilities.
 +
 +Completions are built on top of the waitqueue and wakeup infrastructure of
 +the Linux scheduler. The event the threads on the waitqueue are waiting for
 +is reduced to a simple flag in 'struct completion', appropriately called "done".
 +
 +As completions are scheduling related, the code can be found in
  kernel/sched/completion.c.
  
  
  Usage:
  ------
  
 -There are three parts to using completions, the initialization of the
 -struct completion, the waiting part through a call to one of the variants of
 -wait_for_completion() and the signaling side through a call to complete()
 -or complete_all(). Further there are some helper functions for checking the
 -state of completions.
 +There are three main parts to using completions:
 +
 + - the initialization of the 'struct completion' synchronization object
 + - the waiting part through a call to one of the variants of wait_for_completion(),
 + - the signaling side through a call to complete() or complete_all().
 +
 +There are also some helper functions for checking the state of completions.
 +Note that while initialization must happen first, the waiting and signaling
 +part can happen in any order. I.e. it's entirely normal for a thread
 +to have marked a completion as 'done' before another thread checks whether
 +it has to wait for it.
  
 -To use completions one needs to include <linux/completion.h> and
 -create a variable of type struct completion. The structure used for
 -handling of completions is:
 +To use completions you need to #include <linux/completion.h> and
 +create a static or dynamic variable of type 'struct completion',
 +which has only two fields:
  
        struct completion {
                unsigned int done;
                wait_queue_head_t wait;
        };
  
 -providing the wait queue to place tasks on for waiting and the flag for
 -indicating the state of affairs.
 +This provides the ->wait waitqueue to place tasks on for waiting (if any), and
 +the ->done completion flag for indicating whether it's completed or not.
  
 -Completions should be named to convey the intent of the waiter. A good
 -example is:
 +Completions should be named to refer to the event that is being synchronized on.
 +A good example is:
  
        wait_for_completion(&early_console_added);
  
        complete(&early_console_added);
  
 -Good naming (as always) helps code readability.
 +Good, intuitive naming (as always) helps code readability. Naming a completion
 +'complete' is not helpful unless the purpose is super obvious...
  
  
  Initializing completions:
  -------------------------
  
 -Initialization of dynamically allocated completions, often embedded in
 -other structures, is done with:
 +Dynamically allocated completion objects should preferably be embedded in data
 +structures that are assured to be alive for the life-time of the function/driver,
 +to prevent races with asynchronous complete() calls from occurring.
 +
 +Particular care should be taken when using the _timeout() or _killable()/_interruptible()
 +variants of wait_for_completion(), as it must be assured that memory de-allocation
 +does not happen until all related activities (complete() or reinit_completion())
 +have taken place, even if these wait functions return prematurely due to a timeout
 +or a signal triggering.
 +
 +Initializing of dynamically allocated completion objects is done via a call to
 +init_completion():
  
 -      void init_completion(&done);
 +      init_completion(&dynamic_object->done);
  
 -Initialization is accomplished by initializing the wait queue and setting
 -the default state to "not available", that is, "done" is set to 0.
 +In this call we initialize the waitqueue and set ->done to 0, i.e. "not completed"
 +or "not done".
  
  The re-initialization function, reinit_completion(), simply resets the
 -done element to "not available", thus again to 0, without touching the
 -wait queue. Calling init_completion() twice on the same completion object is
 +->done field to 0 ("not done"), without touching the waitqueue.
 +Callers of this function must make sure that there are no racy
 +wait_for_completion() calls going on in parallel.
 +
 +Calling init_completion() on the same completion object twice is
  most likely a bug as it re-initializes the queue to an empty queue and
 -enqueued tasks could get "lost" - use reinit_completion() in that case.
 +enqueued tasks could get "lost" - use reinit_completion() in that case,
 +but be aware of other races.
 +
 +For static declaration and initialization, macros are available.
 +
 +For static (or global) declarations in file scope you can use DECLARE_COMPLETION():
  
 -For static declaration and initialization, macros are available. These are:
 +      static DECLARE_COMPLETION(setup_done);
 +      DECLARE_COMPLETION(setup_done);
  
 -      static DECLARE_COMPLETION(setup_done)
 +Note that in this case the completion is boot time (or module load time)
 +initialized to 'not done' and doesn't require an init_completion() call.
  
 -used for static declarations in file scope. Within functions the static
 -initialization should always use:
 +When a completion is declared as a local variable within a function,
 +then the initialization should always use DECLARE_COMPLETION_ONSTACK()
 +explicitly, not just to make lockdep happy, but also to make it clear
 +that limited scope had been considered and is intentional:
  
        DECLARE_COMPLETION_ONSTACK(setup_done)
  
 -suitable for automatic/local variables on the stack and will make lockdep
 -happy. Note also that one needs to make *sure* the completion passed to
 -work threads remains in-scope, and no references remain to on-stack data
 -when the initiating function returns.
 +Note that when using completion objects as local variables you must be
 +acutely aware of the short life time of the function stack: the function
 +must not return to a calling context until all activities (such as waiting
 +threads) have ceased and the completion object is completely unused.
  
 -Using on-stack completions for code that calls any of the _timeout or
 -_interruptible/_killable variants is not advisable as they will require
 -additional synchronization to prevent the on-stack completion object in
 -the timeout/signal cases from going out of scope. Consider using dynamically
 -allocated completions when intending to use the _interruptible/_killable
 -or _timeout variants of wait_for_completion().
 +To emphasise this again: in particular when using some of the waiting API variants
 +with more complex outcomes, such as the timeout or signalling (_timeout(),
 +_killable() and _interruptible()) variants, the wait might complete
 +prematurely while the object might still be in use by another thread - and a return
 +from the wait_on_completion*() caller function will deallocate the function
 +stack and cause subtle data corruption if a complete() is done in some
 +other thread. Simple testing might not trigger these kinds of races.
  
 +If unsure, use dynamically allocated completion objects, preferably embedded
 +in some other long lived object that has a boringly long life time which
 +exceeds the life time of any helper threads using the completion object,
 +or has a lock or other synchronization mechanism to make sure complete()
 +is not called on a freed object.
 +
 +A naive DECLARE_COMPLETION() on the stack triggers a lockdep warning.
  
  Waiting for completions:
  ------------------------
  
 -For a thread of execution to wait for some concurrent work to finish, it
 -calls wait_for_completion() on the initialized completion structure.
 +For a thread to wait for some concurrent activity to finish, it
 +calls wait_for_completion() on the initialized completion structure:
 +
 +      void wait_for_completion(struct completion *done)
 +
  A typical usage scenario is:
  
 +      CPU#1                                   CPU#2
 +
        struct completion setup_done;
 +
        init_completion(&setup_done);
 -      initialize_work(...,&setup_done,...)
 +      initialize_work(...,&setup_done,...);
  
 -      /* run non-dependent code */              /* do setup */
 +      /* run non-dependent code */            /* do setup */
  
 -      wait_for_completion(&setup_done);         complete(setup_done)
 +      wait_for_completion(&setup_done);       complete(setup_done);
  
 -This is not implying any temporal order on wait_for_completion() and the
 -call to complete() - if the call to complete() happened before the call
 +This is not implying any particular order between wait_for_completion() and
 +the call to complete() - if the call to complete() happened before the call
  to wait_for_completion() then the waiting side simply will continue
  immediately as all dependencies are satisfied; if not, it will block until
  completion is signaled by complete().
  
  Note that wait_for_completion() is calling spin_lock_irq()/spin_unlock_irq(),
  so it can only be called safely when you know that interrupts are enabled.
 -Calling it from hard-irq or irqs-off atomic contexts will result in
 -hard-to-detect spurious enabling of interrupts.
 -
 -wait_for_completion():
 -
 -      void wait_for_completion(struct completion *done):
 +Calling it from IRQs-off atomic contexts will result in hard-to-detect
 +spurious enabling of interrupts.
  
  The default behavior is to wait without a timeout and to mark the task as
  uninterruptible. wait_for_completion() and its variants are only safe
  in process context (as they can sleep) but not in atomic context,
 -interrupt context, with disabled irqs, or preemption is disabled - see also
 +interrupt context, with disabled IRQs, or preemption is disabled - see also
  try_wait_for_completion() below for handling completion in atomic/interrupt
  context.
  
  As all variants of wait_for_completion() can (obviously) block for a long
 -time, you probably don't want to call this with held mutexes.
 +time depending on the nature of the activity they are waiting for, so in
 +most cases you probably don't want to call this with held mutexes.
  
  
 -Variants available:
 --------------------
 +wait_for_completion*() variants available:
 +------------------------------------------
  
  The below variants all return status and this status should be checked in
  most(/all) cases - in cases where the status is deliberately not checked you
@@@ -189,53 -148,51 +189,53 @@@ probably want to make a note explainin
  arch/arm/kernel/smp.c:__cpu_up()).
  
  A common problem that occurs is to have unclean assignment of return types,
 -so care should be taken with assigning return-values to variables of proper
 -type. Checking for the specific meaning of return values also has been found
 -to be quite inaccurate e.g. constructs like
 -if (!wait_for_completion_interruptible_timeout(...)) would execute the same
 -code path for successful completion and for the interrupted case - which is
 -probably not what you want.
 +so take care to assign return-values to variables of the proper type.
 +
 +Checking for the specific meaning of return values also has been found
 +to be quite inaccurate, e.g. constructs like:
 +
 +      if (!wait_for_completion_interruptible_timeout(...))
 +
 +... would execute the same code path for successful completion and for the
 +interrupted case - which is probably not what you want.
  
        int wait_for_completion_interruptible(struct completion *done)
  
 -This function marks the task TASK_INTERRUPTIBLE. If a signal was received
 -while waiting it will return -ERESTARTSYS; 0 otherwise.
 +This function marks the task TASK_INTERRUPTIBLE while it is waiting.
 +If a signal was received while waiting it will return -ERESTARTSYS; 0 otherwise.
  
 -      unsigned long wait_for_completion_timeout(struct completion *done,
 -              unsigned long timeout)
 +      unsigned long wait_for_completion_timeout(struct completion *done, unsigned long timeout)
  
  The task is marked as TASK_UNINTERRUPTIBLE and will wait at most 'timeout'
 -(in jiffies). If timeout occurs it returns 0 else the remaining time in
 -jiffies (but at least 1). Timeouts are preferably calculated with
 -msecs_to_jiffies() or usecs_to_jiffies(). If the returned timeout value is
 -deliberately ignored a comment should probably explain why (e.g. see
 -drivers/mfd/wm8350-core.c wm8350_read_auxadc())
 +jiffies. If a timeout occurs it returns 0, else the remaining time in
 +jiffies (but at least 1).
 +
 +Timeouts are preferably calculated with msecs_to_jiffies() or usecs_to_jiffies(),
 +to make the code largely HZ-invariant.
 +
 +If the returned timeout value is deliberately ignored a comment should probably explain
 +why (e.g. see drivers/mfd/wm8350-core.c wm8350_read_auxadc()).
  
 -      long wait_for_completion_interruptible_timeout(
 -              struct completion *done, unsigned long timeout)
 +      long wait_for_completion_interruptible_timeout(struct completion *done, unsigned long timeout)
  
  This function passes a timeout in jiffies and marks the task as
  TASK_INTERRUPTIBLE. If a signal was received it will return -ERESTARTSYS;
 -otherwise it returns 0 if the completion timed out or the remaining time in
 +otherwise it returns 0 if the completion timed out, or the remaining time in
  jiffies if completion occurred.
  
  Further variants include _killable which uses TASK_KILLABLE as the
 -designated tasks state and will return -ERESTARTSYS if it is interrupted or
 -else 0 if completion was achieved.  There is a _timeout variant as well:
 +designated tasks state and will return -ERESTARTSYS if it is interrupted,
 +or 0 if completion was achieved.  There is a _timeout variant as well:
  
        long wait_for_completion_killable(struct completion *done)
 -      long wait_for_completion_killable_timeout(struct completion *done,
 -              unsigned long timeout)
 +      long wait_for_completion_killable_timeout(struct completion *done, unsigned long timeout)
  
  The _io variants wait_for_completion_io() behave the same as the non-_io
 -variants, except for accounting waiting time as waiting on IO, which has
 -an impact on how the task is accounted in scheduling stats.
 +variants, except for accounting waiting time as 'waiting on IO', which has
 +an impact on how the task is accounted in scheduling/IO stats:
  
        void wait_for_completion_io(struct completion *done)
 -      unsigned long wait_for_completion_io_timeout(struct completion *done
 -              unsigned long timeout)
 +      unsigned long wait_for_completion_io_timeout(struct completion *done, unsigned long timeout)
  
  
  Signaling completions:
  
  A thread that wants to signal that the conditions for continuation have been
  achieved calls complete() to signal exactly one of the waiters that it can
 -continue.
 +continue:
  
        void complete(struct completion *done)
  
 -or calls complete_all() to signal all current and future waiters.
 +... or calls complete_all() to signal all current and future waiters:
  
        void complete_all(struct completion *done)
  
  The signaling will work as expected even if completions are signaled before
  a thread starts waiting. This is achieved by the waiter "consuming"
 -(decrementing) the done element of struct completion. Waiting threads
 +(decrementing) the done field of 'struct completion'. Waiting threads
  wakeup order is the same in which they were enqueued (FIFO order).
  
  If complete() is called multiple times then this will allow for that number
  of waiters to continue - each call to complete() will simply increment the
 -done element. Calling complete_all() multiple times is a bug though. Both
 -complete() and complete_all() can be called in hard-irq/atomic context safely.
 +done field. Calling complete_all() multiple times is a bug though. Both
 +complete() and complete_all() can be called in IRQ/atomic context safely.
  
 -There only can be one thread calling complete() or complete_all() on a
 -particular struct completion at any time - serialized through the wait
 +There can only be one thread calling complete() or complete_all() on a
 +particular 'struct completion' at any time - serialized through the wait
  queue spinlock. Any such concurrent calls to complete() or complete_all()
  probably are a design bug.
  
 -Signaling completion from hard-irq context is fine as it will appropriately
 -lock with spin_lock_irqsave()/spin_unlock_irqrestore() and it will never sleep.
 +Signaling completion from IRQ context is fine as it will appropriately
- lock with spin_lock_irqsave()/spin_unlock_irqrestore() and it will never sleep.
++lock with spin_lock_irqsave()/spin_unlock_irqrestore() and it will never
++sleep. 
  
  
  try_wait_for_completion()/completion_done():
@@@ -279,7 -236,7 +280,7 @@@ else it consumes one posted completion 
  
        bool try_wait_for_completion(struct completion *done)
  
 -Finally, to check the state of a completion without changing it in any way, 
 +Finally, to check the state of a completion without changing it in any way,
  call completion_done(), which returns false if there are no posted
  completions that were not yet consumed by waiters (implying that there are
  waiters) and true otherwise;
        bool completion_done(struct completion *done)
  
  Both try_wait_for_completion() and completion_done() are safe to be called in
 -hard-irq or atomic context.
 +IRQ or atomic context.
diff --combined MAINTAINERS
index af2a61a31a8ee9c4fc96e73c308d48727cb7d6b6,8db248fd793c1ee4fd20cbcc76dd7e8ead7d149e..49e8fa2e95d5782d4605ac02337809843cf89626
@@@ -324,6 -324,7 +324,6 @@@ F: Documentation/ABI/testing/sysfs-bus-
  F:    Documentation/ABI/testing/configfs-acpi
  F:    drivers/pci/*acpi*
  F:    drivers/pci/*/*acpi*
 -F:    drivers/pci/*/*/*acpi*
  F:    tools/power/acpi/
  
  ACPI APEI
@@@ -839,7 -840,7 +839,7 @@@ ANALOG DEVICES INC ADGS1408 DRIVE
  M:    Mircea Caprioru <[email protected]>
  S:    Supported
  F:    drivers/mux/adgs1408.c
- F:    Documentation/devicetree/bindings/mux/adgs1408.txt
+ F:    Documentation/devicetree/bindings/mux/adi,adgs1408.txt
  
  ANALOG DEVICES INC ADP5061 DRIVER
  M:    Stefan Popa <[email protected]>
@@@ -1250,7 -1251,7 +1250,7 @@@ N:      meso
  
  ARM/Annapurna Labs ALPINE ARCHITECTURE
  M:    Tsahee Zidenberg <[email protected]>
 -M:    Antoine Tenart <antoine.tenart@free-electrons.com>
 +M:    Antoine Tenart <antoine.tenart@bootlin.com>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    arch/arm/mach-alpine/
@@@ -2195,7 -2196,6 +2195,7 @@@ F:      drivers/clk/uniphier
  F:    drivers/gpio/gpio-uniphier.c
  F:    drivers/i2c/busses/i2c-uniphier*
  F:    drivers/irqchip/irq-uniphier-aidet.c
 +F:    drivers/mmc/host/uniphier-sd.c
  F:    drivers/pinctrl/uniphier/
  F:    drivers/reset/reset-uniphier.c
  F:    drivers/tty/serial/8250/8250_uniphier.c
@@@ -2311,7 -2311,6 +2311,7 @@@ F:      drivers/clocksource/cadence_ttc_time
  F:    drivers/i2c/busses/i2c-cadence.c
  F:    drivers/mmc/host/sdhci-of-arasan.c
  F:    drivers/edac/synopsys_edac.c
 +F:    drivers/i2c/busses/i2c-xiic.c
  
  ARM64 PORT (AARCH64 ARCHITECTURE)
  M:    Catalin Marinas <[email protected]>
@@@ -2956,6 -2955,7 +2956,6 @@@ F:      include/linux/bcm963xx_tag.
  
  BROADCOM BNX2 GIGABIT ETHERNET DRIVER
  M:    Rasesh Mody <[email protected]>
 -M:    Harish Patil <[email protected]>
  M:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -2976,7 -2976,6 +2976,7 @@@ F:      drivers/scsi/bnx2i
  
  BROADCOM BNX2X 10 GIGABIT ETHERNET DRIVER
  M:    Ariel Elior <[email protected]>
 +M:    Sudarsana Kalluru <[email protected]>
  M:    [email protected]
  L:    [email protected]
  S:    Supported
@@@ -3007,14 -3006,6 +3007,14 @@@ S:    Supporte
  F:    drivers/gpio/gpio-brcmstb.c
  F:    Documentation/devicetree/bindings/gpio/brcm,brcmstb-gpio.txt
  
 +BROADCOM BRCMSTB I2C DRIVER
 +M:    Kamal Dasu <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/i2c/busses/i2c-brcmstb.c
 +F:    Documentation/devicetree/bindings/i2c/i2c-brcmstb.txt
 +
  BROADCOM BRCMSTB USB2 and USB3 PHY DRIVER
  M:    Al Cooper <[email protected]>
  L:    [email protected]
@@@ -3122,15 -3113,6 +3122,15 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/memory-controllers/brcm,dpfe-cpu.txt
  F:    drivers/memory/brcmstb_dpfe.c
  
 +BROADCOM SPI DRIVER
 +M:    Kamal Dasu <[email protected]>
 +M:    [email protected]
 +S:    Maintained
 +F:    Documentation/devicetree/bindings/spi/brcm,spi-bcm-qspi.txt
 +F:    drivers/spi/spi-bcm-qspi.*
 +F:    drivers/spi/spi-brcmstb-qspi.c
 +F:    drivers/spi/spi-iproc-qspi.c
 +
  BROADCOM SYSTEMPORT ETHERNET DRIVER
  M:    Florian Fainelli <[email protected]>
  L:    [email protected]
@@@ -3691,12 -3673,6 +3691,12 @@@ S:    Maintaine
  F:    Documentation/devicetree/bindings/media/coda.txt
  F:    drivers/media/platform/coda/
  
 +CODE OF CONDUCT
 +M:    Greg Kroah-Hartman <[email protected]>
 +S:    Supported
 +F:    Documentation/process/code-of-conduct.rst
 +F:    Documentation/process/code-of-conduct-interpretation.rst
 +
  COMMON CLK FRAMEWORK
  M:    Michael Turquette <[email protected]>
  M:    Stephen Boyd <[email protected]>
@@@ -4194,11 -4170,6 +4194,11 @@@ S:    Maintaine
  F:    drivers/platform/x86/dell-smbios-wmi.c
  F:    tools/wmi/dell-smbios-example.c
  
 +DEFZA FDDI NETWORK DRIVER
 +M:    "Maciej W. Rozycki" <[email protected]>
 +S:    Maintained
 +F:    drivers/net/fddi/defza.*
 +
  DELL LAPTOP DRIVER
  M:    Matthew Garrett <[email protected]>
  M:    Pali Rohár <[email protected]>
@@@ -4514,11 -4485,12 +4514,12 @@@ S:   Maintaine
  F:    Documentation/
  F:    scripts/kernel-doc
  X:    Documentation/ABI/
+ X:    Documentation/acpi/
  X:    Documentation/devicetree/
- X:    Documentation/acpi
- X:    Documentation/power
- X:    Documentation/spi
- X:    Documentation/media
+ X:    Documentation/i2c/
+ X:    Documentation/media/
+ X:    Documentation/power/
+ X:    Documentation/spi/
  T:    git git://git.lwn.net/linux.git docs-next
  
  DOCUMENTATION/ITALIAN
@@@ -4556,13 -4528,9 +4557,13 @@@ F:    drivers/soc/fsl/dpi
  
  DPAA2 ETHERNET DRIVER
  M:    Ioana Radulescu <[email protected]>
 -L:    linux-kernel@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/fsl-dpaa2/ethernet
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-eth*
 +F:    drivers/net/ethernet/freescale/dpaa2/dpni*
 +F:    drivers/net/ethernet/freescale/dpaa2/dpkg.h
 +F:    drivers/net/ethernet/freescale/dpaa2/Makefile
 +F:    drivers/net/ethernet/freescale/dpaa2/Kconfig
  
  DPAA2 ETHERNET SWITCH DRIVER
  M:    Ioana Radulescu <[email protected]>
@@@ -4573,10 -4541,9 +4574,10 @@@ F:    drivers/staging/fsl-dpaa2/eths
  
  DPAA2 PTP CLOCK DRIVER
  M:    Yangbo Lu <[email protected]>
 -L:    linux-kernel@vger.kernel.org
 +L:    netdev@vger.kernel.org
  S:    Maintained
 -F:    drivers/staging/fsl-dpaa2/rtc
 +F:    drivers/net/ethernet/freescale/dpaa2/dpaa2-ptp*
 +F:    drivers/net/ethernet/freescale/dpaa2/dprtc*
  
  DPT_I2O SCSI RAID DRIVER
  M:    Adaptec OEM Raid Solutions <[email protected]>
@@@ -5503,8 -5470,7 +5504,8 @@@ S:      Odd Fixe
  F:    drivers/net/ethernet/agere/
  
  ETHERNET BRIDGE
 -M:    Stephen Hemminger <[email protected]>
 +M:    Roopa Prabhu <[email protected]>
 +M:    Nikolay Aleksandrov <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
  L:    [email protected]
  W:    http://www.linuxfoundation.org/en/Net:Bridge
@@@ -5548,7 -5514,7 +5549,7 @@@ W:      http://ext4.wiki.kernel.or
  Q:    http://patchwork.ozlabs.org/project/linux-ext4/list/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4.git
  S:    Maintained
- F:    Documentation/filesystems/ext4.txt
+ F:    Documentation/filesystems/ext4/ext4.rst
  F:    fs/ext4/
  
  Extended Verification Module (EVM)
@@@ -5659,8 -5625,6 +5660,8 @@@ F:      lib/fault-inject.
  
  FBTFT Framebuffer drivers
  M:    Thomas Petazzoni <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
  S:    Maintained
  F:    drivers/staging/fbtft/
  
@@@ -6096,7 -6060,7 +6097,7 @@@ F:      Documentation/gcc-plugins.tx
  
  GASKET DRIVER FRAMEWORK
  M:    Rob Springer <[email protected]>
 -M:    John Joseph <jnjoseph@google.com>
 +M:    Todd Poynor <toddpoynor@google.com>
  M:    Ben Chan <[email protected]>
  S:    Maintained
  F:    drivers/staging/gasket/
@@@ -6488,7 -6452,6 +6489,7 @@@ F:      Documentation/devicetree/bindings/hw
  F:    Documentation/hwmon/
  F:    drivers/hwmon/
  F:    include/linux/hwmon*.h
 +F:    include/trace/events/hwmon*.h
  
  HARDWARE RANDOM NUMBER GENERATOR CORE
  M:    Matt Mackall <[email protected]>
@@@ -6797,12 -6760,6 +6798,12 @@@ S:    Maintaine
  F:    mm/memory-failure.c
  F:    mm/hwpoison-inject.c
  
 +HYGON PROCESSOR SUPPORT
 +M:    Pu Wen <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/x86/kernel/cpu/hygon.c
 +
  Hyper-V CORE AND DRIVERS
  M:    "K. Y. Srinivasan" <[email protected]>
  M:    Haiyang Zhang <[email protected]>
@@@ -7059,20 -7016,6 +7060,20 @@@ F:    drivers/crypto/vmx/aes
  F:    drivers/crypto/vmx/ghash*
  F:    drivers/crypto/vmx/ppc-xlate.pl
  
 +IBM Power PCI Hotplug Driver for RPA-compliant PPC64 platform
 +M:    Tyrel Datwyler <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/pci/hotplug/rpaphp*
 +
 +IBM Power IO DLPAR Driver for RPA-compliant PPC64 platform
 +M:    Tyrel Datwyler <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/pci/hotplug/rpadlpar*
 +
  IBM ServeRAID RAID DRIVER
  S:    Orphan
  F:    drivers/scsi/ips.*
@@@ -7382,16 -7325,15 +7383,16 @@@ T:   git git://git.kernel.org/pub/scm/lin
  S:    Supported
  F:    Documentation/networking/e100.rst
  F:    Documentation/networking/e1000.rst
 -F:    Documentation/networking/e1000e.txt
 -F:    Documentation/networking/igb.txt
 -F:    Documentation/networking/igbvf.txt
 -F:    Documentation/networking/ixgb.txt
 -F:    Documentation/networking/ixgbe.txt
 -F:    Documentation/networking/ixgbevf.txt
 -F:    Documentation/networking/i40e.txt
 -F:    Documentation/networking/i40evf.txt
 -F:    Documentation/networking/ice.txt
 +F:    Documentation/networking/e1000e.rst
 +F:    Documentation/networking/fm10k.rst
 +F:    Documentation/networking/igb.rst
 +F:    Documentation/networking/igbvf.rst
 +F:    Documentation/networking/ixgb.rst
 +F:    Documentation/networking/ixgbe.rst
 +F:    Documentation/networking/ixgbevf.rst
 +F:    Documentation/networking/i40e.rst
 +F:    Documentation/networking/iavf.rst
 +F:    Documentation/networking/ice.rst
  F:    drivers/net/ethernet/intel/
  F:    drivers/net/ethernet/intel/*/
  F:    include/linux/avf/virtchnl.h
@@@ -7413,12 -7355,6 +7414,12 @@@ T:    git https://github.com/intel/gvt-lin
  S:    Supported
  F:    drivers/gpu/drm/i915/gvt/
  
 +INTEL PMIC GPIO DRIVER
 +R:    Andy Shevchenko <[email protected]>
 +S:    Maintained
 +F:    drivers/gpio/gpio-*cove.c
 +F:    drivers/gpio/gpio-msic.c
 +
  INTEL HID EVENT DRIVER
  M:    Alex Hung <[email protected]>
  L:    [email protected]
@@@ -7683,7 -7619,6 +7684,7 @@@ M:      Corey Minyard <[email protected]
  L:    [email protected] (moderated for non-subscribers)
  W:    http://openipmi.sourceforge.net/
  S:    Supported
 +F:    Documentation/devicetree/bindings/ipmi/
  F:    Documentation/IPMI.txt
  F:    drivers/char/ipmi/
  F:    include/linux/ipmi*
@@@ -8232,25 -8167,6 +8233,25 @@@ S:    Maintaine
  F:    net/l3mdev
  F:    include/net/l3mdev.h
  
 +L7 BPF FRAMEWORK
 +M:    John Fastabend <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    include/linux/skmsg.h
 +F:    net/core/skmsg.c
 +F:    net/core/sock_map.c
 +F:    net/ipv4/tcp_bpf.c
 +
 +LANTIQ / INTEL Ethernet drivers
 +M:    Hauke Mehrtens <[email protected]>
 +L:    [email protected]
 +S:    Maintained
 +F:    net/dsa/tag_gswip.c
 +F:    drivers/net/ethernet/lantiq_xrx200.c
 +F:    drivers/net/dsa/lantiq_pce.h
 +F:    drivers/net/dsa/lantiq_gswip.c
 +
  LANTIQ MIPS ARCHITECTURE
  M:    John Crispin <[email protected]>
  L:    [email protected]
@@@ -8340,9 -8256,9 +8341,9 @@@ F:      drivers/ata/pata_arasan_cf.
  
  LIBATA PATA DRIVERS
  M:    Bartlomiej Zolnierkiewicz <[email protected]>
 -M:    Jens Axboe <kernel.dk>
 +M:    Jens Axboe <axboe@kernel.dk>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  S:    Maintained
  F:    drivers/ata/pata_*.c
  F:    drivers/ata/ata_generic.c
@@@ -8360,7 -8276,7 +8361,7 @@@ LIBATA SATA AHCI PLATFORM devices suppo
  M:    Hans de Goede <[email protected]>
  M:    Jens Axboe <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  S:    Maintained
  F:    drivers/ata/ahci_platform.c
  F:    drivers/ata/libahci_platform.c
@@@ -8376,7 -8292,7 +8377,7 @@@ F:      drivers/ata/sata_promise.
  LIBATA SUBSYSTEM (Serial and Parallel ATA drivers)
  M:    Jens Axboe <[email protected]>
  L:    [email protected]
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/libata.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux-block.git
  S:    Maintained
  F:    drivers/ata/
  F:    include/linux/ata.h
@@@ -8384,7 -8300,7 +8385,7 @@@ F:      include/linux/libata.
  F:    Documentation/devicetree/bindings/ata/
  
  LIBLOCKDEP
 -M:    Sasha Levin <alexander.levin@verizon.com>
 +M:    Sasha Levin <alexander.levin@microsoft.com>
  S:    Maintained
  F:    tools/lib/lockdep/
  
@@@ -8666,6 -8582,7 +8667,6 @@@ F:      include/linux/spinlock*.
  F:    arch/*/include/asm/spinlock*.h
  F:    include/linux/rwlock*.h
  F:    include/linux/mutex*.h
 -F:    arch/*/include/asm/mutex*.h
  F:    include/linux/rwsem*.h
  F:    arch/*/include/asm/rwsem.h
  F:    include/linux/seqlock.h
@@@ -8811,7 -8728,7 +8812,7 @@@ M:      Vivien Didelot <vivien.didelot@savoi
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/dsa/mv88e6xxx/
 -F:    linux/platform_data/mv88e6xxx.h
 +F:    include/linux/platform_data/mv88e6xxx.h
  F:    Documentation/devicetree/bindings/net/dsa/marvell.txt
  
  MARVELL ARMADA DRM SUPPORT
@@@ -8901,15 -8818,6 +8902,15 @@@ S:    Supporte
  F:    drivers/mmc/host/sdhci-xenon*
  F:    Documentation/devicetree/bindings/mmc/marvell,xenon-sdhci.txt
  
 +MARVELL OCTEONTX2 RVU ADMIN FUNCTION DRIVER
 +M:    Sunil Goutham <[email protected]>
 +M:    Linu Cherian <[email protected]>
 +M:    Geetha sowjanya <[email protected]>
 +M:    Jerin Jacob <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    drivers/net/ethernet/marvell/octeontx2/af/
 +
  MATROX FRAMEBUFFER DRIVER
  L:    [email protected]
  S:    Orphan
@@@ -8923,6 -8831,13 +8924,6 @@@ S:     Maintaine
  F:    Documentation/hwmon/max16065
  F:    drivers/hwmon/max16065.c
  
 -MAX20751 HARDWARE MONITOR DRIVER
 -M:    Guenter Roeck <[email protected]>
 -L:    [email protected]
 -S:    Maintained
 -F:    Documentation/hwmon/max20751
 -F:    drivers/hwmon/max20751.c
 -
  MAX2175 SDR TUNER DRIVER
  M:    Ramesh Shanmugasundaram <[email protected]>
  L:    [email protected]
@@@ -9727,8 -9642,7 +9728,8 @@@ MIPS/LOONGSON2 ARCHITECTUR
  M:    Jiaxun Yang <[email protected]>
  L:    [email protected]
  S:    Maintained
 -F:    arch/mips/loongson64/*{2e/2f}*
 +F:    arch/mips/loongson64/fuloong-2e/
 +F:    arch/mips/loongson64/lemote-2f/
  F:    arch/mips/include/asm/mach-loongson64/
  F:    drivers/*/*loongson2*
  F:    drivers/*/*/*loongson2*
@@@ -9768,19 -9682,6 +9769,19 @@@ S:    Maintaine
  F:    arch/arm/boot/dts/mmp*
  F:    arch/arm/mach-mmp/
  
 +MMU GATHER AND TLB INVALIDATION
 +M:    Will Deacon <[email protected]>
 +M:    "Aneesh Kumar K.V" <[email protected]>
 +M:    Andrew Morton <[email protected]>
 +M:    Nick Piggin <[email protected]>
 +M:    Peter Zijlstra <[email protected]>
 +L:    [email protected]
 +L:    [email protected]
 +S:    Maintained
 +F:    arch/*/include/asm/tlb.h
 +F:    include/asm-generic/tlb.h
 +F:    mm/mmu_gather.c
 +
  MN88472 MEDIA DRIVER
  M:    Antti Palosaari <[email protected]>
  L:    [email protected]
@@@ -9799,6 -9700,13 +9800,6 @@@ Q:     http://patchwork.linuxtv.org/project
  S:    Maintained
  F:    drivers/media/dvb-frontends/mn88473*
  
 -PCI DRIVER FOR MOBIVEIL PCIE IP
 -M:    Subrahmanya Lingappa <[email protected]>
 -L:    [email protected]
 -S:    Supported
 -F:    Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
 -F:    drivers/pci/controller/pcie-mobiveil.c
 -
  MODULE SUPPORT
  M:    Jessica Yu <[email protected]>
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux.git modules-next
@@@ -9948,7 -9856,7 +9949,7 @@@ M:      Peter Rosin <[email protected]
  S:    Maintained
  F:    Documentation/ABI/testing/sysfs-class-mux*
  F:    Documentation/devicetree/bindings/mux/
 -F:    include/linux/dt-bindings/mux/
 +F:    include/dt-bindings/mux/
  F:    include/linux/mux/
  F:    drivers/mux/
  
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec.git
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next.git
  S:    Maintained
 -F:    net/core/flow.c
  F:    net/xfrm/
  F:    net/key/
  F:    net/ipv4/xfrm*
@@@ -10267,8 -10176,6 +10268,8 @@@ NETWORKING [TLS
  M:    Boris Pismenny <[email protected]>
  M:    Aviad Yehezkel <[email protected]>
  M:    Dave Watson <[email protected]>
 +M:    John Fastabend <[email protected]>
 +M:    Daniel Borkmann <[email protected]>
  L:    [email protected]
  S:    Maintained
  F:    net/tls/*
@@@ -11026,7 -10933,7 +11027,7 @@@ M:   Willy Tarreau <[email protected]
  M:    Ksenija Stanojevic <[email protected]>
  S:    Odd Fixes
  F:    Documentation/auxdisplay/lcd-panel-cgram.txt
 -F:    drivers/misc/panel.c
 +F:    drivers/auxdisplay/panel.c
  
  PARALLEL PORT SUBSYSTEM
  M:    Sudip Mukherjee <[email protected]>
@@@ -11214,13 -11121,6 +11215,13 @@@ F: include/uapi/linux/switchtec_ioctl.
  F:    include/linux/switchtec.h
  F:    drivers/ntb/hw/mscc/
  
 +PCI DRIVER FOR MOBIVEIL PCIE IP
 +M:    Subrahmanya Lingappa <[email protected]>
 +L:    [email protected]
 +S:    Supported
 +F:    Documentation/devicetree/bindings/pci/mobiveil-pcie.txt
 +F:    drivers/pci/controller/pcie-mobiveil.c
 +
  PCI DRIVER FOR MVEBU (Marvell Armada 370 and Armada XP SOC support)
  M:    Thomas Petazzoni <[email protected]>
  M:    Jason Cooper <[email protected]>
@@@ -11254,7 -11154,7 +11255,7 @@@ F:   drivers/pci/controller/dwc/pci-exyno
  
  PCI DRIVER FOR SYNOPSYS DESIGNWARE
  M:    Jingoo Han <[email protected]>
 -M:    Joao Pinto <Joao.Pinto@synopsys.com>
 +M:    Gustavo Pimentel <gustavo.pimentel@synopsys.com>
  L:    [email protected]
  S:    Maintained
  F:    Documentation/devicetree/bindings/pci/designware-pcie.txt
@@@ -11287,14 -11187,8 +11288,14 @@@ F: tools/pci
  
  PCI ENHANCED ERROR HANDLING (EEH) FOR POWERPC
  M:    Russell Currey <[email protected]>
 +M:    Sam Bobroff <[email protected]>
 +M:    Oliver O'Halloran <[email protected]>
  L:    [email protected]
  S:    Supported
 +F:    Documentation/PCI/pci-error-recovery.txt
 +F:    drivers/pci/pcie/aer.c
 +F:    drivers/pci/pcie/dpc.c
 +F:    drivers/pci/pcie/err.c
  F:    Documentation/powerpc/eeh-pci-error-recovery.txt
  F:    arch/powerpc/kernel/eeh*.c
  F:    arch/powerpc/platforms/*/eeh*.c
@@@ -11452,10 -11346,10 +11453,10 @@@ S:        Maintaine
  F:    drivers/platform/x86/peaq-wmi.c
  
  PER-CPU MEMORY ALLOCATOR
 +M:    Dennis Zhou <[email protected]>
  M:    Tejun Heo <[email protected]>
  M:    Christoph Lameter <[email protected]>
 -M:    Dennis Zhou <[email protected]>
 -T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tj/percpu.git
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/dennis/percpu.git
  S:    Maintained
  F:    include/linux/percpu*.h
  F:    mm/percpu*.c
@@@ -11573,12 -11467,15 +11574,12 @@@ S:        Maintaine
  F:    drivers/pinctrl/intel/
  
  PIN CONTROLLER - MEDIATEK
 -M:    Sean Wang <sean.wang@mediatek.com>
 +M:    Sean Wang <sean.wang@kernel.org>
  L:    [email protected] (moderated for non-subscribers)
  S:    Maintained
  F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt65xx.txt
  F:    Documentation/devicetree/bindings/pinctrl/pinctrl-mt7622.txt
 -F:    drivers/pinctrl/mediatek/mtk-eint.*
 -F:    drivers/pinctrl/mediatek/pinctrl-mtk-common.*
 -F:    drivers/pinctrl/mediatek/pinctrl-mt2701.c
 -F:    drivers/pinctrl/mediatek/pinctrl-mt7622.c
 +F:    drivers/pinctrl/mediatek/
  
  PIN CONTROLLER - QUALCOMM
  M:    Bjorn Andersson <[email protected]>
@@@ -11656,26 -11553,7 +11657,26 @@@ W: http://hwmon.wiki.kernel.org
  W:    http://www.roeck-us.net/linux/drivers/
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/groeck/linux-staging.git
  S:    Maintained
 +F:    Documentation/devicetree/bindings/hwmon/ibm,cffps1.txt
 +F:    Documentation/devicetree/bindings/hwmon/max31785.txt
 +F:    Documentation/devicetree/bindings/hwmon/ltc2978.txt
 +F:    Documentation/hwmon/adm1275
 +F:    Documentation/hwmon/ibm-cffps
 +F:    Documentation/hwmon/ir35221
 +F:    Documentation/hwmon/lm25066
 +F:    Documentation/hwmon/ltc2978
 +F:    Documentation/hwmon/ltc3815
 +F:    Documentation/hwmon/max16064
 +F:    Documentation/hwmon/max20751
 +F:    Documentation/hwmon/max31785
 +F:    Documentation/hwmon/max34440
 +F:    Documentation/hwmon/max8688
  F:    Documentation/hwmon/pmbus
 +F:    Documentation/hwmon/pmbus-core
 +F:    Documentation/hwmon/tps40422
 +F:    Documentation/hwmon/ucd9000
 +F:    Documentation/hwmon/ucd9200
 +F:    Documentation/hwmon/zl6100
  F:    drivers/hwmon/pmbus/
  F:    include/linux/pmbus.h
  
@@@ -12079,7 -11957,7 +12080,7 @@@ F:   Documentation/scsi/LICENSE.qla4xx
  F:    drivers/scsi/qla4xxx/
  
  QLOGIC QLCNIC (1/10)Gb ETHERNET DRIVER
 -M:    Harish Patil <harish.patil@cavium.com>
 +M:    Shahed Shaikh <Shahed.Shaikh@cavium.com>
  M:    Manish Chopra <[email protected]>
  M:    [email protected]
  L:    [email protected]
@@@ -12087,6 -11965,7 +12088,6 @@@ S:   Supporte
  F:    drivers/net/ethernet/qlogic/qlcnic/
  
  QLOGIC QLGE 10Gb ETHERNET DRIVER
 -M:    Harish Patil <[email protected]>
  M:    Manish Chopra <[email protected]>
  M:    [email protected]
  L:    [email protected]
@@@ -12365,7 -12244,6 +12366,7 @@@ F:   Documentation/networking/rds.tx
  
  RDT - RESOURCE ALLOCATION
  M:    Fenghua Yu <[email protected]>
 +M:    Reinette Chatre <[email protected]>
  L:    [email protected]
  S:    Supported
  F:    arch/x86/kernel/cpu/intel_rdt*
@@@ -13162,7 -13040,7 +13163,7 @@@ SELINUX SECURITY MODUL
  M:    Paul Moore <[email protected]>
  M:    Stephen Smalley <[email protected]>
  M:    Eric Paris <[email protected]>
 -L:    selinux@tycho.nsa.gov (moderated for non-subscribers)
 +L:    selinux@vger.kernel.org
  W:    https://selinuxproject.org
  W:    https://github.com/SELinuxProject
  T:    git git://git.kernel.org/pub/scm/linux/kernel/git/pcmoore/selinux.git
@@@ -13406,7 -13284,6 +13407,7 @@@ M:   Uwe Kleine-König <u.kleine-koenig@p
  R:    Pengutronix Kernel Team <[email protected]>
  S:    Supported
  F:    drivers/siox/*
 +F:    drivers/gpio/gpio-siox.c
  F:    include/trace/events/siox.h
  
  SIS 190 ETHERNET DRIVER
@@@ -13556,8 -13433,9 +13557,8 @@@ F:   drivers/i2c/busses/i2c-synquacer.
  F:    Documentation/devicetree/bindings/i2c/i2c-synquacer.txt
  
  SOCIONEXT UNIPHIER SOUND DRIVER
 -M:    Katsuhiro Suzuki <[email protected]>
  L:    [email protected] (moderated for non-subscribers)
 -S:    Maintained
 +S:    Orphan
  F:    sound/soc/uniphier/
  
  SOEKRIS NET48XX LED SUPPORT
  S:    Maintained
  F:    Documentation/devicetree/bindings/arm/firmware/sdei.txt
  F:    drivers/firmware/arm_sdei.c
 -F:    include/linux/sdei.h
 -F:    include/uapi/linux/sdei.h
 +F:    include/linux/arm_sdei.h
 +F:    include/uapi/linux/arm_sdei.h
  
  SOFTWARE RAID (Multiple Disks) SUPPORT
  M:    Shaohua Li <[email protected]>
@@@ -14134,12 -14012,6 +14135,12 @@@ S: Supporte
  F:    drivers/reset/reset-axs10x.c
  F:    Documentation/devicetree/bindings/reset/snps,axs10x-reset.txt
  
 +SYNOPSYS CREG GPIO DRIVER
 +M:    Eugeniy Paltsev <[email protected]>
 +S:    Maintained
 +F:    drivers/gpio/gpio-creg-snps.c
 +F:    Documentation/devicetree/bindings/gpio/snps,creg-gpio.txt
 +
  SYNOPSYS DESIGNWARE 8250 UART DRIVER
  R:    Andy Shevchenko <[email protected]>
  S:    Maintained
@@@ -15501,7 -15373,7 +15502,7 @@@ S:   Maintaine
  UVESAFB DRIVER
  M:    Michal Januszewski <[email protected]>
  L:    [email protected]
 -W:    http://dev.gentoo.org/~spock/projects/uvesafb/
 +W:    https://github.com/mjanusz/v86d
  S:    Maintained
  F:    Documentation/fb/uvesafb.txt
  F:    drivers/video/fbdev/uvesafb.*
@@@ -15814,7 -15686,7 +15815,7 @@@ F:   include/linux/regulator
  
  VRF
  M:    David Ahern <[email protected]>
 -M:    Shrijeet Mukherjee <shm@cumulusnetworks.com>
 +M:    Shrijeet Mukherjee <shrijeet@gmail.com>
  L:    [email protected]
  S:    Maintained
  F:    drivers/net/vrf.c
@@@ -16025,7 -15897,6 +16026,7 @@@ F:   net/x25
  X86 ARCHITECTURE (32-BIT AND 64-BIT)
  M:    Thomas Gleixner <[email protected]>
  M:    Ingo Molnar <[email protected]>
 +M:    Borislav Petkov <[email protected]>
  R:    "H. Peter Anvin" <[email protected]>
  M:    [email protected]
  L:    [email protected]
@@@ -16054,15 -15925,6 +16055,15 @@@ M: Borislav Petkov <[email protected]
  S:    Maintained
  F:    arch/x86/kernel/cpu/microcode/*
  
 +X86 MM
 +M:    Dave Hansen <[email protected]>
 +M:    Andy Lutomirski <[email protected]>
 +M:    Peter Zijlstra <[email protected]>
 +L:    [email protected]
 +T:    git git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip.git x86/mm
 +S:    Maintained
 +F:    arch/x86/mm/
 +
  X86 PLATFORM DRIVERS
  M:    Darren Hart <[email protected]>
  M:    Andy Shevchenko <[email protected]>
diff --combined lib/vsprintf.c
index 812e59e13fe61daaafff5a97aaea583b09f44c92,c8005105e2d6cc043633ff9071c92cdbb0f040b1..376de10929b3185bbb98d87c6d371c2282dae17c
@@@ -1833,17 -1833,15 +1833,15 @@@ static char *ptr_to_id(char *buf, char 
   *       p page flags (see struct page) given as pointer to unsigned long
   *       g gfp flags (GFP_* and __GFP_*) given as pointer to gfp_t
   *       v vma flags (VM_*) given as pointer to unsigned long
-  * - 'O' For a kobject based struct. Must be one of the following:
-  *       - 'OF[fnpPcCF]'  For a device tree object
-  *                        Without any optional arguments prints the full_name
-  *                        f device node full_name
-  *                        n device node name
-  *                        p device node phandle
-  *                        P device node path spec (name + @unit)
-  *                        F device node flags
-  *                        c major compatible string
-  *                        C full compatible string
-  *
+  * - 'OF[fnpPcCF]'  For a device tree object
+  *                  Without any optional arguments prints the full_name
+  *                  f device node full_name
+  *                  n device node name
+  *                  p device node phandle
+  *                  P device node path spec (name + @unit)
+  *                  F device node flags
+  *                  c major compatible string
+  *                  C full compatible string
   * - 'x' For printing the address. Equivalent to "%lx".
   *
   * ** When making changes please also update:
@@@ -2794,7 -2792,7 +2792,7 @@@ int bstr_printf(char *buf, size_t size
                                                copy = end - str;
                                        memcpy(str, args, copy);
                                        str += len;
 -                                      args += len;
 +                                      args += len + 1;
                                }
                        }
                        if (process)
This page took 0.213062 seconds and 4 git commands to generate.