1. 07 Jan, 2021 1 commit
    • Neeraj Upadhyay's avatar
      rcu: Check and report missed fqs timer wakeup on RCU stall · 683954e5
      Neeraj Upadhyay authored
      For a new grace period request, the RCU GP kthread transitions through
      following states:
      
      a. [RCU_GP_WAIT_GPS] -> [RCU_GP_DONE_GPS]
      
      The RCU_GP_WAIT_GPS state is where the GP kthread waits for a request
      for a new GP.  Once it receives a request (for example, when a new RCU
      callback is queued), the GP kthread transitions to RCU_GP_DONE_GPS.
      
      b. [RCU_GP_DONE_GPS] -> [RCU_GP_ONOFF]
      
      Grace period initialization starts in rcu_gp_init(), which records the
      start of new GP in rcu_state.gp_seq and transitions to RCU_GP_ONOFF.
      
      c. [RCU_GP_ONOFF] -> [RCU_GP_INIT]
      
      The purpose of the RCU_GP_ONOFF state is to apply the online/offline
      information that was buffered for any CPUs that recently came online or
      went offline.  This state is maintained in per-leaf rcu_node bitmasks,
      with the buffered state in ->qsmaskinitnext and the state for the upcoming
      GP in ->qsmaskinit.  At the end of this RCU_GP_ONOFF state, each bit in
      ->qsmaskinit will correspond to a CPU that must pass through a quiescent
      state before the upcoming grace period is allowed to complete.
      
      However, a leaf rcu_node structure with an all-zeroes ->qsmaskinit
      cannot necessarily be ignored.  In preemptible RCU, there might well be
      tasks still in RCU read-side critical sections that were first preempted
      while running on one of the CPUs managed by this structure.  Such tasks
      will be queued on this structure's ->blkd_tasks list.  Only after this
      list fully drains can this leaf rcu_node structure be ignored, and even
      then only if none of its CPUs have come back online in the meantime.
      Once that happens, the ->qsmaskinit masks further up the tree will be
      updated to exclude this leaf rcu_node structure.
      
      Once the ->qsmaskinitnext and ->qsmaskinit fields have been updated
      as needed, the GP kthread transitions to RCU_GP_INIT.
      
      d. [RCU_GP_INIT] -> [RCU_GP_WAIT_FQS]
      
      The purpose of the RCU_GP_INIT state is to copy each ->qsmaskinit to
      the ->qsmask field within each rcu_node structure.  This copying is done
      breadth-first from the root to the leaves.  Why not just copy directly
      from ->qsmaskinitnext to ->qsmask?  Because the ->qsmaskinitnext masks
      can change in the meantime as additional CPUs come online or go offline.
      Such changes would result in inconsistencies in the ->qsmask fields up and
      down the tree, which could in turn result in too-short grace periods or
      grace-period hangs.  These issues are avoided by snapshotting the leaf
      rcu_node structures' ->qsmaskinitnext fields into their ->qsmaskinit
      counterparts, generating a consistent set of ->qsmaskinit fields
      throughout the tree, and only then copying these consistent ->qsmaskinit
      fields to their ->qsmask counterparts.
      
      Once this initialization step is complete, the GP kthread transitions
      to RCU_GP_WAIT_FQS, where it waits to do a force-quiescent-state scan
      on the one hand or for the end of the grace period on the other.
      
      e. [RCU_GP_WAIT_FQS] -> [RCU_GP_DOING_FQS]
      
      The RCU_GP_WAIT_FQS state waits for one of three things:  (1) An
      explicit request to do a force-quiescent-state scan, (2) The end of
      the grace period, or (3) A short interval of time, after which it
      will do a force-quiescent-state (FQS) scan.  The explicit request can
      come from rcutorture or from any CPU that has too many RCU callbacks
      queued (see the qhimark kernel parameter and the RCU_GP_FLAG_OVLD
      flag).  The aforementioned "short period of time" is specified by the
      jiffies_till_first_fqs boot parameter for a given grace period's first
      FQS scan and by the jiffies_till_next_fqs for later FQS scans.
      
      Either way, once the wait is over, the GP kthread transitions to
      RCU_GP_DOING_FQS.
      
      f. [RCU_GP_DOING_FQS] -> [RCU_GP_CLEANUP]
      
      The RCU_GP_DOING_FQS state performs an FQS scan.  Each such scan carries
      out two functions for any CPU whose bit is still set in its leaf rcu_node
      structure's ->qsmask field, that is, for any CPU that has not yet reported
      a quiescent state for the current grace period:
      
        i.  Report quiescent states on behalf of CPUs that have been observed
            to be idle (from an RCU perspective) since the beginning of the
            grace period.
      
        ii. If the current grace period is too old, take various actions to
            encourage holdout CPUs to pass through quiescent states, including
            enlisting the aid of any calls to cond_resched() and might_sleep(),
            and even including IPIing the holdout CPUs.
      
      These checks are skipped for any leaf rcu_node structure with a all-zero
      ->qsmask field, however such structures are subject to RCU priority
      boosting if there are tasks on a given structure blocking the current
      grace period.  The end of the grace period is detected when the root
      rcu_node structure's ->qsmask is zero and when there are no longer any
      preempted tasks blocking the current grace period.  (No, this last check
      is not redundant.  To see this, consider an rcu_node tree having exactly
      one structure that serves as both root and leaf.)
      
      Once the end of the grace period is detected, the GP kthread transitions
      to RCU_GP_CLEANUP.
      
      g. [RCU_GP_CLEANUP] -> [RCU_GP_CLEANED]
      
      The RCU_GP_CLEANUP state marks the end of grace period by updating the
      rcu_state structure's ->gp_seq field and also all rcu_node structures'
      ->gp_seq field.  As before, the rcu_node tree is traversed in breadth
      first order.  Once this update is complete, the GP kthread transitions
      to the RCU_GP_CLEANED state.
      
      i. [RCU_GP_CLEANED] -> [RCU_GP_INIT]
      
      Once in the RCU_GP_CLEANED state, the GP kthread immediately transitions
      into the RCU_GP_INIT state.
      
      j. The role of timers.
      
      If there is at least one idle CPU, and if timers are not firing, the
      transition from RCU_GP_DOING_FQS to RCU_GP_CLEANUP will never happen.
      Timers can fail to fire for a number of reasons, including issues in
      timer configuration, issues in the timer framework, and failure to handle
      softirqs (for example, when there is a storm of interrupts).  Whatever the
      reason, if the timers fail to fire, the GP kthread will never be awakened,
      resulting in RCU CPU stall warnings and eventually in OOM.
      
      However, an RCU CPU stall warning has a large number of potential causes,
      as documented in Documentation/RCU/stallwarn.rst.  This commit therefore
      adds analysis to the RCU CPU stall-warning code to emit an additional
      message if the cause of the stall is likely to be timer failure.
      Signed-off-by: default avatarNeeraj Upadhyay <neeraju@codeaurora.org>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      683954e5
  2. 04 Jan, 2021 3 commits
    • Paul E. McKenney's avatar
      rcu: Do not NMI offline CPUs · 725969ac
      Paul E. McKenney authored
      Currently, RCU CPU stall warning messages will NMI whatever CPU looks
      like it is blocking either the current grace period or the grace-period
      kthread.  This can produce confusing output if the target CPU is offline.
      This commit therefore checks for offline CPUs.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      725969ac
    • Paul E. McKenney's avatar
      rcu: For RCU grace-period kthread starvation, dump last CPU it ran on · 243027a3
      Paul E. McKenney authored
      When the RCU CPU stall-warning code detects that the RCU grace-period
      kthread is being starved, it dumps that kthread's stack.  This can
      sometimes be useful, but it is also useful to know what is running on the
      CPU that this kthread is attempting to run on.  This commit therefore
      adds a stack trace of this CPU in order to help track down whatever it
      is that might be preventing RCU's grace-period kthread from running.
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      243027a3
    • Paul E. McKenney's avatar
      rcu: Mark obtuse portion of stall warning as internal debug · b08ea1de
      Paul E. McKenney authored
      There is a rather obtuse string that can be printed as part of an
      expedited RCU CPU stall-warning message that starts with "blocking
      rcu_node structures".  Under normal conditions, most of this message
      is just repeating the list of CPUs blocking the current expedited grace
      period, but in a manner that is rather difficult to read.  This commit
      therefore marks this message as "(internal RCU debug)" in an effort to
      give people the option of avoiding wasting time attempting to extract
      nonexistent additional meaning from this portion of the message.
      Reported-by: default avatarJonathan Lemon <bsd@fb.com>
      Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
      b08ea1de
  3. 27 Dec, 2020 8 commits
  4. 26 Dec, 2020 5 commits
  5. 25 Dec, 2020 5 commits
    • Linus Torvalds's avatar
      drm/amd/display: avoid uninitialized variable warning · 61d79136
      Linus Torvalds authored
      clang (quite rightly) complains fairly loudly about the newly added
      mpc1_get_mpc_out_mux() function returning an uninitialized value if the
      'opp_id' checks don't pass.
      
      This may not happen in practice, but the code really shouldn't return
      garbage if the sanity checks don't pass.
      
      So just initialize 'val' to zero to avoid the issue.
      
      Fixes: 110b055b ("drm/amd/display: add getter routine to retrieve mpcc mux")
      Cc: Josip Pavic <Josip.Pavic@amd.com>
      Cc: Bindu Ramamurthy <bindu.r@amd.com>
      Cc: Alex Deucher <alexander.deucher@amd.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      61d79136
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-2020-12-24' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux · 5814bc2d
      Linus Torvalds authored
      Pull more perf tools updates from Arnaldo Carvalho de Melo:
      
       - Refactor 'perf stat' per CPU/socket/die/thread aggregation fixing use
         cases in ARM machines.
      
       - Fix memory leak when synthesizing SDT probes in 'perf probe'.
      
       - Update kernel header copies related to KVM, epol_pwait. msr-index and
         powerpc and s390 syscall tables.
      
      * tag 'perf-tools-2020-12-24' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux: (24 commits)
        perf probe: Fix memory leak when synthesizing SDT probes
        perf stat aggregation: Add separate thread member
        perf stat aggregation: Add separate core member
        perf stat aggregation: Add separate die member
        perf stat aggregation: Add separate socket member
        perf stat aggregation: Add separate node member
        perf stat aggregation: Start using cpu_aggr_id in map
        perf cpumap: Drop in cpu_aggr_map struct
        perf cpumap: Add new map type for aggregation
        perf stat: Replace aggregation ID with a struct
        perf cpumap: Add new struct for cpu aggregation
        perf cpumap: Use existing allocator to avoid using malloc
        perf tests: Improve topology test to check all aggregation types
        perf tools: Update s390's syscall.tbl copy from the kernel sources
        perf tools: Update powerpc's syscall.tbl copy from the kernel sources
        perf s390: Move syscall.tbl check into check-headers.sh
        perf powerpc: Move syscall.tbl check to check-headers.sh
        tools headers UAPI: Synch KVM's svm.h header with the kernel
        tools kvm headers: Update KVM headers from the kernel sources
        tools headers UAPI: Sync KVM's vmx.h header with the kernel sources
        ...
      5814bc2d
    • Linus Torvalds's avatar
      Merge branch 'for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux · 42dc45e8
      Linus Torvalds authored
      Pull coccinelle updates from Julia Lawall.
      
      * 'for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/jlawall/linux:
        scripts: coccicheck: Correct usage of make coccicheck
        coccinelle: update expiring email addresses
        coccinnelle: Remove ptr_ret script
        kbuild: do not use scripts/ld-version.sh for checking spatch version
        remove boolinit.cocci
      42dc45e8
    • Michael Ellerman's avatar
      genirq: Fix export of irq_to_desc() for powerpc KVM · 11cc92eb
      Michael Ellerman authored
      Commit 64a1b95b ("genirq: Restrict export of irq_to_desc()") removed
      the export of irq_to_desc() unless powerpc KVM is being built, because
      there is still a use of irq_to_desc() in modular code there.
      
      However it used:
      
        #ifdef CONFIG_KVM_BOOK3S_64_HV
      
      Which doesn't work when that symbol is =m, leading to a build failure:
      
        ERROR: modpost: "irq_to_desc" [arch/powerpc/kvm/kvm-hv.ko] undefined!
      
      Fix it by checking for the definedness of the correct symbol which is
      CONFIG_KVM_BOOK3S_64_HV_MODULE.
      
      Fixes: 64a1b95b ("genirq: Restrict export of irq_to_desc()")
      Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      11cc92eb
    • Linus Torvalds's avatar
      Merge branch 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 7bb5226c
      Linus Torvalds authored
      Pull misc vfs updates from Al Viro:
       "Assorted patches from previous cycle(s)..."
      
      * 'work.misc' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix hostfs_open() use of ->f_path.dentry
        Make sure that make_create_in_sticky() never sees uninitialized value of dir_mode
        fs: Kill DCACHE_DONTCACHE dentry even if DCACHE_REFERENCED is set
        fs: Handle I_DONTCACHE in iput_final() instead of generic_drop_inode()
        fs/namespace.c: WARN if mnt_count has become negative
      7bb5226c
  6. 24 Dec, 2020 18 commits
    • Linus Torvalds's avatar
      Merge tag 'docs-5.11-2' of git://git.lwn.net/linux · 71c5f031
      Linus Torvalds authored
      Pull documentation fixes from Jonathan Corbet:
       "A small set of late-arriving, small documentation fixes"
      
      * tag 'docs-5.11-2' of git://git.lwn.net/linux:
        docs: admin-guide: Fix default value of max_map_count in sysctl/vm.rst
        Documentation/submitting-patches: Document the SoB chain
        Documentation: process: Correct numbering
        docs: submitting-patches: Trivial - fix grammatical error
      71c5f031
    • Linus Torvalds's avatar
      Merge tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4 · 555a6e8c
      Linus Torvalds authored
      Pull ext4 updates from Ted Ts'o:
       "Various bug fixes and cleanups for ext4; no new features this cycle"
      
      * tag 'ext4_for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tytso/ext4: (29 commits)
        ext4: remove unnecessary wbc parameter from ext4_bio_write_page
        ext4: avoid s_mb_prefetch to be zero in individual scenarios
        ext4: defer saving error info from atomic context
        ext4: simplify ext4 error translation
        ext4: move functions in super.c
        ext4: make ext4_abort() use __ext4_error()
        ext4: standardize error message in ext4_protect_reserved_inode()
        ext4: remove redundant sb checksum recomputation
        ext4: don't remount read-only with errors=continue on reboot
        ext4: fix deadlock with fs freezing and EA inodes
        jbd2: add a helper to find out number of fast commit blocks
        ext4: make fast_commit.h byte identical with e2fsprogs/fast_commit.h
        ext4: fix fall-through warnings for Clang
        ext4: add docs about fast commit idempotence
        ext4: remove the unused EXT4_CURRENT_REV macro
        ext4: fix an IS_ERR() vs NULL check
        ext4: check for invalid block size early when mounting a file system
        ext4: fix a memory leak of ext4_free_data
        ext4: delete nonsensical (commented-out) code inside ext4_xattr_block_set()
        ext4: update ext4_data_block_valid related comments
        ...
      555a6e8c
    • Linus Torvalds's avatar
      Merge tag 'Smack-for-5.11-io_uring-fix' of git://github.com/cschaufler/smack-next · 2f2fce3d
      Linus Torvalds authored
      Pull smack fix from Casey Schaufler:
       "Provide a fix for the incorrect handling of privilege in the face of
        io_uring's use of kernel threads. That invalidated an long standing
        assumption regarding the privilege of kernel threads.
      
        The fix is simple and safe. It was provided by Jens Axboe and has been
        tested"
      
      * tag 'Smack-for-5.11-io_uring-fix' of git://github.com/cschaufler/smack-next:
        Smack: Handle io_uring kernel thread privileges
      2f2fce3d
    • Linus Torvalds's avatar
      Merge tag 'riscv-for-linus-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux · 7a2fde8d
      Linus Torvalds authored
      Pull RISC-V fix from Palmer Dabbelt
       "Avoid trying to initialize memory regions outside the usable range"
      
      * tag 'riscv-for-linus-5.11-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/riscv/linux:
        RISC-V: Fix usage of memblock_enforce_memory_limit
      7a2fde8d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 9b3f7f1b
      Linus Torvalds authored
      Pull powerpc fixes from Michael Ellerman:
      
       - Four commits fixing various things in the new C VDSO code
      
       - One fix for a 32-bit VMAP stack bug
      
       - Two minor build fixes
      
      Thanks to Cédric Le Goater, Christophe Leroy, and Will Springer.
      
      * tag 'powerpc-5.11-2' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux:
        powerpc/32: Fix vmap stack - Properly set r1 before activating MMU on syscall too
        powerpc/vdso: Fix DOTSYM for 32-bit LE VDSO
        powerpc/vdso: Don't pass 64-bit ABI cflags to 32-bit VDSO
        powerpc/vdso: Block R_PPC_REL24 relocations
        powerpc/smp: Add __init to init_big_cores()
        powerpc/time: Force inlining of get_tb()
        powerpc/boot: Fix build of dts/fsl
      9b3f7f1b
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2020-12-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3913d00a
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "This is the second attempt after the first one failed miserably and
        got zapped to unblock the rest of the interrupt related patches.
      
        A treewide cleanup of interrupt descriptor (ab)use with all sorts of
        racy accesses, inefficient and disfunctional code. The goal is to
        remove the export of irq_to_desc() to prevent these things from
        creeping up again"
      
      * tag 'irq-core-2020-12-23' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (30 commits)
        genirq: Restrict export of irq_to_desc()
        xen/events: Implement irq distribution
        xen/events: Reduce irq_info:: Spurious_cnt storage size
        xen/events: Only force affinity mask for percpu interrupts
        xen/events: Use immediate affinity setting
        xen/events: Remove disfunct affinity spreading
        xen/events: Remove unused bind_evtchn_to_irq_lateeoi()
        net/mlx5: Use effective interrupt affinity
        net/mlx5: Replace irq_to_desc() abuse
        net/mlx4: Use effective interrupt affinity
        net/mlx4: Replace irq_to_desc() abuse
        PCI: mobiveil: Use irq_data_get_irq_chip_data()
        PCI: xilinx-nwl: Use irq_data_get_irq_chip_data()
        NTB/msi: Use irq_has_action()
        mfd: ab8500-debugfs: Remove the racy fiddling with irq_desc
        pinctrl: nomadik: Use irq_has_action()
        drm/i915/pmu: Replace open coded kstat_irqs() copy
        drm/i915/lpe_audio: Remove pointless irq_to_desc() usage
        s390/irq: Use irq_desc_kstat_cpu() in show_msi_interrupt()
        parisc/irq: Use irq_desc_kstat_cpu() in show_interrupts()
        ...
      3913d00a
    • Linus Torvalds's avatar
      Merge tag 'efi_updates_for_v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 4a1106af
      Linus Torvalds authored
      Pull EFI updates from Borislav Petkov:
       "These got delayed due to a last minute ia64 build issue which got
        fixed in the meantime.
      
        EFI updates collected by Ard Biesheuvel:
      
         - Don't move BSS section around pointlessly in the x86 decompressor
      
         - Refactor helper for discovering the EFI secure boot mode
      
         - Wire up EFI secure boot to IMA for arm64
      
         - Some fixes for the capsule loader
      
         - Expose the RT_PROP table via the EFI test module
      
         - Relax DT and kernel placement restrictions on ARM
      
        with a few followup fixes:
      
         - fix the build breakage on IA64 caused by recent capsule loader
           changes
      
         - suppress a type mismatch build warning in the expansion of
           EFI_PHYS_ALIGN on ARM"
      
      * tag 'efi_updates_for_v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        efi: arm: force use of unsigned type for EFI_PHYS_ALIGN
        efi: ia64: disable the capsule loader
        efi: stub: get rid of efi_get_max_fdt_addr()
        efi/efi_test: read RuntimeServicesSupported
        efi: arm: reduce minimum alignment of uncompressed kernel
        efi: capsule: clean scatter-gather entries from the D-cache
        efi: capsule: use atomic kmap for transient sglist mappings
        efi: x86/xen: switch to efi_get_secureboot_mode helper
        arm64/ima: add ima_arch support
        ima: generalize x86/EFI arch glue for other EFI architectures
        efi: generalize efi_get_secureboot
        efi/libstub: EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER should not default to yes
        efi/x86: Only copy the compressed kernel image in efi_relocate_kernel()
        efi/libstub/x86: simplify efi_is_native()
      4a1106af
    • Linus Torvalds's avatar
      Merge tag 'io_uring-5.11-2020-12-23' of git://git.kernel.dk/linux-block · 60e8edd2
      Linus Torvalds authored
      Pull io_uring fixes from Jens Axboe:
       "All straight fixes, or a prep patch for a fix, either bound for stable
        or fixing issues from this merge window. In particular:
      
         - Fix new shutdown op not breaking links on failure
      
         - Hold mm->mmap_sem for mm->locked_vm manipulation
      
         - Various cancelation fixes (me, Pavel)
      
         - Fix error path potential double ctx free (Pavel)
      
         - IOPOLL fixes (Xiaoguang)"
      
      * tag 'io_uring-5.11-2020-12-23' of git://git.kernel.dk/linux-block:
        io_uring: hold uring_lock while completing failed polled io in io_wq_submit_work()
        io_uring: fix double io_uring free
        io_uring: fix ignoring xa_store errors
        io_uring: end waiting before task cancel attempts
        io_uring: always progress task_work on task cancel
        io-wq: kill now unused io_wq_cancel_all()
        io_uring: make ctx cancel on exit targeted to actual ctx
        io_uring: fix 0-iov read buffer select
        io_uring: close a small race gap for files cancel
        io_uring: fix io_wqe->work_list corruption
        io_uring: limit {io|sq}poll submit locking scope
        io_uring: inline io_cqring_mark_overflow()
        io_uring: consolidate CQ nr events calculation
        io_uring: remove racy overflow list fast checks
        io_uring: cancel reqs shouldn't kill overflow list
        io_uring: hold mmap_sem for mm->locked_vm manipulation
        io_uring: break links on shutdown failure
      60e8edd2
    • Linus Torvalds's avatar
      Merge tag 'block-5.11-2020-12-23' of git://git.kernel.dk/linux-block · 771e7e41
      Linus Torvalds authored
      Pull block fixes from Jens Axboe:
       "A few stragglers in here, but mostly just straight fixes. In
        particular:
      
         - Set of rnbd fixes for issues around changes for the merge window
           (Gioh, Jack, Md Haris Iqbal)
      
         - iocost tracepoint addition (Baolin)
      
         - Copyright/maintainers update (Christoph)
      
         - Remove old blk-mq fast path CPU warning (Daniel)
      
         - loop max_part fix (Josh)
      
         - Remote IPI threaded IRQ fix (Sebastian)
      
         - dasd stable fixes (Stefan)
      
         - bcache merge window fixup and style fixup (Yi, Zheng)"
      
      * tag 'block-5.11-2020-12-23' of git://git.kernel.dk/linux-block:
        md/bcache: convert comma to semicolon
        bcache:remove a superfluous check in register_bcache
        block: update some copyrights
        block: remove a pointless self-reference in block_dev.c
        MAINTAINERS: add fs/block_dev.c to the block section
        blk-mq: Don't complete on a remote CPU in force threaded mode
        s390/dasd: fix list corruption of lcu list
        s390/dasd: fix list corruption of pavgroup group list
        s390/dasd: prevent inconsistent LCU device data
        s390/dasd: fix hanging device offline processing
        blk-iocost: Add iocg idle state tracepoint
        nbd: Respect max_part for all partition scans
        block/rnbd-clt: Does not request pdu to rtrs-clt
        block/rnbd-clt: Dynamically allocate sglist for rnbd_iu
        block/rnbd: Set write-back cache and fua same to the target device
        block/rnbd: Fix typos
        block/rnbd-srv: Protect dev session sysfs removal
        block/rnbd-clt: Fix possible memleak
        block/rnbd-clt: Get rid of warning regarding size argument in strlcpy
        blk-mq: Remove 'running from the wrong CPU' warning
      771e7e41
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 1f13d2f7
      Linus Torvalds authored
      Pull libnvdimm updates from Dan Williams:
       "Twas the day before Christmas and the only thing stirring in libnvdimm
        / device-dax land is a pile of miscellaneous fixups and cleanups.
      
        The bulk of it has appeared in -next save the last two patches to
        device-dax that have passed my build and unit tests.
      
         - Fix a long standing block-window-namespace issue surfaced by the
           ndctl change to attempt to preserve the kernel device name over
           a 'reconfigure'
      
         - Fix a few error path memory leaks in nfit and device-dax
      
         - Silence a smatch warning in the ioctl path
      
         - Miscellaneous cleanups"
      
      * tag 'libnvdimm-for-5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        device-dax: Avoid an unnecessary check in alloc_dev_dax_range()
        device-dax: Fix range release
        device-dax: delete a redundancy check in dev_dax_validate_align()
        libnvdimm/label: Return -ENXIO for no slot in __blk_label_update
        device-dax/core: Fix memory leak when rmmod dax.ko
        device-dax/pmem: Convert comma to semicolon
        libnvdimm: Cleanup include of badblocks.h
        ACPI: NFIT: Fix input validation of bus-family
        libnvdimm/namespace: Fix reaping of invalidated block-window-namespace labels
        ACPI/nfit: avoid accessing uninitialized memory in acpi_nfit_ctl()
      1f13d2f7
    • Linus Torvalds's avatar
      Merge tag 'drm-next-2020-12-24' of git://anongit.freedesktop.org/drm/drm · ef2c8b81
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Xmas eve pull request present.
      
        Just some fixes that trickled in this past week: Mostly amdgpu fixes,
        with a dma-buf/mips build fix and some misc komeda fixes.
      
        dma-buf:
         - fix build on mips
      
        komeda:
         - fix commit tail operation order
         - NULL pointer fix
         - out of bounds access fix
      
        ttm:
         - remove an unused function
      
        amdgpu:
         - Vangogh SMU fixes
         - Arcturus gfx9 fixes
         - Misc display fixes
         - Sienna Cichlid SMU update
         - Fix S3 display memory leak
         - Fix regression caused by DP sub-connector support
      
        amdkfd:
         - Properly require pcie atomics for gfx10"
      
      * tag 'drm-next-2020-12-24' of git://anongit.freedesktop.org/drm/drm: (31 commits)
        drm/amd/display: Fix memory leaks in S3 resume
        drm/amdgpu: Fix a copy-pasta comment
        drm/amdgpu: only set DP subconnector type on DP and eDP connectors
        drm/amd/pm: bump Sienna Cichlid smu_driver_if version to match latest pmfw
        drm/amd/display: add getter routine to retrieve mpcc mux
        drm/amd/display: always program DPPDTO unless not safe to lower
        drm/amd/display: [FW Promotion] Release 0.0.47
        drm/amd/display: updated wm table for Renoir
        drm/amd/display: Acquire DSC during split stream for ODM only if top_pipe
        drm/amd/display: Multi-display underflow observed
        drm/amd/display: Remove unnecessary NULL check
        drm/amd/display: Update RN/VGH active display count workaround
        drm/amd/display: change SMU repsonse timeout to 2s.
        drm/amd/display: gradually ramp ABM intensity
        drm/amd/display: To modify the condition in indicating branch device
        drm/amd/display: Modify the hdcp device count check condition
        drm/amd/display: Interfaces for hubp blank and soft reset
        drm/amd/display: handler not correctly checked at remove_irq_handler
        drm/amdgpu: check gfx pipe availability before toggling its interrupts
        drm/amdgpu: remove unnecessary asic type check
        ...
      ef2c8b81
    • Linus Torvalds's avatar
      Merge tag 'devicetree-fixes-for-5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux · 14571d5f
      Linus Torvalds authored
      Pull devicetree fixes from Rob Herring:
      
       - Correct the JSON pointer syntax in binding schemas
      
       - Drop unnecessary *-supply schema constraints
      
       - Drop redundant maxItems/items on array schemas
      
       - Fix various yamllint warnings
      
       - Fix various missing 'additionalProperties' properties
      
      * tag 'devicetree-fixes-for-5.11-1' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux:
        dt-bindings: Drop redundant maxItems/items
        dt-bindings: net: qcom,ipa: Drop unnecessary type ref on 'memory-region'
        dt-bindings: Drop unnecessary *-supply schemas properties
        dt-bindings/display: abt,y030xx067a: Fix binding
        dt-bindings: clock: imx8qxp-lpcg: eliminate yamllint warnings
        dt-bindings: display: eliminate yamllint warnings
        dt-bindings: media: nokia,smia: eliminate yamllint warnings
        dt-bindings: devapc: add the required property 'additionalProperties'
        dt-bindings: soc: add the required property 'additionalProperties'
        dt-bindings: serial: add the required property 'additionalProperties'
        dt-bindings: xlnx,vcu-settings: fix dt_binding_check warnings
        media: dt-bindings: coda: Add missing 'additionalProperties'
        dt-bindings: Fix JSON pointers
      14571d5f
    • Linus Torvalds's avatar
      Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost · 64145482
      Linus Torvalds authored
      Pull virtio updates from Michael Tsirkin:
      
       - vdpa sim refactoring
      
       - virtio mem: Big Block Mode support
      
       - misc cleanus, fixes
      
      * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (61 commits)
        vdpa: Use simpler version of ida allocation
        vdpa: Add missing comment for virtqueue count
        uapi: virtio_ids: add missing device type IDs from OASIS spec
        uapi: virtio_ids.h: consistent indentions
        vhost scsi: fix error return code in vhost_scsi_set_endpoint()
        virtio_ring: Fix two use after free bugs
        virtio_net: Fix error code in probe()
        virtio_ring: Cut and paste bugs in vring_create_virtqueue_packed()
        tools/virtio: add barrier for aarch64
        tools/virtio: add krealloc_array
        tools/virtio: include asm/bug.h
        vdpa/mlx5: Use write memory barrier after updating CQ index
        vdpa: split vdpasim to core and net modules
        vdpa_sim: split vdpasim_virtqueue's iov field in out_iov and in_iov
        vdpa_sim: make vdpasim->buffer size configurable
        vdpa_sim: use kvmalloc to allocate vdpasim->buffer
        vdpa_sim: set vringh notify callback
        vdpa_sim: add set_config callback in vdpasim_dev_attr
        vdpa_sim: add get_config callback in vdpasim_dev_attr
        vdpa_sim: make 'config' generic and usable for any device type
        ...
      64145482
    • Dan Williams's avatar
      Merge branch 'for-5.11/dax' into for-5.11/libnvdimm · 127c3d2e
      Dan Williams authored
      Pull in miscellaneous device-dax fixups and cleanups for v5.11.
      127c3d2e
    • Zhen Lei's avatar
      device-dax: Avoid an unnecessary check in alloc_dev_dax_range() · ff8da37d
      Zhen Lei authored
      Swap the calling sequence of krealloc() and __request_region(), call the
      latter first. In this way, the value of dev_dax->nr_range does not need to
      be considered when __request_region() failed.
      Signed-off-by: default avatarZhen Lei <thunder.leizhen@huawei.com>
      Link: https://lore.kernel.org/r/20201219081840.1149-2-thunder.leizhen@huawei.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      ff8da37d
    • Dan Williams's avatar
      device-dax: Fix range release · 6268d7da
      Dan Williams authored
      There are multiple locations that open-code the release of the last
      range in a device-dax instance. Consolidate this into a new
      dev_dax_trim_range() helper.
      
      This also addresses a kmemleak report:
      
      # cat /sys/kernel/debug/kmemleak
      [..]
      unreferenced object 0xffff976bd46f6240 (size 64):
         comm "ndctl", pid 23556, jiffies 4299514316 (age 5406.733s)
         hex dump (first 32 bytes):
           00 00 00 00 00 00 00 00 00 00 20 c3 37 00 00 00  .......... .7...
           ff ff ff 7f 38 00 00 00 00 00 00 00 00 00 00 00  ....8...........
         backtrace:
           [<00000000064003cf>] __kmalloc_track_caller+0x136/0x379
           [<00000000d85e3c52>] krealloc+0x67/0x92
           [<00000000d7d3ba8a>] __alloc_dev_dax_range+0x73/0x25c
           [<0000000027d58626>] devm_create_dev_dax+0x27d/0x416
           [<00000000434abd43>] __dax_pmem_probe+0x1c9/0x1000 [dax_pmem_core]
           [<0000000083726c1c>] dax_pmem_probe+0x10/0x1f [dax_pmem]
           [<00000000b5f2319c>] nvdimm_bus_probe+0x9d/0x340 [libnvdimm]
           [<00000000c055e544>] really_probe+0x230/0x48d
           [<000000006cabd38e>] driver_probe_device+0x122/0x13b
           [<0000000029c7b95a>] device_driver_attach+0x5b/0x60
           [<0000000053e5659b>] bind_store+0xb7/0xc3
           [<00000000d3bdaadc>] drv_attr_store+0x27/0x31
           [<00000000949069c5>] sysfs_kf_write+0x4a/0x57
           [<000000004a8b5adf>] kernfs_fop_write+0x150/0x1e5
           [<00000000bded60f0>] __vfs_write+0x1b/0x34
           [<00000000b92900f0>] vfs_write+0xd8/0x1d1
      Reported-by: default avatarJane Chu <jane.chu@oracle.com>
      Cc: Zhen Lei <thunder.leizhen@huawei.com>
      Link: https://lore.kernel.org/r/160834570161.1791850.14911670304441510419.stgit@dwillia2-desk3.amr.corp.intel.comSigned-off-by: default avatarDan Williams <dan.j.williams@intel.com>
      6268d7da
    • Arnaldo Carvalho de Melo's avatar
      perf probe: Fix memory leak when synthesizing SDT probes · 5149303f
      Arnaldo Carvalho de Melo authored
      The argv_split() function must be paired with argv_free(), else we must
      keep a reference to the argv array received or do the freeing ourselves,
      in synthesize_sdt_probe_command() we were simply leaking that argv[]
      array.
      
      Fixes: 3b1f8311 ("perf probe: Add sdt probes arguments into the uprobe cmd string")
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Alexandre Truong <alexandre.truong@arm.com>
      Cc: Alexis Berlemont <alexis.berlemont@gmail.com>
      Cc: He Zhe <zhe.he@windriver.com>
      Cc: Ian Rogers <irogers@google.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: John Garry <john.garry@huawei.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mathieu Poirier <mathieu.poirier@linaro.org>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Sumanth Korikkar <sumanthk@linux.ibm.com>
      Cc: Thomas Richter <tmricht@linux.ibm.com>
      Cc: Will Deacon <will@kernel.org>
      Link: https://lore.kernel.org/r/20201224135139.GF477817@kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      5149303f
    • James Clark's avatar
      perf stat aggregation: Add separate thread member · 8d4852b4
      James Clark authored
      A separate field isn't strictly required. The core field could be
      re-used for thread IDs as a single field was used previously.
      
      But separating them will avoid confusion and catch potential errors
      where core IDs are read as thread IDs and vice versa.
      
      Also remove the placeholder id field which is now no longer used.
      Signed-off-by: default avatarJames Clark <james.clark@arm.com>
      Acked-by: default avatarNamhyung Kim <namhyung@kernel.org>
      Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
      Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      Tested-by: default avatarJohn Garry <john.garry@huawei.com>
      Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Thomas Richter <tmricht@linux.ibm.com>
      Link: https://lore.kernel.org/r/20201126141328.6509-13-james.clark@arm.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
      8d4852b4