1. 24 Feb, 2021 3 commits
  2. 22 Feb, 2021 3 commits
    • Cong Wang's avatar
      bpf: Clear percpu pointers in bpf_prog_clone_free() · 53f523f3
      Cong Wang authored
      Similar to bpf_prog_realloc(), bpf_prog_clone_create() also copies
      the percpu pointers, but the clone still shares them with the original
      prog, so we have to clear these two percpu pointers in
      bpf_prog_clone_free(). Otherwise we would get a double free:
      
       BUG: kernel NULL pointer dereference, address: 0000000000000000
       #PF: supervisor read access in kernel mode
       #PF: error_code(0x0000) - not-present page
       PGD 0 P4D 0
       Oops: 0000 [#1] SMP PTI
       CPU: 13 PID: 8140 Comm: kworker/13:247 Kdump: loaded Tainted: G                W    OE
        5.11.0-rc4.bm.1-amd64+ #1
       Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
       test_bpf: #1 TXA
       Workqueue: events bpf_prog_free_deferred
       RIP: 0010:percpu_ref_get_many.constprop.97+0x42/0xf0
       Code: [...]
       RSP: 0018:ffffa6bce1f9bda0 EFLAGS: 00010002
       RAX: 0000000000000001 RBX: 0000000000000000 RCX: 00000000021dfc7b
       RDX: ffffffffae2eeb90 RSI: 867f92637e338da5 RDI: 0000000000000046
       RBP: ffffa6bce1f9bda8 R08: 0000000000000000 R09: 0000000000000001
       R10: 0000000000000046 R11: 0000000000000000 R12: 0000000000000280
       R13: 0000000000000000 R14: 0000000000000000 R15: ffff9b5f3ffdedc0
       FS:    0000000000000000(0000) GS:ffff9b5f2fb40000(0000) knlGS:0000000000000000
       CS:    0010 DS: 0000 ES: 0000 CR0: 0000000080050033
       CR2: 0000000000000000 CR3: 000000027c36c002 CR4: 00000000003706e0
       DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
       DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
       Call Trace:
          refill_obj_stock+0x5e/0xd0
          free_percpu+0xee/0x550
          __bpf_prog_free+0x4d/0x60
          process_one_work+0x26a/0x590
          worker_thread+0x3c/0x390
          ? process_one_work+0x590/0x590
          kthread+0x130/0x150
          ? kthread_park+0x80/0x80
          ret_from_fork+0x1f/0x30
      
      This bug is 100% reproducible with test_kmod.sh.
      
      Fixes: 700d4796 ("bpf: Optimize program stats")
      Fixes: ca06f55b ("bpf: Add per-program recursion prevention mechanism")
      Reported-by: default avatarJiang Wang <jiang.wang@bytedance.com>
      Signed-off-by: default avatarCong Wang <cong.wang@bytedance.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Cc: Alexei Starovoitov <ast@kernel.org>
      Link: https://lore.kernel.org/bpf/20210218001647.71631-1-xiyou.wangcong@gmail.com
      53f523f3
    • Dan Carpenter's avatar
      bpf: Fix a warning message in mark_ptr_not_null_reg() · 33ccec5f
      Dan Carpenter authored
      The WARN_ON() argument is a condition, not an error message.  So this
      code will print a stack trace but will not print the warning message.
      Fix that and also change it to only WARN_ONCE().
      
      Fixes: 4ddb7416 ("bpf: Extract nullable reg type conversion into a helper function")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Link: https://lore.kernel.org/bpf/YCzJlV3hnF%2Ft1Pk4@mwanda
      33ccec5f
    • Brendan Jackman's avatar
      bpf, x86: Fix BPF_FETCH atomic and/or/xor with r0 as src · b29dd96b
      Brendan Jackman authored
      This code generates a CMPXCHG loop in order to implement atomic_fetch
      bitwise operations. Because CMPXCHG is hard-coded to use rax (which
      holds the BPF r0 value), it saves the _real_ r0 value into the
      internal "ax" temporary register and restores it once the loop is
      complete.
      
      In the middle of the loop, the actual bitwise operation is performed
      using src_reg. The bug occurs when src_reg is r0: as described above,
      r0 has been clobbered and the real r0 value is in the ax register.
      
      Therefore, perform this operation on the ax register instead, when
      src_reg is r0.
      
      Fixes: 981f94c3 ("bpf: Add bitwise atomic instructions")
      Signed-off-by: default avatarBrendan Jackman <jackmanb@google.com>
      Signed-off-by: default avatarDaniel Borkmann <daniel@iogearbox.net>
      Acked-by: default avatarKP Singh <kpsingh@kernel.org>
      Link: https://lore.kernel.org/bpf/20210216125307.1406237-1-jackmanb@google.com
      b29dd96b
  3. 21 Feb, 2021 34 commits
    • Dan Carpenter's avatar
      octeontx2-af: Fix an off by one in rvu_dbg_qsize_write() · 3a2eb515
      Dan Carpenter authored
      This code does not allocate enough memory for the NUL terminator so it
      ends up putting it one character beyond the end of the buffer.
      
      Fixes: 8756828a ("octeontx2-af: Add NPA aura and pool contexts to debugfs")
      Signed-off-by: default avatarDan Carpenter <dan.carpenter@oracle.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3a2eb515
    • Linus Torvalds's avatar
      Merge tag 'perf-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d310ec03
      Linus Torvalds authored
      Pull performance event updates from Ingo Molnar:
      
       - Add CPU-PMU support for Intel Sapphire Rapids CPUs
      
       - Extend the perf ABI with PERF_SAMPLE_WEIGHT_STRUCT, to offer
         two-parameter sampling event feedback. Not used yet, but is intended
         for Golden Cove CPU-PMU, which can provide both the instruction
         latency and the cache latency information for memory profiling
         events.
      
       - Remove experimental, default-disabled perfmon-v4 counter_freezing
         support that could only be enabled via a boot option. The hardware is
         hopelessly broken, we'd like to make sure nobody starts relying on
         this, as it would only end in tears.
      
       - Fix energy/power events on Intel SPR platforms
      
       - Simplify the uprobes resume_execution() logic
      
       - Misc smaller fixes.
      
      * tag 'perf-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        perf/x86/rapl: Fix psys-energy event on Intel SPR platform
        perf/x86/rapl: Only check lower 32bits for RAPL energy counters
        perf/x86/rapl: Add msr mask support
        perf/x86/kvm: Add Cascade Lake Xeon steppings to isolation_ucodes[]
        perf/x86/intel: Support CPUID 10.ECX to disable fixed counters
        perf/x86/intel: Add perf core PMU support for Sapphire Rapids
        perf/x86/intel: Filter unsupported Topdown metrics event
        perf/x86/intel: Factor out intel_update_topdown_event()
        perf/core: Add PERF_SAMPLE_WEIGHT_STRUCT
        perf/intel: Remove Perfmon-v4 counter_freezing support
        x86/perf: Use static_call for x86_pmu.guest_get_msrs
        perf/x86/intel/uncore: With > 8 nodes, get pci bus die id from NUMA info
        perf/x86/intel/uncore: Store the logical die id instead of the physical die id.
        x86/kprobes: Do not decode opcode in resume_execution()
      d310ec03
    • Linus Torvalds's avatar
      Merge tag 'sched-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 657bd90c
      Linus Torvalds authored
      Pull scheduler updates from Ingo Molnar:
       "Core scheduler updates:
      
         - Add CONFIG_PREEMPT_DYNAMIC: this in its current form adds the
           preempt=none/voluntary/full boot options (default: full), to allow
           distros to build a PREEMPT kernel but fall back to close to
           PREEMPT_VOLUNTARY (or PREEMPT_NONE) runtime scheduling behavior via
           a boot time selection.
      
           There's also the /debug/sched_debug switch to do this runtime.
      
           This feature is implemented via runtime patching (a new variant of
           static calls).
      
           The scope of the runtime patching can be best reviewed by looking
           at the sched_dynamic_update() function in kernel/sched/core.c.
      
           ( Note that the dynamic none/voluntary mode isn't 100% identical,
             for example preempt-RCU is available in all cases, plus the
             preempt count is maintained in all models, which has runtime
             overhead even with the code patching. )
      
           The PREEMPT_VOLUNTARY/PREEMPT_NONE models, used by the vast
           majority of distributions, are supposed to be unaffected.
      
         - Fix ignored rescheduling after rcu_eqs_enter(). This is a bug that
           was found via rcutorture triggering a hang. The bug is that
           rcu_idle_enter() may wake up a NOCB kthread, but this happens after
           the last generic need_resched() check. Some cpuidle drivers fix it
           by chance but many others don't.
      
           In true 2020 fashion the original bug fix has grown into a 5-patch
           scheduler/RCU fix series plus another 16 RCU patches to address the
           underlying issue of missed preemption events. These are the initial
           fixes that should fix current incarnations of the bug.
      
         - Clean up rbtree usage in the scheduler, by providing & using the
           following consistent set of rbtree APIs:
      
             partial-order; less() based:
               - rb_add(): add a new entry to the rbtree
               - rb_add_cached(): like rb_add(), but for a rb_root_cached
      
             total-order; cmp() based:
               - rb_find(): find an entry in an rbtree
               - rb_find_add(): find an entry, and add if not found
      
               - rb_find_first(): find the first (leftmost) matching entry
               - rb_next_match(): continue from rb_find_first()
               - rb_for_each(): iterate a sub-tree using the previous two
      
         - Improve the SMP/NUMA load-balancer: scan for an idle sibling in a
           single pass. This is a 4-commit series where each commit improves
           one aspect of the idle sibling scan logic.
      
         - Improve the cpufreq cooling driver by getting the effective CPU
           utilization metrics from the scheduler
      
         - Improve the fair scheduler's active load-balancing logic by
           reducing the number of active LB attempts & lengthen the
           load-balancing interval. This improves stress-ng mmapfork
           performance.
      
         - Fix CFS's estimated utilization (util_est) calculation bug that can
           result in too high utilization values
      
        Misc updates & fixes:
      
         - Fix the HRTICK reprogramming & optimization feature
      
         - Fix SCHED_SOFTIRQ raising race & warning in the CPU offlining code
      
         - Reduce dl_add_task_root_domain() overhead
      
         - Fix uprobes refcount bug
      
         - Process pending softirqs in flush_smp_call_function_from_idle()
      
         - Clean up task priority related defines, remove *USER_*PRIO and
           USER_PRIO()
      
         - Simplify the sched_init_numa() deduplication sort
      
         - Documentation updates
      
         - Fix EAS bug in update_misfit_status(), which degraded the quality
           of energy-balancing
      
         - Smaller cleanups"
      
      * tag 'sched-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (51 commits)
        sched,x86: Allow !PREEMPT_DYNAMIC
        entry/kvm: Explicitly flush pending rcuog wakeup before last rescheduling point
        entry: Explicitly flush pending rcuog wakeup before last rescheduling point
        rcu/nocb: Trigger self-IPI on late deferred wake up before user resume
        rcu/nocb: Perform deferred wake up before last idle's need_resched() check
        rcu: Pull deferred rcuog wake up to rcu_eqs_enter() callers
        sched/features: Distinguish between NORMAL and DEADLINE hrtick
        sched/features: Fix hrtick reprogramming
        sched/deadline: Reduce rq lock contention in dl_add_task_root_domain()
        uprobes: (Re)add missing get_uprobe() in __find_uprobe()
        smp: Process pending softirqs in flush_smp_call_function_from_idle()
        sched: Harden PREEMPT_DYNAMIC
        static_call: Allow module use without exposing static_call_key
        sched: Add /debug/sched_preempt
        preempt/dynamic: Support dynamic preempt with preempt= boot option
        preempt/dynamic: Provide irqentry_exit_cond_resched() static call
        preempt/dynamic: Provide preempt_schedule[_notrace]() static calls
        preempt/dynamic: Provide cond_resched() and might_resched() static calls
        preempt: Introduce CONFIG_PREEMPT_DYNAMIC
        static_call: Provide DEFINE_STATIC_CALL_RET0()
        ...
      657bd90c
    • Linus Torvalds's avatar
      Merge tag 'core-mm-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 7b15c27e
      Linus Torvalds authored
      Pull tlb gather updates from Ingo Molnar:
       "Theses fix MM (soft-)dirty bit management in the procfs code & clean
        up the TLB gather API"
      
      * tag 'core-mm-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        x86/ldt: Use tlb_gather_mmu_fullmm() when freeing LDT page-tables
        tlb: arch: Remove empty __tlb_remove_tlb_entry() stubs
        tlb: mmu_gather: Remove start/end arguments from tlb_gather_mmu()
        tlb: mmu_gather: Introduce tlb_gather_mmu_fullmm()
        tlb: mmu_gather: Remove unused start/end arguments from tlb_finish_mmu()
        mm: proc: Invalidate TLB after clearing soft-dirty page state
      7b15c27e
    • Linus Torvalds's avatar
      Merge tag 'locking-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 9eef0233
      Linus Torvalds authored
      Pull locking updates from Ingo Molnar:
       "Core locking primitives updates:
          - Remove mutex_trylock_recursive() from the API - no users left
          - Simplify + constify the futex code a bit
      
        Lockdep updates:
          - Teach lockdep about local_lock_t
          - Add CONFIG_DEBUG_IRQFLAGS=y debug config option to check for
            potentially unsafe IRQ mask restoration patterns. (I.e.
            calling raw_local_irq_restore() with IRQs enabled.)
          - Add wait context self-tests
          - Fix graph lock corner case corrupting internal data structures
          - Fix noinstr annotations
      
        LKMM updates:
          - Simplify the litmus tests
          - Documentation fixes
      
        KCSAN updates:
          - Re-enable KCSAN instrumentation in lib/random32.c
      
        Misc fixes:
          - Don't branch-trace static label APIs
          - DocBook fix
          - Remove stale leftover empty file"
      
      * tag 'locking-core-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (24 commits)
        checkpatch: Don't check for mutex_trylock_recursive()
        locking/mutex: Kill mutex_trylock_recursive()
        s390: Use arch_local_irq_{save,restore}() in early boot code
        lockdep: Noinstr annotate warn_bogus_irq_restore()
        locking/lockdep: Avoid unmatched unlock
        locking/rwsem: Remove empty rwsem.h
        locking/rtmutex: Add missing kernel-doc markup
        futex: Remove unneeded gotos
        futex: Change utime parameter to be 'const ... *'
        lockdep: report broken irq restoration
        jump_label: Do not profile branch annotations
        locking: Add Reviewers
        locking/selftests: Add local_lock inversion tests
        locking/lockdep: Exclude local_lock_t from IRQ inversions
        locking/lockdep: Clean up check_redundant() a bit
        locking/lockdep: Add a skip() function to __bfs()
        locking/lockdep: Mark local_lock_t
        locking/selftests: More granular debug_locks_verbose
        lockdep/selftest: Add wait context selftests
        tools/memory-model: Fix typo in klitmus7 compatibility table
        ...
      9eef0233
    • Linus Torvalds's avatar
      Merge tag 'core-rcu-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · d089f48f
      Linus Torvalds authored
      Pull RCU updates from Ingo Molnar:
       "These are the latest RCU updates for v5.12:
      
         - Documentation updates.
      
         - Miscellaneous fixes.
      
         - kfree_rcu() updates: Addition of mem_dump_obj() to provide
           allocator return addresses to more easily locate bugs. This has a
           couple of RCU-related commits, but is mostly MM. Was pulled in with
           akpm's agreement.
      
         - Per-callback-batch tracking of numbers of callbacks, which enables
           better debugging information and smarter reactions to large numbers
           of callbacks.
      
         - The first round of changes to allow CPUs to be runtime switched
           from and to callback-offloaded state.
      
         - CONFIG_PREEMPT_RT-related changes.
      
         - RCU CPU stall warning updates.
      
         - Addition of polling grace-period APIs for SRCU.
      
         - Torture-test and torture-test scripting updates, including a
           "torture everything" script that runs rcutorture, locktorture,
           scftorture, rcuscale, and refscale. Plus does an allmodconfig
           build.
      
         - nolibc fixes for the torture tests"
      
      * tag 'core-rcu-2021-02-17' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (130 commits)
        percpu_ref: Dump mem_dump_obj() info upon reference-count underflow
        rcu: Make call_rcu() print mem_dump_obj() info for double-freed callback
        mm: Make mem_obj_dump() vmalloc() dumps include start and length
        mm: Make mem_dump_obj() handle vmalloc() memory
        mm: Make mem_dump_obj() handle NULL and zero-sized pointers
        mm: Add mem_dump_obj() to print source of memory block
        tools/rcutorture: Fix position of -lgcc in mkinitrd.sh
        tools/nolibc: Fix position of -lgcc in the documented example
        tools/nolibc: Emit detailed error for missing alternate syscall number definitions
        tools/nolibc: Remove incorrect definitions of __ARCH_WANT_*
        tools/nolibc: Get timeval, timespec and timezone from linux/time.h
        tools/nolibc: Implement poll() based on ppoll()
        tools/nolibc: Implement fork() based on clone()
        tools/nolibc: Make getpgrp() fall back to getpgid(0)
        tools/nolibc: Make dup2() rely on dup3() when available
        tools/nolibc: Add the definition for dup()
        rcutorture: Add rcutree.use_softirq=0 to RUDE01 and TASKS01
        torture: Maintain torture-specific set of CPUs-online books
        torture: Clean up after torture-test CPU hotplugging
        rcutorture: Make object_debug also double call_rcu() heap object
        ...
      d089f48f
    • Linus Torvalds's avatar
      Merge tag 'timers-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · 3f6ec19f
      Linus Torvalds authored
      Pull timer updates from Thomas Gleixner:
       "Time and timer updates:
      
         - Instead of new drivers remove tango, sirf, u300 and atlas drivers
      
         - Add suspend/resume support for microchip pit64b
      
         - The usual fixes, improvements and cleanups here and there"
      
      * tag 'timers-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        timens: Delete no-op time_ns_init()
        alarmtimer: Update kerneldoc
        clocksource/drivers/timer-microchip-pit64b: Add clocksource suspend/resume
        clocksource/drivers/prima: Remove sirf prima driver
        clocksource/drivers/atlas: Remove sirf atlas driver
        clocksource/drivers/tango: Remove tango driver
        clocksource/drivers/u300: Remove the u300 driver
        dt-bindings: timer: nuvoton: Clarify that interrupt of timer 0 should be specified
        clocksource/drivers/davinci: Move pr_fmt() before the includes
        clocksource/drivers/efm32: Drop unused timer code
      3f6ec19f
    • Linus Torvalds's avatar
      Merge tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip · b5183bc9
      Linus Torvalds authored
      Pull irq updates from Thomas Gleixner:
       "Updates for the irq subsystem:
      
         - The usual new irq chip driver (Realtek RTL83xx)
      
         - Removal of sirfsoc and tango irq chip drivers
      
         - Conversion of the sun6i chip support to hierarchical irq domains
      
         - The usual fixes, improvements and cleanups all over the place"
      
      * tag 'irq-core-2021-02-15' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
        irqchip/imx: IMX_INTMUX should not default to y, unconditionally
        irqchip/loongson-pch-msi: Use bitmap_zalloc() to allocate bitmap
        irqchip/csky-mpintc: Prevent selection on unsupported platforms
        irqchip: Add support for Realtek RTL838x/RTL839x interrupt controller
        dt-bindings: interrupt-controller: Add Realtek RTL838x/RTL839x support
        irqchip/ls-extirq: add IRQCHIP_SKIP_SET_WAKE to the irqchip flags
        genirq: Use new tasklet API for resend_tasklet
        dt-bindings: qcom,pdc: Add compatible for SM8350
        dt-bindings: qcom,pdc: Add compatible for SM8250
        irqchip/sun6i-r: Add wakeup support
        irqchip/sun6i-r: Use a stacked irqchip driver
        dt-bindings: irq: sun6i-r: Add a compatible for the H3
        dt-bindings: irq: sun6i-r: Split the binding from sun7i-nmi
        irqchip/gic-v3: Fix typos in PMR/RPR SCR_EL3.FIQ handling explanation
        irqchip: Remove sirfsoc driver
        irqchip: Remove sigma tango driver
      b5183bc9
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block · 5bbb336b
      Linus Torvalds authored
      Pull io_uring updates from Jens Axboe:
       "Highlights from this cycles are things like request recycling and
        task_work optimizations, which net us anywhere from 10-20% of speedups
        on workloads that mostly are inline.
      
        This work was originally done to put io_uring under memcg, which adds
        considerable overhead. But it's a really nice win as well. Also worth
        highlighting is the LOOKUP_CACHED work in the VFS, and using it in
        io_uring. Greatly speeds up the fast path for file opens.
      
        Summary:
      
         - Put io_uring under memcg protection. We accounted just the rings
           themselves under rlimit memlock before, now we account everything.
      
         - Request cache recycling, persistent across invocations (Pavel, me)
      
         - First part of a cleanup/improvement to buffer registration (Bijan)
      
         - SQPOLL fixes (Hao)
      
         - File registration NULL pointer fixup (Dan)
      
         - LOOKUP_CACHED support for io_uring
      
         - Disable /proc/thread-self/ for io_uring, like we do for /proc/self
      
         - Add Pavel to the io_uring MAINTAINERS entry
      
         - Tons of code cleanups and optimizations (Pavel)
      
         - Support for skip entries in file registration (Noah)"
      
      * tag 'for-5.12/io_uring-2021-02-17' of git://git.kernel.dk/linux-block: (103 commits)
        io_uring: tctx->task_lock should be IRQ safe
        proc: don't allow async path resolution of /proc/thread-self components
        io_uring: kill cached requests from exiting task closing the ring
        io_uring: add helper to free all request caches
        io_uring: allow task match to be passed to io_req_cache_free()
        io-wq: clear out worker ->fs and ->files
        io_uring: optimise io_init_req() flags setting
        io_uring: clean io_req_find_next() fast check
        io_uring: don't check PF_EXITING from syscall
        io_uring: don't split out consume out of SQE get
        io_uring: save ctx put/get for task_work submit
        io_uring: don't duplicate io_req_task_queue()
        io_uring: optimise SQPOLL mm/files grabbing
        io_uring: optimise out unlikely link queue
        io_uring: take compl state from submit state
        io_uring: inline io_complete_rw_common()
        io_uring: move res check out of io_rw_reissue()
        io_uring: simplify iopoll reissuing
        io_uring: clean up io_req_free_batch_finish()
        io_uring: move submit side state closer in the ring
        ...
      5bbb336b
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/drivers-2021-02-17' of git://git.kernel.dk/linux-block · 9820b4dc
      Linus Torvalds authored
      Pull block driver updates from Jens Axboe:
      
       - Remove the skd driver. It's been EOL for a long time (Damien)
      
       - NVMe pull requests
            - fix multipath handling of ->queue_rq errors (Chao Leng)
            - nvmet cleanups (Chaitanya Kulkarni)
            - add a quirk for buggy Amazon controller (Filippo Sironi)
            - avoid devm allocations in nvme-hwmon that don't interact well
              with fabrics (Hannes Reinecke)
            - sysfs cleanups (Jiapeng Chong)
            - fix nr_zones for multipath (Keith Busch)
            - nvme-tcp crash fix for no-data commands (Sagi Grimberg)
            - nvmet-tcp fixes (Sagi Grimberg)
            - add a missing __rcu annotation (Christoph)
            - failed reconnect fixes (Chao Leng)
            - various tracing improvements (Michal Krakowiak, Johannes
              Thumshirn)
            - switch the nvmet-fc assoc_list to use RCU protection (Leonid
              Ravich)
            - resync the status codes with the latest spec (Max Gurtovoy)
            - minor nvme-tcp improvements (Sagi Grimberg)
            - various cleanups (Rikard Falkeborn, Minwoo Im, Chaitanya
              Kulkarni, Israel Rukshin)
      
       - Floppy O_NDELAY fix (Denis)
      
       - MD pull request
            - raid5 chunk_sectors fix (Guoqing)
      
       - Use lore links (Kees)
      
       - Use DEFINE_SHOW_ATTRIBUTE for nbd (Liao)
      
       - loop lock scaling (Pavel)
      
       - mtip32xx PCI fixes (Bjorn)
      
       - bcache fixes (Kai, Dongdong)
      
       - Misc fixes (Tian, Yang, Guoqing, Joe, Andy)
      
      * tag 'for-5.12/drivers-2021-02-17' of git://git.kernel.dk/linux-block: (64 commits)
        lightnvm: pblk: Replace guid_copy() with export_guid()/import_guid()
        lightnvm: fix unnecessary NULL check warnings
        nvme-tcp: fix crash triggered with a dataless request submission
        block: Replace lkml.org links with lore
        nbd: Convert to DEFINE_SHOW_ATTRIBUTE
        nvme: add 48-bit DMA address quirk for Amazon NVMe controllers
        nvme-hwmon: rework to avoid devm allocation
        nvmet: remove else at the end of the function
        nvmet: add nvmet_req_subsys() helper
        nvmet: use min of device_path and disk len
        nvmet: use invalid cmd opcode helper
        nvmet: use invalid cmd opcode helper
        nvmet: add helper to report invalid opcode
        nvmet: remove extra variable in id-ns handler
        nvmet: make nvmet_find_namespace() req based
        nvmet: return uniform error for invalid ns
        nvmet: set status to 0 in case for invalid nsid
        nvmet-fc: add a missing __rcu annotation to nvmet_fc_tgt_assoc.queues
        nvme-multipath: set nr_zones for zoned namespaces
        nvmet-tcp: fix potential race of tcp socket closing accept_work
        ...
      9820b4dc
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block · 582cd91f
      Linus Torvalds authored
      Pull core block updates from Jens Axboe:
       "Another nice round of removing more code than what is added, mostly
        due to Christoph's relentless pursuit of tech debt removal/cleanups.
        This pull request contains:
      
         - Two series of BFQ improvements (Paolo, Jan, Jia)
      
         - Block iov_iter improvements (Pavel)
      
         - bsg error path fix (Pan)
      
         - blk-mq scheduler improvements (Jan)
      
         - -EBUSY discard fix (Jan)
      
         - bvec allocation improvements (Ming, Christoph)
      
         - bio allocation and init improvements (Christoph)
      
         - Store bdev pointer in bio instead of gendisk + partno (Christoph)
      
         - Block trace point cleanups (Christoph)
      
         - hard read-only vs read-only split (Christoph)
      
         - Block based swap cleanups (Christoph)
      
         - Zoned write granularity support (Damien)
      
         - Various fixes/tweaks (Chunguang, Guoqing, Lei, Lukas, Huhai)"
      
      * tag 'for-5.12/block-2021-02-17' of git://git.kernel.dk/linux-block: (104 commits)
        mm: simplify swapdev_block
        sd_zbc: clear zone resources for non-zoned case
        block: introduce blk_queue_clear_zone_settings()
        zonefs: use zone write granularity as block size
        block: introduce zone_write_granularity limit
        block: use blk_queue_set_zoned in add_partition()
        nullb: use blk_queue_set_zoned() to setup zoned devices
        nvme: cleanup zone information initialization
        block: document zone_append_max_bytes attribute
        block: use bi_max_vecs to find the bvec pool
        md/raid10: remove dead code in reshape_request
        block: mark the bio as cloned in bio_iov_bvec_set
        block: set BIO_NO_PAGE_REF in bio_iov_bvec_set
        block: remove a layer of indentation in bio_iov_iter_get_pages
        block: turn the nr_iovecs argument to bio_alloc* into an unsigned short
        block: remove the 1 and 4 vec bvec_slabs entries
        block: streamline bvec_alloc
        block: factor out a bvec_alloc_gfp helper
        block: move struct biovec_slab to bio.c
        block: reuse BIO_INLINE_VECS for integrity bvecs
        ...
      582cd91f
    • Linus Torvalds's avatar
      Merge tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block · bd018bba
      Linus Torvalds authored
      Pull libata updates from Jens Axboe:
       "Regulartors management addition from Florian, and a trivial change to
        avoid comma separated statements from Joe"
      
      * tag 'for-5.12/libata-2021-02-17' of git://git.kernel.dk/linux-block:
        ata: Avoid comma separated statements
        ata: ahci_brcm: Add back regulators management
      bd018bba
    • Linus Torvalds's avatar
      Merge tag 'oprofile-removal-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux · 24880bef
      Linus Torvalds authored
      Pull oprofile and dcookies removal from Viresh Kumar:
       "Remove oprofile and dcookies support
      
        The 'oprofile' user-space tools don't use the kernel OPROFILE support
        any more, and haven't in a long time. User-space has been converted to
        the perf interfaces.
      
        The dcookies stuff is only used by the oprofile code. Now that
        oprofile's support is getting removed from the kernel, there is no
        need for dcookies as well.
      
        Remove kernel's old oprofile and dcookies support"
      
      * tag 'oprofile-removal-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/vireshk/linux:
        fs: Remove dcookies support
        drivers: Remove CONFIG_OPROFILE support
        arch: xtensa: Remove CONFIG_OPROFILE support
        arch: x86: Remove CONFIG_OPROFILE support
        arch: sparc: Remove CONFIG_OPROFILE support
        arch: sh: Remove CONFIG_OPROFILE support
        arch: s390: Remove CONFIG_OPROFILE support
        arch: powerpc: Remove oprofile
        arch: powerpc: Stop building and using oprofile
        arch: parisc: Remove CONFIG_OPROFILE support
        arch: mips: Remove CONFIG_OPROFILE support
        arch: microblaze: Remove CONFIG_OPROFILE support
        arch: ia64: Remove rest of perfmon support
        arch: ia64: Remove CONFIG_OPROFILE support
        arch: hexagon: Don't select HAVE_OPROFILE
        arch: arc: Remove CONFIG_OPROFILE support
        arch: arm: Remove CONFIG_OPROFILE support
        arch: alpha: Remove CONFIG_OPROFILE support
      24880bef
    • Linus Torvalds's avatar
      Merge tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · b52bb135
      Linus Torvalds authored
      Pull xfs updates from Darrick Wong:
       "There's a lot going on this time, which seems about right for this
        drama-filled year.
      
        Community developers added some code to speed up freezing when
        read-only workloads are still running, refactored the logging code,
        added checks to prevent file extent counter overflow, reduced iolock
        cycling to speed up fsync and gc scans, and started the slow march
        towards supporting filesystem shrinking.
      
        There's a huge refactoring of the internal speculative preallocation
        garbage collection code which fixes a bunch of bugs, makes the gc
        scheduling per-AG and hence multithreaded, and standardizes the retry
        logic when we try to reserve space or quota, can't, and want to
        trigger a gc scan. We also enable multithreaded quotacheck to reduce
        mount times further. This is also preparation for background file gc,
        which may or may not land for 5.13.
      
        We also fixed some deadlocks in the rename code, fixed a quota
        accounting leak when FSSETXATTR fails, restored the behavior that
        write faults to an mmap'd region actually cause a SIGBUS, fixed a bug
        where sgid directory inheritance wasn't quite working properly, and
        fixed a bug where symlinks weren't working properly in ecryptfs. We
        also now advertise the inode btree counters feature that was
        introduced two cycles ago.
      
        Summary:
      
         - Fix an ABBA deadlock when renaming files on overlayfs.
      
         - Make sure that we can't overflow the inode extent counters when
           adding to or removing extents from a file.
      
         - Make directory sgid inheritance work the same way as all the other
           filesystems.
      
         - Don't drain the buffer cache on freeze and ro remount, which should
           reduce the amount of time if read-only workloads are continuing
           during the freeze.
      
         - Fix a bug where symlink size isn't reported to the vfs in ecryptfs.
      
         - Disentangle log cleaning from log covering. This refactoring sets
           us up for future changes to the log, though for now it simply means
           that we can use covering for freezes, and cleaning becomes
           something we only do at unmount.
      
         - Speed up file fsyncs by reducing iolock cycling.
      
         - Fix delalloc blocks leaking when changing the project id fails
           because of input validation errors in FSSETXATTR.
      
         - Fix oversized quota reservation when converting unwritten extents
           during a DAX write.
      
         - Create a transaction allocation helper function to standardize the
           idiom of allocating a transaction, reserving blocks, locking
           inodes, and reserving quota. Replace all the open-coded logic for
           file creation, file ownership changes, and file modifications to
           use them.
      
         - Actually shut down the fs if the incore quota reservations get
           corrupted.
      
         - Fix background block garbage collection scans to not block and to
           actually clean out CoW staging extents properly.
      
         - Run block gc scans when we run low on project quota.
      
         - Use the standardized transaction allocation helpers to make it so
           that ENOSPC and EDQUOT errors during reservation will back out,
           invoke the block gc scanner, and try again. This is preparation for
           introducing background inode garbage collection in the next cycle.
      
         - Combine speculative post-EOF block garbage collection with
           speculative copy on write block garbage collection.
      
         - Enable multithreaded quotacheck.
      
         - Allow sysadmins to tweak the CPU affinities and maximum concurrency
           levels of quotacheck and background blockgc worker pools.
      
         - Expose the inode btree counter feature in the fs geometry ioctl.
      
         - Cleanups of the growfs code in preparation for starting work on
           filesystem shrinking.
      
         - Fix all the bloody gcc warnings that the maintainer knows about. :P
      
         - Fix a RST syntax error.
      
         - Don't trigger bmbt corruption assertions after the fs shuts down.
      
         - Restore behavior of forcing SIGBUS on a shut down filesystem when
           someone triggers a mmap write fault (or really, any buffered
           write)"
      
      * tag 'xfs-5.12-merge-5' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux: (85 commits)
        xfs: consider shutdown in bmapbt cursor delete assert
        xfs: fix boolreturn.cocci warnings
        xfs: restore shutdown check in mapped write fault path
        xfs: fix rst syntax error in admin guide
        xfs: fix incorrect root dquot corruption error when switching group/project quota types
        xfs: get rid of xfs_growfs_{data,log}_t
        xfs: rename `new' to `delta' in xfs_growfs_data_private()
        libxfs: expose inobtcount in xfs geometry
        xfs: don't bounce the iolock between free_{eof,cow}blocks
        xfs: expose the blockgc workqueue knobs publicly
        xfs: parallelize block preallocation garbage collection
        xfs: rename block gc start and stop functions
        xfs: only walk the incore inode tree once per blockgc scan
        xfs: consolidate the eofblocks and cowblocks workers
        xfs: consolidate incore inode radix tree posteof/cowblocks tags
        xfs: remove trivial eof/cowblocks functions
        xfs: hide xfs_icache_free_cowblocks
        xfs: hide xfs_icache_free_eofblocks
        xfs: relocate the eofb/cowb workqueue functions
        xfs: set WQ_SYSFS on all workqueues in debug mode
        ...
      b52bb135
    • Linus Torvalds's avatar
      Merge tag 'iomap-5.12-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux · 4f016a31
      Linus Torvalds authored
      Pull iomap updates from Darrick Wong:
       "The big change in this cycle is some new code to make it possible for
        XFS to try unaligned directio overwrites without taking locks. If the
        block is fully written and within EOF (i.e. doesn't require any
        further fs intervention) then we can let the unlocked write proceed.
        If not, we fall back to synchronizing direct writes.
      
        Summary:
      
         - Adjust the final parameter of iomap_dio_rw.
      
         - Add a new flag to request that iomap directio writes return EAGAIN
           if the write is not a pure overwrite within EOF; this will be used
           to reduce lock contention with unaligned direct writes on XFS.
      
         - Amend XFS' directio code to eliminate exclusive locking for
           unaligned direct writes if the circumstances permit"
      
      * tag 'iomap-5.12-merge-2' of git://git.kernel.org/pub/scm/fs/xfs/xfs-linux:
        xfs: reduce exclusive locking on unaligned dio
        xfs: split the unaligned DIO write code out
        xfs: improve the reflink_bounce_dio_write tracepoint
        xfs: simplify the read/write tracepoints
        xfs: remove the buffered I/O fallback assert
        xfs: cleanup the read/write helper naming
        xfs: make xfs_file_aio_write_checks IOCB_NOWAIT-aware
        xfs: factor out a xfs_ilock_iocb helper
        iomap: add a IOMAP_DIO_OVERWRITE_ONLY flag
        iomap: pass a flags argument to iomap_dio_rw
        iomap: rename the flags variable in __iomap_dio_rw
      4f016a31
    • Linus Torvalds's avatar
      Merge tag 'pstore-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux · f0236163
      Linus Torvalds authored
      Pull pstore fix from Kees Cook:
       "Fix a CONFIG typo (Jiri Bohac)"
      
      * tag 'pstore-v5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/kees/linux:
        pstore: Fix typo in compression option name
      f0236163
    • Linus Torvalds's avatar
      Merge tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt · f7b36dc5
      Linus Torvalds authored
      Pull fsverity updates from Eric Biggers:
       "Add an ioctl which allows reading fs-verity metadata from a file.
      
        This is useful when a file with fs-verity enabled needs to be served
        somewhere, and the other end wants to do its own fs-verity compatible
        verification of the file. See the commit messages for details.
      
        This new ioctl has been tested using new xfstests I've written for it"
      
      * tag 'fsverity-for-linus' of git://git.kernel.org/pub/scm/fs/fscrypt/fscrypt:
        fs-verity: support reading signature with ioctl
        fs-verity: support reading descriptor with ioctl
        fs-verity: support reading Merkle tree with ioctl
        fs-verity: add FS_IOC_READ_VERITY_METADATA ioctl
        fs-verity: don't pass whole descriptor to fsverity_verify_signature()
        fs-verity: factor out fsverity_get_descriptor()
      f7b36dc5
    • Linus Torvalds's avatar
      Merge tag 'nfsd-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux · 99f1a587
      Linus Torvalds authored
      Pull nfsd updates from Chuck Lever:
      
       - Update NFSv2 and NFSv3 XDR decoding functions
      
       - Further improve support for re-exporting NFS mounts
      
       - Convert NFSD stats to per-CPU counters
      
       - Add batch Receive posting to the server's RPC/RDMA transport
      
      * tag 'nfsd-5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/cel/linux: (65 commits)
        nfsd: skip some unnecessary stats in the v4 case
        nfs: use change attribute for NFS re-exports
        NFSv4_2: SSC helper should use its own config.
        nfsd: cstate->session->se_client -> cstate->clp
        nfsd: simplify nfsd4_check_open_reclaim
        nfsd: remove unused set_client argument
        nfsd: find_cpntf_state cleanup
        nfsd: refactor set_client
        nfsd: rename lookup_clientid->set_client
        nfsd: simplify nfsd_renew
        nfsd: simplify process_lock
        nfsd4: simplify process_lookup1
        SUNRPC: Correct a comment
        svcrdma: DMA-sync the receive buffer in svc_rdma_recvfrom()
        svcrdma: Reduce Receive doorbell rate
        svcrdma: Deprecate stat variables that are no longer used
        svcrdma: Restore read and write stats
        svcrdma: Convert rdma_stat_sq_starve to a per-CPU counter
        svcrdma: Convert rdma_stat_recv to a per-CPU counter
        svcrdma: Refactor svc_rdma_init() and svc_rdma_clean_up()
        ...
      99f1a587
    • Linus Torvalds's avatar
      Merge tag 'erofs-for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs · 681e2abe
      Linus Torvalds authored
      Pull erofs updates from Gao Xiang:
       "This contains a somewhat important but rarely reproduced fix reported
        month ago for platforms which have weak memory model (e.g. arm64).
      
        The root cause is that test_bit/set_bit atomic operations are actually
        implemented in relaxed forms, and uninitialized fields governed by an
        atomic bit could be observed in advance due to memory reordering thus
        memory barrier pairs should be used.
      
        There is also a trivial fix of crafted blkszbits generated by
        syzkaller.
      
        Summary:
      
         - fix shift-out-of-bounds of crafted blkszbits generated by syzkaller
      
         - ensure initialized fields can only be observed after bit is set"
      
      * tag 'erofs-for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs:
        erofs: initialized fields can only be observed after bit is set
        erofs: fix shift-out-of-bounds of blkszbits
      681e2abe
    • Linus Torvalds's avatar
      Merge tag 'f2fs-for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs · 8b42fe12
      Linus Torvalds authored
      Pull f2fs updates from Jaegeuk Kim:
       "We've added two major features: 1) compression level and 2)
        checkpoint_merge, in this round.
      
        Compression level expands 'compress_algorithm' mount option to accept
        parameter as format of <algorithm>:<level>, by this way, it gives a
        way to allow user to do more specified config on lz4 and zstd
        compression level, then f2fs compression can provide higher compress
        ratio.
      
        checkpoint_merge creates a kernel daemon and makes it to merge
        concurrent checkpoint requests as much as possible to eliminate
        redundant checkpoint issues. Plus, we can eliminate the sluggish issue
        caused by slow checkpoint operation when the checkpoint is done in a
        process context in a cgroup having low i/o budget and cpu shares.
      
        Enhancements:
         - add compress level for lz4 and zstd in mount option
         - checkpoint_merge mount option
         - deprecate f2fs_trace_io
      
        Bug fixes:
         - flush data when enabling checkpoint back
         - handle corner cases of mount options
         - missing ACL update and lock for I_LINKABLE flag
         - attach FIEMAP_EXTENT_MERGED in f2fs_fiemap
         - fix potential deadlock in compression flow
         - fix wrong submit_io condition
      
        As usual, we've cleaned up many code flows and fixed minor bugs"
      
      * tag 'f2fs-for-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs: (32 commits)
        Documentation: f2fs: fix typo s/automaic/automatic
        f2fs: give a warning only for readonly partition
        f2fs: don't grab superblock freeze for flush/ckpt thread
        f2fs: add ckpt_thread_ioprio sysfs node
        f2fs: introduce checkpoint_merge mount option
        f2fs: relocate inline conversion from mmap() to mkwrite()
        f2fs: fix a wrong condition in __submit_bio
        f2fs: remove unnecessary initialization in xattr.c
        f2fs: fix to avoid inconsistent quota data
        f2fs: flush data when enabling checkpoint back
        f2fs: deprecate f2fs_trace_io
        f2fs: Remove readahead collision detection
        f2fs: remove unused stat_{inc, dec}_atomic_write
        f2fs: introduce sb_status sysfs node
        f2fs: fix to use per-inode maxbytes
        f2fs: compress: fix potential deadlock
        libfs: unexport generic_ci_d_compare() and generic_ci_d_hash()
        f2fs: fix to set/clear I_LINKABLE under i_lock
        f2fs: fix null page reference in redirty_blocks
        f2fs: clean up post-read processing
        ...
      8b42fe12
    • Linus Torvalds's avatar
      Merge tag 'for-5.12-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · 6f3952cb
      Linus Torvalds authored
      Pull btrfs updates from David Sterba:
       "This brings updates of space handling, performance improvements or bug
        fixes. The subpage block size and zoned mode features have reached
        state where they're usable but with limitations.
      
        Performance or related:
      
         - do not block on deleted block group mutex in the cleaner, avoids
           some long stalls
      
         - improved flushing: make it work better with ticket space
           reservations and avoid excessive transaction commits in some
           scenarios, slightly improves throughput for random write load
      
         - preemptive background flushing: separate the logic from ticket
           reservations, improve the accounting and decisions when to flush in
           low space conditions
      
         - less lock contention related to running delayed refs, let just one
           thread do the flushing when there are many inside transaction
           commit
      
         - dbench workload improvements: avoid unnecessary work when logging
           inodes, fewer fallbacks to transaction commit and thus less waiting
           for it (+7% throughput, -20% latency)
      
        Core:
      
         - subpage block size
            - currently read-only support
            - refactor and generalize code where sectorsize is assumed to be
              page size, add the subpage handling everywhere
            - the read-write support is on the way, page sizes are still
              limited to 4K or 64K
      
         - zoned mode, first working version but with limitations
            - SMR/ZBC/ZNS friendly allocation mode, utilizing the "no fixed
              location for structures" and chunked allocation
            - superblock as the only fixed data structure needs special
              handling, uses 2 consecutive zones as a ring buffer
            - tree-log support with a dedicated block group to avoid unordered
              writes
            - emulated zones on non-zoned devices
            - not yet working
            - all non-single block group profiles, requires more zone write
              pointer synchronization between the multiple block groups
            - fitrim due to dependency on space cache, can be implemented
      
        Fixes:
      
         - ref-verify: proper tree owner and node level tracking
      
         - fix pinned byte accounting, causing some early ENOSPC now more
           likely due to other changes in delayed refs
      
        Other:
      
         - error handling fixes and improvements
      
         - more error injection points
      
         - more function documentation
      
         - more and updated tracepoints
      
         - subset of W=1 checked by default
      
         - update comments to allow more automatic kdoc parameter checks"
      
      * tag 'for-5.12-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux: (144 commits)
        btrfs: zoned: enable to mount ZONED incompat flag
        btrfs: zoned: deal with holes writing out tree-log pages
        btrfs: zoned: reorder log node allocation on zoned filesystem
        btrfs: zoned: serialize log transaction on zoned filesystems
        btrfs: zoned: extend zoned allocator to use dedicated tree-log block group
        btrfs: split alloc_log_tree()
        btrfs: zoned: relocate block group to repair IO failure in zoned filesystems
        btrfs: zoned: enable relocation on a zoned filesystem
        btrfs: zoned: support dev-replace in zoned filesystems
        btrfs: zoned: implement copying for zoned device-replace
        btrfs: zoned: implement cloning for zoned device-replace
        btrfs: zoned: mark block groups to copy for device-replace
        btrfs: zoned: do not use async metadata checksum on zoned filesystems
        btrfs: zoned: wait for existing extents before truncating
        btrfs: zoned: serialize metadata IO
        btrfs: zoned: introduce dedicated data write path for zoned filesystems
        btrfs: zoned: enable zone append writing for direct IO
        btrfs: zoned: use ZONE_APPEND write for zoned mode
        btrfs: save irq flags when looking up an ordered extent
        btrfs: zoned: cache if block group is on a sequential zone
        ...
      6f3952cb
    • Linus Torvalds's avatar
      Merge tag 'affs-for-5.12-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux · f9d58de2
      Linus Torvalds authored
      Pull AFFS fix from David Sterba:
       "One minor fix for error handling in rename exchange"
      
      * tag 'affs-for-5.12-tag' of git://git.kernel.org/pub/scm/linux/kernel/git/kdave/linux:
        fs/affs: release old buffer head on error path
      f9d58de2
    • Linus Torvalds's avatar
      Merge tag 'jfs-5.12' of git://github.com/kleikamp/linux-shaggy · d88e8b67
      Linus Torvalds authored
      Pull jfs updates from David Kleikamp:
       "A few jfs fixes"
      
      * tag 'jfs-5.12' of git://github.com/kleikamp/linux-shaggy:
        fs/jfs: fix potential integer overflow on shift of a int
        jfs: turn diLog(), dataLog() and txLog() into void functions
        JFS: more checks for invalid superblock
      d88e8b67
    • Linus Torvalds's avatar
      Merge tag 'locks-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux · 961a9b51
      Linus Torvalds authored
      Pull fcntl fix from Jeff Layton.
      
      * tag 'locks-v5.12' of git://git.kernel.org/pub/scm/linux/kernel/git/jlayton/linux:
        fcntl: make F_GETOWN(EX) return 0 on dead owner task
      961a9b51
    • Linus Torvalds's avatar
      Merge branch 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · c57b1f0a
      Linus Torvalds authored
      Pull namei updates from Al Viro:
       "Most of that pile is LOOKUP_CACHED series; the rest is a couple of
        misc cleanups in the general area...
      
        There's a minor bisect hazard in the end of series, and normally I
        would've just folded the fix into the previous commit, but this branch
        is shared with Jens' tree, with stuff on top of it in there, so that
        would've required rebases outside of vfs.git"
      
      * 'work.namei' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        fix handling of nd->depth on LOOKUP_CACHED failures in try_to_unlazy*
        fs: expose LOOKUP_CACHED through openat2() RESOLVE_CACHED
        fs: add support for LOOKUP_CACHED
        saner calling conventions for unlazy_child()
        fs: make unlazy_walk() error handling consistent
        fs/namei.c: Remove unlikely of status being -ECHILD in lookup_fast()
        do_tmpfile(): don't mess with finish_open()
      c57b1f0a
    • Linus Torvalds's avatar
      Merge branch 'work.elf-compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 591fd30e
      Linus Torvalds authored
      Pull ELF compat updates from Al Viro:
       "Sanitizing ELF compat support, especially for triarch architectures:
      
         - X32 handling cleaned up
      
         - MIPS64 uses compat_binfmt_elf.c both for O32 and N32 now
      
         - Kconfig side of things regularized
      
        Eventually I hope to have compat_binfmt_elf.c killed, with both native
        and compat built from fs/binfmt_elf.c, with -DELF_BITS={64,32} passed
        by kbuild, but that's a separate story - not included here"
      
      * 'work.elf-compat' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        get rid of COMPAT_ELF_EXEC_PAGESIZE
        compat_binfmt_elf: don't bother with undef of ELF_ARCH
        Kconfig: regularize selection of CONFIG_BINFMT_ELF
        mips compat: switch to compat_binfmt_elf.c
        mips: don't bother with ELF_CORE_EFLAGS
        mips compat: don't bother with ELF_ET_DYN_BASE
        mips: KVM_GUEST makes no sense for 64bit builds...
        mips: kill unused definitions in binfmt_elf[on]32.c
        mips binfmt_elf*32.c: use elfcore-compat.h
        x32: make X32, !IA32_EMULATION setups able to execute x32 binaries
        [amd64] clean PRSTATUS_SIZE/SET_PR_FPVALID up properly
        elf_prstatus: collect the common part (everything before pr_reg) into a struct
        binfmt_elf: partially sanitize PRSTATUS_SIZE and SET_PR_FPVALID
      591fd30e
    • Linus Torvalds's avatar
      Merge branch 'work.sendfile' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs · 054560e9
      Linus Torvalds authored
      Pull sendfile updates from Al Viro:
       "Make sendfile() to pipe destination do the right thing, should make
        'fs/pipe: allow sendfile() to pipe again' redundant"
      
      * 'work.sendfile' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs:
        teach sendfile(2) to handle send-to-pipe directly
        take the guts of file-to-pipe splice into a helper function
        do_splice_to(): move the logics for limiting the read length in
      054560e9
    • Linus Torvalds's avatar
      Merge tag 'pnp-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 55f62bc8
      Linus Torvalds authored
      Pull PNP updates from Rafael Wysocki:
       "These make two janitorial changes of the code.
      
        Specifics:
      
         - Add printf annotation to a logging function (Tom Rix)
      
         - Use DEFINE_SPINLOCK() for defining a spinlock so as to initialize
           it statically (Zheng Yongjun)"
      
      * tag 'pnp-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        PNP: pnpbios: Use DEFINE_SPINLOCK() for spinlock
        PNP: add printf attribute to log function
      55f62bc8
    • Linus Torvalds's avatar
      Merge tag 'acpi-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 3c8f504b
      Linus Torvalds authored
      Pull ACPI updates from Rafael Wysocki:
       "These update the ACPICA code in the kernel to upstream revision
        20210105, fix and clean up the handling of device properties, add
        support for setting global profile of the platform, clean up device
        enumeration, the CPPC library, the APEI support and more, update the
        documentation, consolidate the printing of messages in several places
        and make assorted janitorial changes.
      
        Specifics:
      
         - Update ACPICA code in the kernel to upstream revision 20201113 with
           changes as follows:
      
            * Remove the MTMR (Mid-Timer) table (Al Stone).
            * Remove the VRTC table (Al Stone).
            * Add type casts for string functions (Bob Moore).
            * Update all copyrights to 2021 (Bob Moore).
            * Fix exception code class checks (Maximilian Luz).
            * Clean up exception code class checks (Maximilian Luz).
            * Fix -Wfallthrough (Nick Desaulniers).
      
         - Add support for setting and reading global profile of the platform
           along with documentation (Mark Pearson, Hans de Goede, Jiaxun
           Yang).
      
         - Fix fwnode properties matching and clean up the code handling
           device properties and its documentation (Rafael Wysocki, Andy
           Shevchenko).
      
         - Clean up ACPI-based device enumeration code (Rafael Wysocki).
      
         - Clean up the CPPC support library code (Ionela Voinescu).
      
         - Clean up the APEI support code (Yang Li, Yazen Ghannam).
      
         - Update GPIO-related properties documentation (Flavio Suligoi).
      
         - Consolidate and clean up the printing of messages in several places
           (Rafael Wysocki).
      
         - Fix error code path in configfs handling code (Qinglang Miao).
      
         - Use DEVICE_ATTR_<RW|RO|WO> macros where applicable (Dwaipayan Ray).
      
         - Replace tests for !ACPI_FAILURE with tests for ACPI_SUCCESS in
           multiple places (Bjorn Helgaas)"
      
      * tag 'acpi-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (44 commits)
        ACPI: property: Satisfy kernel doc validator (part 2)
        ACPI: property: Satisfy kernel doc validator (part 1)
        ACPI: property: Make acpi_node_prop_read() static
        ACPI: property: Remove dead code
        ACPI: property: Fix fwnode string properties matching
        ACPI: OSL: Clean up printing messages
        ACPI: OSL: Rework acpi_check_resource_conflict()
        ACPI: APEI: ERST: remove unneeded semicolon
        ACPI: thermal: Clean up printing messages
        ACPI: video: Clean up printing messages
        ACPI: button: Clean up printing messages
        ACPI: battery: Clean up printing messages
        ACPI: AC: Clean up printing messages
        ACPI: bus: Drop ACPI_BUS_COMPONENT which is not used any more
        ACPI: utils: Clean up printing messages
        ACPI: scan: Clean up printing messages
        ACPI: bus: Clean up printing messages
        ACPI: PM: Clean up printing messages
        ACPI: power: Clean up printing messages
        ACPI: APEI: Add is_generic_error() to identify GHES sources
        ...
      3c8f504b
    • Linus Torvalds's avatar
      Merge tag 'pm-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · 02f9fc28
      Linus Torvalds authored
      Pull power management updates from Rafael Wysocki:
       "These add a new power capping facility allowing aggregate power
        constraints to be applied to sets of devices in a distributed manner,
        add a new CPU ID to the RAPL power capping driver and improve it, drop
        a cpufreq driver belonging to a platform that is not supported any
        more, drop two redundant cpufreq driver flags, update cpufreq drivers
        (intel_pstate, brcmstb-avs, qcom-hw), update the operating performance
        points (OPP) framework (code cleanups, new helpers, devfreq-related
        modifications), clean up devfreq, extend the PM clock layer, update
        the cpupower utility and make assorted janitorial changes.
      
        Specifics:
      
         - Add new power capping facility called DTPM (Dynamic Thermal Power
           Management), based on the existing power capping framework, to
           allow aggregate power constraints to be applied to sets of devices
           in a distributed manner, along with a CPU backend driver based on
           the Energy Model (Daniel Lezcano, Dan Carpenter, Colin Ian King).
      
         - Add AlderLake Mobile support to the Intel RAPL power capping driver
           and make it use the topology interface when laying out the system
           topology (Zhang Rui, Yunfeng Ye).
      
         - Drop the cpufreq tango driver belonging to a platform that is not
           supported any more (Arnd Bergmann).
      
         - Drop the redundant CPUFREQ_STICKY and CPUFREQ_PM_NO_WARN cpufreq
           driver flags (Viresh Kumar).
      
         - Update cpufreq drivers:
      
            * Fix max CPU frequency discovery in the intel_pstate driver and
              make janitorial changes in it (Chen Yu, Rafael Wysocki, Nigel
              Christian).
      
            * Fix resource leaks in the brcmstb-avs-cpufreq driver (Christophe
              JAILLET).
      
            * Make the tegra20 driver use the resource-managed API (Dmitry
              Osipenko).
      
            * Enable boost support in the qcom-hw driver (Shawn Guo).
      
         - Update the operating performance points (OPP) framework:
      
            * Clean up the OPP core (Dmitry Osipenko, Viresh Kumar).
      
            * Extend the OPP API by adding new helpers to it (Dmitry Osipenko,
              Viresh Kumar).
      
            * Allow required OPPs to be used for devfreq devices and update
              the devfreq governor code accordingly (Saravana Kannan).
      
            * Prepare the framework for introducing new dev_pm_opp_set_opp()
              helper (Viresh Kumar).
      
            * Drop dev_pm_opp_set_bw() and update related drivers (Viresh
              Kumar).
      
            * Allow lazy linking of required-OPPs (Viresh Kumar).
      
         - Simplify and clean up devfreq somewhat (Lukasz Luba, Yang Li,
           Pierre Kuo).
      
         - Update the generic power domains (genpd) framework:
      
            * Use device's next wakeup to determine domain idle state (Lina
              Iyer).
      
            * Improve initialization and debug (Dmitry Osipenko).
      
            * Simplify computations (Abaci Team).
      
         - Make janitorial changes in the core code handling system sleep and
           PM-runtime (Bhaskar Chowdhury, Bjorn Helgaas, Rikard Falkeborn,
           Zqiang).
      
         - Update the MAINTAINERS entry for the exynos cpuidle driver and drop
           DEBUG definition from intel_idle (Krzysztof Kozlowski, Tom Rix).
      
         - Extend the PM clock layer to cover clocks that must sleep (Nicolas
           Pitre).
      
         - Update the cpupower utility:
      
            * Update cpupower command, add support for AMD family 0x19 and
              clean up the code to remove many of the family checks to make
              future family updates easier (Nathan Fontenot, Robert Richter).
      
            * Add Makefile dependencies for install targets to allow building
              cpupower in parallel rather than serially (Ivan Babrou).
      
         - Make janitorial changes in power management Kconfig (Lukasz Luba)"
      
      * tag 'pm-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm: (89 commits)
        MAINTAINERS: cpuidle: exynos: include header in file pattern
        powercap: intel_rapl: Use topology interface in rapl_init_domains()
        powercap: intel_rapl: Use topology interface in rapl_add_package()
        PM: sleep: Constify static struct attribute_group
        PM: Kconfig: remove unneeded "default n" options
        PM: EM: update Kconfig description and drop "default n" option
        cpufreq: Remove unused flag CPUFREQ_PM_NO_WARN
        cpufreq: Remove CPUFREQ_STICKY flag
        PM / devfreq: Add required OPPs support to passive governor
        PM / devfreq: Cache OPP table reference in devfreq
        OPP: Add function to look up required OPP's for a given OPP
        PM / devfreq: rk3399_dmc: Remove unneeded semicolon
        opp: Replace ENOTSUPP with EOPNOTSUPP
        opp: Fix "foo * bar" should be "foo *bar"
        opp: Don't ignore clk_get() errors other than -ENOENT
        opp: Update bandwidth requirements based on scaling up/down
        opp: Allow lazy-linking of required-opps
        opp: Remove dev_pm_opp_set_bw()
        devfreq: tegra30: Migrate to dev_pm_opp_set_opp()
        drm: msm: Migrate to dev_pm_opp_set_opp()
        ...
      02f9fc28
    • Linus Torvalds's avatar
      Merge tag 'staging-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging · 5d99aa09
      Linus Torvalds authored
      Pull staging and IIO driver updates from Greg KH:
       "Here is the "big" set of staging and IIO driver patches for 5.12-rc1.
      
        Nothing really huge in here, the number of staging tree patches has
        gone down for a bit, maybe there's only so much churn to happen in
        here at the moment.
      
        The IIO changes are:
      
         - new drivers
      
         - new DT bindings
      
         - new iio driver features
      
        with full details in the shortlog.
      
        The staging driver patches are just a lot of tiny coding style
        cleanups, along with some semi-larger hikey driver cleanups as those
        are _almost_ good enough to get out of the staging tree, but will
        probably have to wait until 5.13 to have happen.
      
        All of these have been in linux-next with no reported issues"
      
      * tag 'staging-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (189 commits)
        staging: hikey9xx: Fix alignment of function parameters
        staging: greybus: Fixed a misspelling in hid.c
        staging: wimax/i2400m: fix some byte order issues found by sparse
        staging: wimax: i2400m: fix some incorrect type warnings
        staging: greybus: minor code style fix
        staging:wlan-ng: use memdup_user instead of kmalloc/copy_from_user
        staging:r8188eu: use IEEE80211_FCTL_* kernel definitions
        staging: rtl8192e: remove multiple blank lines
        staging: greybus: Fixed alignment issue in hid.c
        staging: wfx: remove unused included header files
        staging: nvec: minor coding style fix
        staging: wimax: Fix some coding style problem
        staging: fbtft: add tearing signal detect
        staging: vt6656: Fixed issue with alignment in rf.c
        staging: qlge: Remove duplicate word in comment
        staging: rtl8723bs: remove obsolete commented out code
        staging: rtl8723bs: fix function comments to follow kernel-doc
        staging: wfx: avoid defining array of flexible struct
        staging: rtl8723bs: Replace one-element array with flexible-array member in struct ndis_80211_var_ie
        staging: Replace lkml.org links with lore
        ...
      5d99aa09
    • Linus Torvalds's avatar
      Merge tag 'usb-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb · 780607b9
      Linus Torvalds authored
      Pull USB and Thunderbolt updates from Greg KH:
       "Here is the big set of USB and Thunderbolt driver changes for
        5.12-rc1.
      
        It's been an active set of development in these subsystems for the
        past few months:
      
         - loads of typec features added for new hardware
      
         - xhci features and bugfixes
      
         - dwc3 features added for more hardware support
      
         - dwc2 fixes and new hardware support
      
         - cdns3 driver updates for more hardware support
      
         - gadget driver cleanups and minor fixes
      
         - usb-serial fixes, new driver, and more devices supported
      
         - thunderbolt feature additions for new hardware
      
         - lots of other tiny fixups and additions
      
        The chrome driver changes are in here as well, as they depended on
        some of the typec changes, and the maintainer acked them.
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'usb-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usb: (300 commits)
        dt-bindings: usb: mediatek: musb: add mt8516 compatbile
        dt-bindings: usb: mtk-xhci: add compatible for mt2701 and mt7623
        dt-bindings: usb: mtk-xhci: add optional assigned clock properties
        Documentation: connector: Update the description of sink-vdos
        usb: misc: usb3503: Fix logic in usb3503_init()
        dt-bindings: usb: usb-device: fix typo in required properties
        usb: Replace lkml.org links with lore
        dt-bindings: usb: dwc3: add description for rk3328
        dt-bindings: usb: convert rockchip,dwc3.txt to yaml
        usb: quirks: add quirk to start video capture on ELMO L-12F document camera reliable
        USB: quirks: sort quirk entries
        USB: serial: drop bogus to_usb_serial_port() checks
        USB: serial: make remove callback return void
        USB: serial: drop if with an always false condition
        usb: gadget: Assign boolean values to a bool variable
        usb: typec: tcpm: Get Sink VDO from fwnode
        dt-bindings: connector: Add SVDM VDO properties
        usb: typec: displayport: Fill the negotiated SVDM Version in the header
        usb: typec: ucsi: Determine common SVDM Version
        usb: typec: tcpm: Determine common SVDM Version
        ...
      780607b9
    • Linus Torvalds's avatar
      Merge tag 'tty-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty · e4286926
      Linus Torvalds authored
      Pull tty/serial driver updates from Greg KH:
       "Here is the big set of tty/serial driver changes for 5.12-rc1.
      
        Nothing huge, just lots of good cleanups and additions:
      
         - n_tty line discipline cleanups
      
         - vt core cleanups and reworks to make the code more "modern"
      
         - stm32 driver additions
      
         - tty led support added to the tty core and led layer
      
         - minor serial driver fixups and additions
      
        All of these have been in linux-next for a while with no reported
        issues"
      
      * tag 'tty-5.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty: (54 commits)
        serial: core: Remove BUG_ON(in_interrupt()) check
        vt_ioctl: Remove in_interrupt() check
        dt-bindings: serial: imx: Switch to my personal address
        vt: keyboard, use new API for keyboard_tasklet
        serial: stm32: improve platform_get_irq condition handling in init_port
        serial: ifx6x60: Remove driver for deprecated platform
        tty: fix up iterate_tty_read() EOVERFLOW handling
        tty: fix up hung_up_tty_read() conversion
        tty: fix up hung_up_tty_write() conversion
        tty: teach the n_tty ICANON case about the new "cookie continuations" too
        tty: teach n_tty line discipline about the new "cookie continuations"
        tty: clean up legacy leftovers from n_tty line discipline
        tty: implement read_iter
        tty: convert tty_ldisc_ops 'read()' function to take a kernel pointer
        serial: remove sirf prima/atlas driver
        serial: mxs-auart: Remove <asm/cacheflush.h>
        serial: mxs-auart: Remove serial_mxs_probe_dt()
        serial: fsl_lpuart: Use of_device_get_match_data()
        dt-bindings: serial: renesas,hscif: Add r8a779a0 support
        tty: serial: Drop unused efm32 serial driver
        ...
      e4286926
    • Linus Torvalds's avatar
      tty: protect tty_write from odd low-level tty disciplines · 3342ff26
      Linus Torvalds authored
      Al root-caused a new warning from syzbot to the ttyprintk tty driver
      returning a write count larger than the data the tty layer actually gave
      it.  Which confused the tty write code mightily, and with the new
      iov_iter based code, caused a WARNING in iov_iter_revert().
      
      syzbot correctly bisected the source of the new warning to commit
      9bb48c82 ("tty: implement write_iter"), but the oddity goes back
      much further, it just didn't get caught by anything before.
      
      Reported-by: syzbot+3d2c27c2b7dc2a94814d@syzkaller.appspotmail.com
      Fixes: 9bb48c82 ("tty: implement write_iter")
      Debugged-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      3342ff26