1. 26 Mar, 2019 18 commits
    • Paul E. McKenney's avatar
      rcu: Correct READ_ONCE()/WRITE_ONCE() for ->rcu_read_unlock_special · add0d37b
      Paul E. McKenney authored
      The task_struct structure's ->rcu_read_unlock_special field is only ever
      read or written by the owning task, but it is accessed both at process
      and interrupt levels.  It may therefore be accessed using plain reads
      and writes while interrupts are disabled, but must be accessed using
      READ_ONCE() and WRITE_ONCE() or better otherwise.  This commit makes a
      few adjustments to align with this discipline.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      add0d37b
    • Paul E. McKenney's avatar
      rcu: Fix typo in tree_exp.h comment · f1a98045
      Paul E. McKenney authored
      This commit changes a rcu_exp_handler() comment from rcu_preempt_defer_qs()
      to rcu_preempt_deferred_qs() in order to better match reality.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      f1a98045
    • Paul E. McKenney's avatar
      rcu: Eliminate redundant NULL-pointer check · a2badefa
      Paul E. McKenney authored
      Because rcu_wake_cond() checks for a null task_struct pointer, there is
      no need for its callers to do so.  This commit eliminates the redundant
      check.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      a2badefa
    • Zhouyi Zhou's avatar
      rcu: Fix force_qs_rnp() header comment · 5d8a752e
      Zhouyi Zhou authored
      Previously, threads blocked on offlining CPUS were migrated to the
      root rcu_node structure, thus requiring RCU priority boosting on this
      structure.  However, since commit d19fb8d1 ("rcu: Don't migrate
      blocked tasks even if all corresponding CPUs offline"), RCU does not
      migrate blocked tasks.  Consequently, RCU no longer does RCU priority
      boosting on the root rcu_node structure as of commit 1be0085b ("rcu:
      Don't initiate RCU priority boosting on root rcu_node").
      
      This commit therefore brings comments for the force_qs_rnp() function's
      header comment in line with this new no-root-boosting reality.
      Signed-off-by: default avatarZhouyi Zhou <zhouzhouyi@gmail.com>
      [ paulmck: Also remove obsolete comment on suppressing new grace periods. ]
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      5d8a752e
    • Paul E. McKenney's avatar
      rcu: Update jiffies_to_sched_qs and adjust_jiffies_till_sched_qs() comments · 85f2b60c
      Paul E. McKenney authored
      This commit better documents the jiffies_to_sched_qs default-value
      strategy used by adjust_jiffies_till_sched_qs()
      Reported-by: default avatarJoel Fernandes <joel@joelfernandes.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      85f2b60c
    • Neeraj Upadhyay's avatar
      rcu: Do a single rhp->func read in rcu_head_after_call_rcu() · b699cce1
      Neeraj Upadhyay authored
      The rcu_head_after_call_rcu() function reads the rhp->func pointer twice,
      which can result in a false-positive WARN_ON_ONCE() if the callback
      were passed to call_rcu() between the two reads.  Although racing
      rcu_head_after_call_rcu() with call_rcu() is to be a dubious use case
      (the return value is not reliable in that case), intermittent and
      irreproducible warnings are also quite dubious.  This commit therefore
      uses a single READ_ONCE() to pick up the value of rhp->func once, then
      tests that value twice, thus guaranteeing consistent processing within
      rcu_head_after_call_rcu()().
      
      Neverthless, racing rcu_head_after_call_rcu() with call_rcu() is still
      a dubious use case.
      Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      [ paulmck: Add blank line after declaration per checkpatch.pl. ]
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      b699cce1
    • Neeraj Upadhyay's avatar
      rcu: Default jiffies_to_sched_qs to jiffies_till_sched_qs · 6973032a
      Neeraj Upadhyay authored
      The current code only calls adjust_jiffies_till_sched_qs() if
      jiffies_till_sched_qs is left at its default value, so when the
      jiffies_till_sched_qs kernel-boot parameter actually is specified,
      jiffies_to_sched_qs will be left with the value zero, which
      will result in useless slowdowns of cond_resched().  This commit
      therefore changes rcu_init_geometry() to unconditionally invoke
      adjust_jiffies_till_sched_qs(), which ensures that jiffies_to_sched_qs
      will be initialized in all cases, thus maintaining good cond_resched()
      performance.
      Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      6973032a
    • Neeraj Upadhyay's avatar
      rcu: Fix self-wakeups for grace-period kthread · 0f58d2ac
      Neeraj Upadhyay authored
      The current rcu_gp_kthread_wake() function uses in_interrupt()
      and thus does a self-wakeup from all interrupt contexts, including
      the pointless case where the GP kthread happens to be running with
      bottom halves disabled, along with the impossible case where the GP
      kthread is running within an NMI handler (you are not supposed to invoke
      rcu_gp_kthread_wake() from within an NMI handler.  This commit therefore
      replaces the in_interrupt() with in_irq(), so that the self-wakeups
      happen only from handlers for hardware interrupts and softirqs.
      This also makes the code match the comment.
      Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Acked-by: default avatarSteven Rostedt (VMware) <rostedt@goodmis.org>
      0f58d2ac
    • Paul E. McKenney's avatar
      rcu: Report error for bad rcu_nocbs= parameter values · 497e4260
      Paul E. McKenney authored
      This commit prints a console message when cpulist_parse() reports a
      bad list of CPUs, and sets all CPUs' bits in that case.  The reason for
      setting all CPUs' bits is that this is the safe(r) choice for real-time
      workloads, which would normally be the ones using the rcu_nocbs= kernel
      boot parameter.  Either way, later RCU console log messages list the
      actual set of CPUs whose RCU callbacks will be offloaded.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      497e4260
    • Paul E. McKenney's avatar
      rcu: Allow rcu_nocbs= to specify all CPUs · da8739f2
      Paul E. McKenney authored
      Currently, the rcu_nocbs= kernel boot parameter requires that a specific
      list of CPUs be specified, and has no way to say "all of them".
      As noted by user RavFX in a comment to Phoronix topic 1002538, this
      is an inconvenient side effect of the removal of the RCU_NOCB_CPU_ALL
      Kconfig option.  This commit therefore enables the rcu_nocbs= kernel boot
      parameter to be given the string "all", as in "rcu_nocbs=all" to specify
      that all CPUs on the system are to have their RCU callbacks offloaded.
      
      Another approach would be to make cpulist_parse() check for "all", but
      there are uses of cpulist_parse() that do other checking, which could
      conflict with an "all".  This commit therefore focuses on the specific
      use of cpulist_parse() in rcu_nocb_setup().
      
      Just a note to other people who would like changes to Linux-kernel RCU:
      If you send your requests to me directly, they might get fixed somewhat
      faster.  RavFX's comment was posted on January 22, 2018 and I first saw
      it on March 5, 2019.  And the only reason that I found it -at- -all- was
      that I was looking for projects using RCU, and my search engine showed
      me that Phoronix comment quite by accident.  Your choice, though!  ;-)
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      da8739f2
    • Akira Yokosawa's avatar
      rcu: Move common code out of if-else block · b2eb85b4
      Akira Yokosawa authored
      As the result of recent addition of "rdp->core_needs_qs = false;" in
      the "if" block, now both branches of the if-else have the same
      assignment.
      
      Factor it out and reduce line count.
      Signed-off-by: default avatarAkira Yokosawa <akiyks@gmail.com>
      Cc: Joel Fernandes <joel@joelfernandes.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Acked-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
      b2eb85b4
    • Paul E. McKenney's avatar
      9145b505
    • Paul E. McKenney's avatar
      MAINTAINERS: RCU now has its own email list · bdead419
      Paul E. McKenney authored
      This commit makes rcu@vger.kernel.org be the official list for RCU-related
      topics.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      bdead419
    • Liu Song's avatar
      rcu: Set rcutree.kthread_prio sysfs access to read-only · 3ffe3d1a
      Liu Song authored
      The rcutree.kthread_prio kernel-boot parameter is used to set the
      priority for boost (rcub), per-CPU (rcuc), and grace-period (rcu_preempt
      or rcu_sched) kthreads.  It is also used by rcutorture to check whether
      it is possible to meaningfully test RCU priority boosting.  However,
      all of these cases will either ignore or be confused by any post-boot
      changes to rcutree.kthread_prio.
      
      Note that the user really can change the priorities of all of these
      kthreads using chrt, given sufficient privileges.  Therefore, the
      read-write nature of sysfs access to rcutree.kthread_prio is thus at
      best an attractive nuisance.
      
      This commit therefore changes sysfs access to rcutree.kthread_prio to
      be read-only.
      Signed-off-by: default avatarLiu Song <liu.song11@zte.com.cn>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      3ffe3d1a
    • Paul E. McKenney's avatar
      rcu: Make exit_rcu() handle non-preempted RCU readers · 884157ce
      Paul E. McKenney authored
      The purpose of exit_rcu() is to handle cases where buggy code causes a
      task to exit within an RCU read-side critical section.  It currently
      does that in the case where said RCU read-side critical section was
      preempted at least once, but fails to handle cases where preemption did
      not occur.  This case needs to be handled because otherwise the final
      context switch away from the exiting task will incorrectly behave as if
      task exit were instead a preemption of an RCU read-side critical section,
      and will therefore queue the exiting task.  The exiting task will have
      exited, and thus won't ever execute rcu_read_unlock(), which means that
      it will remain queued forever, blocking all subsequent grace periods,
      and eventually resulting in OOM.
      
      Although this is arguably better than letting grace periods proceed
      and having a later rcu_read_unlock() access the now-freed task
      structure that once belonged to the exiting tasks, it would obviously
      be better to correctly handle this case.  This commit therefore sets
      ->rcu_read_lock_nesting to 1 in that case, so that the subsequence call
      to __rcu_read_unlock() causes the exiting task to exit its dangling RCU
      read-side critical section.
      
      Note that deferred quiescent states need not be considered.  The reason
      is that removing the task from the ->blkd_tasks[] list in the call to
      rcu_preempt_deferred_qs() handles the per-task component of any deferred
      quiescent state, and all other components of any deferred quiescent state
      are associated with the CPU, which isn't going anywhere until some later
      CPU-hotplug operation, which will report any remaining deferred quiescent
      states from within the rcu_report_dead() function.
      
      Note also that negative values of ->rcu_read_lock_nesting need not be
      considered.  First, these won't show up in exit_rcu() unless there is
      a serious bug in RCU, and second, setting ->rcu_read_lock_nesting sets
      the state so that the RCU read-side critical section will be exited
      normally.
      
      Again, this code has no effect unless there has been some prior bug
      that prevents a task from leaving an RCU read-side critical section
      before exiting.  Furthermore, there have been no reports of the bug
      fixed by this commit appearing in production.  This commit is therefore
      absolutely -not- recommended for backporting to -stable.
      Reported-by: default avatarABHISHEK DUBEY <dabhishek@iisc.ac.in>
      Reported-by: default avatarBHARATH Y MOURYA <bharathm@iisc.ac.in>
      Reported-by: default avatarAravinda Prasad <aravinda@iisc.ac.in>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      Tested-by: default avatarABHISHEK DUBEY <dabhishek@iisc.ac.in>
      884157ce
    • Cyrill Gorcunov's avatar
      rcu: rcu_qs -- Use raise_softirq_irqoff to not save irqs twice · 18d7e406
      Cyrill Gorcunov authored
      The rcu_qs is disabling IRQs by self so no need to do the same in raise_softirq
      but instead we can save some cycles using raise_softirq_irqoff directly.
      
      CC: Paul E. McKenney <paulmck@linux.ibm.com>
      Signed-off-by: default avatarCyrill Gorcunov <gorcunov@gmail.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      18d7e406
    • Joel Fernandes (Google)'s avatar
      rcu: Avoid unnecessary softirq when system is idle · 671a6351
      Joel Fernandes (Google) authored
      When there are no callbacks pending on an idle system, I noticed that
      RCU softirq is continuously firing. During this the cpu_no_qs is set to
      false, and core_needs_qs is set to true indefinitely. This causes
      rcu_process_callbacks to be repeatedly called, even though the node
      corresponding to the CPU has that CPU's mask bit cleared and the system
      is idle. I believe the race is when such mask clearing is done during
      idle CPU scan of the quiescent state forcing stage in the kthread
      instead of the softirq. Since the rnp mask is cleared, but the flags on
      the CPU's rdp are not cleared, the CPU thinks it still needs to report
      to core RCU.
      
      Cure this by clearing the core_needs_qs flag when the CPU detects that
      its node is already updated which will avoid the unwanted softirq raises
      to the benefit of real-time systems.
      
      Test: Ran rcutorture for various tree RCU configs.
      Signed-off-by: default avatarJoel Fernandes (Google) <joel@joelfernandes.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      671a6351
    • Paul E. McKenney's avatar
      rcu: Unconditionally expedite during suspend/hibernate · e85e6a21
      Paul E. McKenney authored
      The rcu_pm_notify() function refuses to switch to/from expedited grace
      periods on systems with more than 256 CPUs due to the serialized
      initialization of expedited grace periods.  However, expedited grace
      periods are now initialized in parallel, removing this concern.
      This commit therefore removes the checks from rcu_pm_notify(), so that
      expedited grace periods are used unconditionally during suspend/resume
      and hibernate/wake operations.
      
      As always, real-time workloads wishing to completely avoid expedited
      grace periods can use the rcupdate.rcu_normal= kernel parameter.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@linux.ibm.com>
      e85e6a21
  2. 17 Mar, 2019 14 commits
  3. 16 Mar, 2019 8 commits
    • Linus Torvalds's avatar
      Merge tag 'pidfd-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux · a9dce667
      Linus Torvalds authored
      Pull pidfd system call from Christian Brauner:
       "This introduces the ability to use file descriptors from /proc/<pid>/
        as stable handles on struct pid. Even if a pid is recycled the handle
        will not change. For a start these fds can be used to send signals to
        the processes they refer to.
      
        With the ability to use /proc/<pid> fds as stable handles on struct
        pid we can fix a long-standing issue where after a process has exited
        its pid can be reused by another process. If a caller sends a signal
        to a reused pid it will end up signaling the wrong process.
      
        With this patchset we enable a variety of use cases. One obvious
        example is that we can now safely delegate an important part of
        process management - sending signals - to processes other than the
        parent of a given process by sending file descriptors around via scm
        rights and not fearing that the given process will have been recycled
        in the meantime. It also allows for easy testing whether a given
        process is still alive or not by sending signal 0 to a pidfd which is
        quite handy.
      
        There has been some interest in this feature e.g. from systems
        management (systemd, glibc) and container managers. I have requested
        and gotten comments from glibc to make sure that this syscall is
        suitable for their needs as well. In the future I expect it to take on
        most other pid-based signal syscalls. But such features are left for
        the future once they are needed.
      
        This has been sitting in linux-next for quite a while and has not
        caused any issues. It comes with selftests which verify basic
        functionality and also test that a recycled pid cannot be signaled via
        a pidfd.
      
        Jon has written about a prior version of this patchset. It should
        cover the basic functionality since not a lot has changed since then:
      
            https://lwn.net/Articles/773459/
      
        The commit message for the syscall itself is extensively documenting
        the syscall, including it's functionality and extensibility"
      
      * tag 'pidfd-v5.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brauner/linux:
        selftests: add tests for pidfd_send_signal()
        signal: add pidfd_send_signal() syscall
      a9dce667
    • Linus Torvalds's avatar
      Merge tag 'devdax-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · f67e3fb4
      Linus Torvalds authored
      Pull device-dax updates from Dan Williams:
       "New device-dax infrastructure to allow persistent memory and other
        "reserved" / performance differentiated memories, to be assigned to
        the core-mm as "System RAM".
      
        Some users want to use persistent memory as additional volatile
        memory. They are willing to cope with potential performance
        differences, for example between DRAM and 3D Xpoint, and want to use
        typical Linux memory management apis rather than a userspace memory
        allocator layered over an mmap() of a dax file. The administration
        model is to decide how much Persistent Memory (pmem) to use as System
        RAM, create a device-dax-mode namespace of that size, and then assign
        it to the core-mm. The rationale for device-dax is that it is a
        generic memory-mapping driver that can be layered over any "special
        purpose" memory, not just pmem. On subsequent boots udev rules can be
        used to restore the memory assignment.
      
        One implication of using pmem as RAM is that mlock() no longer keeps
        data off persistent media. For this reason it is recommended to enable
        NVDIMM Security (previously merged for 5.0) to encrypt pmem contents
        at rest. We considered making this recommendation an actively enforced
        requirement, but in the end decided to leave it as a distribution /
        administrator policy to allow for emulation and test environments that
        lack security capable NVDIMMs.
      
        Summary:
      
         - Replace the /sys/class/dax device model with /sys/bus/dax, and
           include a compat driver so distributions can opt-in to the new ABI.
      
         - Allow for an alternative driver for the device-dax address-range
      
         - Introduce the 'kmem' driver to hotplug / assign a device-dax
           address-range to the core-mm.
      
         - Arrange for the device-dax target-node to be onlined so that the
           newly added memory range can be uniquely referenced by numa apis"
      
      NOTE! I'm not entirely happy with the whole "PMEM as RAM" model because
      we currently have special - and very annoying rules in the kernel about
      accessing PMEM only with the "MC safe" accessors, because machine checks
      inside the regular repeat string copy functions can be fatal in some
      (not described) circumstances.
      
      And apparently the PMEM modules can cause that a lot more than regular
      RAM.  The argument is that this happens because PMEM doesn't necessarily
      get scrubbed at boot like RAM does, but that is planned to be added for
      the user space tooling.
      
      Quoting Dan from another email:
       "The exposure can be reduced in the volatile-RAM case by scanning for
        and clearing errors before it is onlined as RAM. The userspace tooling
        for that can be in place before v5.1-final. There's also runtime
        notifications of errors via acpi_nfit_uc_error_notify() from
        background scrubbers on the DIMM devices. With that mechanism the
        kernel could proactively clear newly discovered poison in the volatile
        case, but that would be additional development more suitable for v5.2.
      
        I understand the concern, and the need to highlight this issue by
        tapping the brakes on feature development, but I don't see PMEM as RAM
        making the situation worse when the exposure is also there via DAX in
        the PMEM case. Volatile-RAM is arguably a safer use case since it's
        possible to repair pages where the persistent case needs active
        application coordination"
      
      * tag 'devdax-for-5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        device-dax: "Hotplug" persistent memory for use like normal RAM
        mm/resource: Let walk_system_ram_range() search child resources
        mm/memory-hotplug: Allow memory resources to be children
        mm/resource: Move HMM pr_debug() deeper into resource code
        mm/resource: Return real error codes from walk failures
        device-dax: Add a 'modalias' attribute to DAX 'bus' devices
        device-dax: Add a 'target_node' attribute
        device-dax: Auto-bind device after successful new_id
        acpi/nfit, device-dax: Identify differentiated memory with a unique numa-node
        device-dax: Add /sys/class/dax backwards compatibility
        device-dax: Add support for a dax override driver
        device-dax: Move resource pinning+mapping into the common driver
        device-dax: Introduce bus + driver model
        device-dax: Start defining a dax bus model
        device-dax: Remove multi-resource infrastructure
        device-dax: Kill dax_region base
        device-dax: Kill dax_region ida
      f67e3fb4
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 477558d7
      Linus Torvalds authored
      Pull more SCSI updates from James Bottomley:
       "This is the final round of mostly small fixes and performance
        improvements to our initial submit.
      
        The main regression fix is the ia64 simscsi build failure which was
        missed in the serial number elimination conversion"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (24 commits)
        scsi: ia64: simscsi: use request tag instead of serial_number
        scsi: aacraid: Fix performance issue on logical drives
        scsi: lpfc: Fix error codes in lpfc_sli4_pci_mem_setup()
        scsi: libiscsi: Hold back_lock when calling iscsi_complete_task
        scsi: hisi_sas: Change SERDES_CFG init value to increase reliability of HiLink
        scsi: hisi_sas: Send HARD RESET to clear the previous affiliation of STP target port
        scsi: hisi_sas: Set PHY linkrate when disconnected
        scsi: hisi_sas: print PHY RX errors count for later revision of v3 hw
        scsi: hisi_sas: Fix a timeout race of driver internal and SMP IO
        scsi: hisi_sas: Change return variable type in phy_up_v3_hw()
        scsi: qla2xxx: check for kstrtol() failure
        scsi: lpfc: fix 32-bit format string warning
        scsi: lpfc: fix unused variable warning
        scsi: target: tcmu: Switch to bitmap_zalloc()
        scsi: libiscsi: fall back to sendmsg for slab pages
        scsi: qla2xxx: avoid printf format warning
        scsi: lpfc: resolve static checker warning in lpfc_sli4_hba_unset
        scsi: lpfc: Correct __lpfc_sli_issue_iocb_s4 lockdep check
        scsi: ufs: hisi: fix ufs_hba_variant_ops passing
        scsi: qla2xxx: Fix panic in qla_dfs_tgt_counters_show
        ...
      477558d7
    • Linus Torvalds's avatar
      Merge tag 'for-5.1/block-post-20190315' of git://git.kernel.dk/linux-block · 11efae35
      Linus Torvalds authored
      Pull more block layer changes from Jens Axboe:
       "This is a collection of both stragglers, and fixes that came in after
        I finalized the initial pull. This contains:
      
         - An MD pull request from Song, with a few minor fixes
      
         - Set of NVMe patches via Christoph
      
         - Pull request from Konrad, with a few fixes for xen/blkback
      
         - pblk fix IO calculation fix (Javier)
      
         - Segment calculation fix for pass-through (Ming)
      
         - Fallthrough annotation for blkcg (Mathieu)"
      
      * tag 'for-5.1/block-post-20190315' of git://git.kernel.dk/linux-block: (25 commits)
        blkcg: annotate implicit fall through
        nvme-tcp: support C2HData with SUCCESS flag
        nvmet: ignore EOPNOTSUPP for discard
        nvme: add proper write zeroes setup for the multipath device
        nvme: add proper discard setup for the multipath device
        nvme: remove nvme_ns_config_oncs
        nvme: disable Write Zeroes for qemu controllers
        nvmet-fc: bring Disconnect into compliance with FC-NVME spec
        nvmet-fc: fix issues with targetport assoc_list list walking
        nvme-fc: reject reconnect if io queue count is reduced to zero
        nvme-fc: fix numa_node when dev is null
        nvme-fc: use nr_phys_segments to determine existence of sgl
        nvme-loop: init nvmet_ctrl fatal_err_work when allocate
        nvme: update comment to make the code easier to read
        nvme: put ns_head ref if namespace fails allocation
        nvme-trace: fix cdw10 buffer overrun
        nvme: don't warn on block content change effects
        nvme: add get-feature to admin cmds tracer
        md: Fix failed allocation of md_register_thread
        It's wrong to add len to sector_nr in raid10 reshape twice
        ...
      11efae35
    • Linus Torvalds's avatar
      Merge tag 'nfs-for-5.1-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs · 465c209d
      Linus Torvalds authored
      Pull NFS client bugfixes from Trond Myklebust:
       "Highlights include:
      
        Bugfixes:
         - Fix an Oops in SUNRPC back channel tracepoints
         - Fix a SUNRPC client regression when handling oversized replies
         - Fix the minimal size for SUNRPC reply buffer allocation
         - rpc_decode_header() must always return a non-zero value on error
         - Fix a typo in pnfs_update_layout()
      
        Cleanup:
         - Remove redundant check for the reply length in call_decode()"
      
      * tag 'nfs-for-5.1-2' of git://git.linux-nfs.org/projects/trondmy/linux-nfs:
        SUNRPC: Remove redundant check for the reply length in call_decode()
        SUNRPC: Handle the SYSTEM_ERR rpc error
        SUNRPC: rpc_decode_header() must always return a non-zero value on error
        SUNRPC: Use the ENOTCONN error on socket disconnect
        SUNRPC: Fix the minimal size for reply buffer allocation
        SUNRPC: Fix a client regression when handling oversized replies
        pNFS: Fix a typo in pnfs_update_layout
        fix null pointer deref in tracepoints in back channel
      465c209d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · a9c55d58
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
       "One fix to prevent runtime allocation of 16GB pages when running in a
        VM (as opposed to bare metal), because it doesn't work.
      
        A small fix to our recently added KCOV support to exempt some more
        code from being instrumented.
      
        Plus a few minor build fixes, a small dead code removal and a
        defconfig update.
      
        Thanks to: Alexey Kardashevskiy, Aneesh Kumar K.V, Christophe Leroy,
        Jason Yan, Joel Stanley, Mahesh Salgaonkar, Mathieu Malaterre"
      
      * tag 'powerpc-5.1-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/64s: Include <asm/nmi.h> header file to fix a warning
        powerpc/powernv: Fix compile without CONFIG_TRACEPOINTS
        powerpc/mm: Disable kcov for SLB routines
        powerpc: remove dead code in head_fsl_booke.S
        powerpc/configs: Sync skiroot defconfig
        powerpc/hugetlb: Don't do runtime allocation of 16G pages in LPAR configuration
      a9c55d58
    • Linus Torvalds's avatar
      Merge branch 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 92497350
      Linus Torvalds authored
      Pull vfs mount infrastructure fix from Al Viro:
       "Fixup for sysfs braino.
      
        Capabilities checks for sysfs mount do include those on netns, but
        only if CONFIG_NET_NS is enabled. Sorry, should've caught that
        earlier..."
      
      * 'work.mount' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix sysfs_init_fs_context() in !CONFIG_NET_NS case
      92497350
    • Al Viro's avatar
      fix sysfs_init_fs_context() in !CONFIG_NET_NS case · ab81dabd
      Al Viro authored
      Permission checks on current's netns should be done only when
      netns are enabled.
      Reported-by: default avatarDominik Brodowski <linux@dominikbrodowski.net>
      Fixes: 23bf1b6bSigned-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      ab81dabd