1. 05 Nov, 2023 10 commits
    • Heiko Carstens's avatar
      s390/cmma: move parsing of cmma kernel parameter to early boot code · 468a3bc2
      Heiko Carstens authored
      The "cmma=" kernel command line parameter needs to be parsed early for
      upcoming changes. Therefore move the parsing code.
      
      Note that EX_TABLE handling of cmma_test_essa() needs to be open-coded,
      since the early boot code doesn't have infrastructure for handling expected
      exceptions.
      Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      468a3bc2
    • Heiko Carstens's avatar
      s390/cmma: cleanup inline assemblies · 92b519f3
      Heiko Carstens authored
      Cleanup cmma related inline assemblies:
      - consolidate inline assemblies
      - use symbolic names
      - add same white space where missing
      - add braces to for-loops which contain a multi-line statement
      Reviewed-by: default avatarClaudio Imbrenda <imbrenda@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      92b519f3
    • Harald Freudenberger's avatar
      s390/ap: fix vanishing crypto cards in SE environment · 5cf1a563
      Harald Freudenberger authored
      A secure execution (SE, also known as confidential computing)
      guest may see asynchronous errors on a crypto firmware queue.
      The current implementation to gather information about cards
      and queues in ap_queue_info() simple returns if an asynchronous
      error is hanging on the firmware queue. If such a situation
      happened and it was the only queue visible for a crypto card
      within an SE guest, then the card vanished from sysfs as
      the AP bus scan function refuses to hold a card without any
      type information. As lszcrypt evaluates the sysfs such
      a card vanished from the lszcrypt card listing and the
      user is baffled and has no way to reset and thus clear the
      pending asynchronous error.
      
      This patch improves the named function to also evaluate GR2
      of the TAPQ in case of asynchronous error pending. If there
      is a not-null value stored in, the info is processed now.
      In the end, a queue with pending asynchronous error does not
      lead to a vanishing card any more.
      Reviewed-by: default avatarHolger Dengler <dengler@linux.ibm.com>
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      5cf1a563
    • Ingo Franzki's avatar
      s390/zcrypt: don't report online if card or queue is in check-stop state · cfaef651
      Ingo Franzki authored
      If a card or a queue is in check-stop state, it can't be used by
      applications to perform crypto operations. Applications check the 'online'
      sysfs attribute to check if a card or queue is usable.
      
      Report a card or queue as offline in case it is in check-stop state.
      Furthermore, don't allow to set a card or queue online, if it is in
      check-stop state.
      
      This is similar to when the card or the queue is in deconfigured state,
      there it is also reported as being offline, and it can't be set online.
      Reviewed-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarIngo Franzki <ifranzki@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      cfaef651
    • Heiko Carstens's avatar
      s390: add USER_STACKTRACE support · aa44433a
      Heiko Carstens authored
      Use the perf_callchain_user() code as blueprint to also add support for
      USER_STACKTRACE. To describe how to use this cite the commit message of the
      LoongArch implementation which came with commit 4d7bf939 ("LoongArch:
      Add USER_STACKTRACE support"), but replace -fno-omit-frame-pointer option
      with the s390 specific -mbackchain option:
      ====================================================================== To
      get the best stacktrace output, you can compile your userspace programs
      with frame pointers (at least glibc + the app you are tracing).
      
      1, export "CC = gcc -mbackchain";
      2, compile your programs with "CC";
      3, use uprobe to get stacktrace output.
      
      ...
           echo 'p:malloc /usr/lib64/libc.so.6:0x0a4704 size=%r2:u64' > uprobe_events
           echo 'p:free /usr/lib64/libc.so.6:0x0a4d50 ptr=%r2:u64' >> uprobe_events
           echo 'comm == "demo"' > ./events/uprobes/malloc/filter
           echo 'comm == "demo"' > ./events/uprobes/free/filter
           echo 1 > ./options/userstacktrace
           echo 1 > ./options/sym-userobj
      ...
      ======================================================================
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      aa44433a
    • Heiko Carstens's avatar
      s390/perf: implement perf_callchain_user() · 504b73d0
      Heiko Carstens authored
      Daan De Meyer and Neal Gompa reported that s390 does not support perf user
      stack unwinding.
      
      This was never implemented since this requires user space to be compiled
      with the -mbackchain compile option, which until now no distribution
      did. However this is going to change with Fedora. Therefore provide a
      perf_callchain_user() implementation.
      
      Note that due to the way s390 sets up stack frames the provided call chains
      can contain invalid values. This is especially true for the first stack
      frame, where it is not possible to tell if the return address has been
      written to the stack already or not.
      Reported-by: default avatarDaan De Meyer <daan.j.demeyer@gmail.com>
      Reported-by: default avatarNeal Gompa <ngompa@fedoraproject.org>
      Closes: https://lore.kernel.org/all/CAO8sHcn3+_qrnvp0580aK7jN0Wion5F7KYeBAa4MnCY4mqABPA@mail.gmail.com/
      Link: https://lore.kernel.org/all/20231030123558.10816-A-hca@linux.ibm.comReviewed-by: default avatarNeal Gompa <ngompa@fedoraproject.org>
      Acked-by: default avatarIlya Leoshkevich <iii@linux.ibm.com>
      Signed-off-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      504b73d0
    • Harald Freudenberger's avatar
      s390/ap: fix AP bus crash on early config change callback invocation · e14aec23
      Harald Freudenberger authored
      Fix kernel crash in AP bus code caused by very early invocation of the
      config change callback function via SCLP.
      
      After a fresh IML of the machine the crypto cards are still offline and
      will get switched online only with activation of any LPAR which has the
      card in it's configuration. A crypto card coming online is reported
      to the LPAR via SCLP and the AP bus offers a callback function to get
      this kind of information. However, it may happen that the callback is
      invoked before the AP bus init function is complete. As the callback
      triggers a synchronous AP bus scan, the scan may already run but some
      internal states are not initialized by the AP bus init function resulting
      in a crash like this:
      
        [   11.635859] Unable to handle kernel pointer dereference in virtual kernel address space
        [   11.635861] Failing address: 0000000000000000 TEID: 0000000000000887
        [   11.635862] Fault in home space mode while using kernel ASCE.
        [   11.635864] AS:00000000894c4007 R3:00000001fece8007 S:00000001fece7800 P:000000000000013d
        [   11.635879] Oops: 0004 ilc:1 [#1] SMP
        [   11.635882] Modules linked in:
        [   11.635884] CPU: 5 PID: 42 Comm: kworker/5:0 Not tainted 6.6.0-rc3-00003-g4dbf7cdc6b42 #12
        [   11.635886] Hardware name: IBM 3931 A01 751 (LPAR)
        [   11.635887] Workqueue: events_long ap_scan_bus
        [   11.635891] Krnl PSW : 0704c00180000000 0000000000000000 (0x0)
        [   11.635895]            R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3
        [   11.635897] Krnl GPRS: 0000000001000a00 0000000000000000 0000000000000006 0000000089591940
        [   11.635899]            0000000080000000 0000000000000a00 0000000000000000 0000000000000000
        [   11.635901]            0000000081870c00 0000000089591000 000000008834e4e2 0000000002625a00
        [   11.635903]            0000000081734200 0000038000913c18 000000008834c6d6 0000038000913ac8
        [   11.635906] Krnl Code:>0000000000000000: 0000                illegal
        [   11.635906]            0000000000000002: 0000                illegal
        [   11.635906]            0000000000000004: 0000                illegal
        [   11.635906]            0000000000000006: 0000                illegal
        [   11.635906]            0000000000000008: 0000                illegal
        [   11.635906]            000000000000000a: 0000                illegal
        [   11.635906]            000000000000000c: 0000                illegal
        [   11.635906]            000000000000000e: 0000                illegal
        [   11.635915] Call Trace:
        [   11.635916]  [<0000000000000000>] 0x0
        [   11.635918]  [<000000008834e4e2>] ap_queue_init_state+0x82/0xb8
        [   11.635921]  [<000000008834ba1c>] ap_scan_domains+0x6fc/0x740
        [   11.635923]  [<000000008834c092>] ap_scan_adapter+0x632/0x8b0
        [   11.635925]  [<000000008834c3e4>] ap_scan_bus+0xd4/0x288
        [   11.635927]  [<00000000879a33ba>] process_one_work+0x19a/0x410
        [   11.635930] Discipline DIAG cannot be used without z/VM
        [   11.635930]  [<00000000879a3a2c>] worker_thread+0x3fc/0x560
        [   11.635933]  [<00000000879aea60>] kthread+0x120/0x128
        [   11.635936]  [<000000008792afa4>] __ret_from_fork+0x3c/0x58
        [   11.635938]  [<00000000885ebe62>] ret_from_fork+0xa/0x30
        [   11.635942] Last Breaking-Event-Address:
        [   11.635942]  [<000000008834c6d4>] ap_wait+0xcc/0x148
      
      This patch improves the ap_bus_force_rescan() function which is
      invoked by the config change callback by checking if a first
      initial AP bus scan has been done. If not, the force rescan request
      is simple ignored. Anyhow it does not make sense to trigger AP bus
      re-scans even before the very first bus scan is complete.
      
      Cc: stable@vger.kernel.org
      Reviewed-by: default avatarHolger Dengler <dengler@linux.ibm.com>
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      e14aec23
    • Harald Freudenberger's avatar
      s390/ap: re-enable interrupt for AP queues · c40284b3
      Harald Freudenberger authored
      This patch introduces some code lines which check
      for interrupt support enabled on an AP queue after
      a reply has been received. This invocation has been
      chosen as there is a good chance to have the queue
      empty at that time. As the enablement of the irq
      imples a state machine change the queue should not
      have any pending requests or unreceived replies.
      Reviewed-by: default avatarTony Krowiak <akrowiak@linux.ibm.com>
      Reviewed-by: default avatarHolger Dengler <dengler@linux.ibm.com>
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      c40284b3
    • Harald Freudenberger's avatar
      s390/ap: rework to use irq info from ap queue status · 01c89ab7
      Harald Freudenberger authored
      This patch reworks the irq handling and reporting code
      for the AP queue interrupt handling to always use the
      irq info from the queue status.
      
      Until now the interrupt status of an AP queue was stored
      into a bool variable within the ap_queue struct. This
      variable was set on a successful interrupt enablement
      and cleared with kicking a reset. However, it may be
      that the interrupt state is manipulated outband for
      example by a hypervisor. This patch removes this variable
      and instead the irq bit from the AP queue status which is
      always reflecting the current irq state is used.
      Reviewed-by: default avatarTony Krowiak <akrowiak@linux.ibm.com>
      Reviewed-by: default avatarHolger Dengler <dengler@linux.ibm.com>
      Signed-off-by: default avatarHarald Freudenberger <freude@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      01c89ab7
    • Alexander Gordeev's avatar
      s390/mm: add missing conversion to use ptdescs · 0547e0bd
      Alexander Gordeev authored
      Commit 6326c26c ("s390: convert various pgalloc functions
      to use ptdescs") missed to convert tlb_remove_table() into
      tlb_remove_ptdesc() in few locations.
      Reviewed-by: default avatarHeiko Carstens <hca@linux.ibm.com>
      Signed-off-by: default avatarAlexander Gordeev <agordeev@linux.ibm.com>
      Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
      0547e0bd
  2. 03 Nov, 2023 27 commits
    • Linus Torvalds's avatar
      Merge tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · e392ea4d
      Linus Torvalds authored
      Pull s390 updates from Vasily Gorbik:
      
       - Get rid of private VM_FAULT flags
      
       - Add word-at-a-time implementation
      
       - Add DCACHE_WORD_ACCESS support
      
       - Cleanup control register handling
      
       - Disallow CPU hotplug of CPU 0 to simplify its handling complexity,
         following a similar restriction in x86
      
       - Optimize pai crypto map allocation
      
       - Update the list of crypto express EP11 coprocessor operation modes
      
       - Fixes and improvements for secure guests AP pass-through
      
       - Several fixes to address incorrect page marking for address
         translation with the "cmma no-dat" feature, preventing potential
         incorrect guest TLB flushes
      
       - Fix early IPI handling
      
       - Several virtual vs physical address confusion fixes
      
       - Various small fixes and improvements all over the code
      
      * tag 's390-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux: (74 commits)
        s390/cio: replace deprecated strncpy with strscpy
        s390/sclp: replace deprecated strncpy with strtomem
        s390/cio: fix virtual vs physical address confusion
        s390/cio: export CMG value as decimal
        s390: delete the unused store_prefix() function
        s390/cmma: fix handling of swapper_pg_dir and invalid_pg_dir
        s390/cmma: fix detection of DAT pages
        s390/sclp: handle default case in sclp memory notifier
        s390/pai_crypto: remove per-cpu variable assignement in event initialization
        s390/pai: initialize event count once at initialization
        s390/pai_crypto: use PERF_ATTACH_TASK define for per task detection
        s390/mm: add missing arch_set_page_dat() call to gmap allocations
        s390/mm: add missing arch_set_page_dat() call to vmem_crst_alloc()
        s390/cmma: fix initial kernel address space page table walk
        s390/diag: add missing virt_to_phys() translation to diag224()
        s390/mm,fault: move VM_FAULT_ERROR handling to do_exception()
        s390/mm,fault: remove VM_FAULT_BADMAP and VM_FAULT_BADACCESS
        s390/mm,fault: remove VM_FAULT_SIGNAL
        s390/mm,fault: remove VM_FAULT_BADCONTEXT
        s390/mm,fault: simplify kfence fault handling
        ...
      e392ea4d
    • Linus Torvalds's avatar
      Merge tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux · 707df298
      Linus Torvalds authored
      Pull powerpc updates from Michael Ellerman:
      
       - Add support for KVM running as a nested hypervisor under development
         versions of PowerVM, using the new PAPR nested virtualisation API
      
       - Add support for the BPF prog pack allocator
      
       - A rework of the non-server MMU handling to support execute-only on
         all platforms
      
       - Some optimisations & cleanups for the powerpc qspinlock code
      
       - Various other small features and fixes
      
      Thanks to Aboorva Devarajan, Aditya Gupta, Amit Machhiwal, Benjamin
      Gray, Christophe Leroy, Dr. David Alan Gilbert, Gaurav Batra, Gautam
      Menghani, Geert Uytterhoeven, Haren Myneni, Hari Bathini, Joel Stanley,
      Jordan Niethe, Julia Lawall, Kautuk Consul, Kuan-Wei Chiu, Michael
      Neuling, Minjie Du, Muhammad Muzammil, Naveen N Rao, Nicholas Piggin,
      Nick Child, Nysal Jan K.A, Peter Lafreniere, Rob Herring, Sachin Sant,
      Sebastian Andrzej Siewior, Shrikanth Hegde, Srikar Dronamraju, Stanislav
      Kinsburskii, Vaibhav Jain, Wang Yufen, Yang Yingliang, and Yuan Tan.
      
      * tag 'powerpc-6.7-1' of git://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux: (100 commits)
        powerpc/vmcore: Add MMU information to vmcoreinfo
        Revert "powerpc: add `cur_cpu_spec` symbol to vmcoreinfo"
        powerpc/bpf: use bpf_jit_binary_pack_[alloc|finalize|free]
        powerpc/bpf: rename powerpc64_jit_data to powerpc_jit_data
        powerpc/bpf: implement bpf_arch_text_invalidate for bpf_prog_pack
        powerpc/bpf: implement bpf_arch_text_copy
        powerpc/code-patching: introduce patch_instructions()
        powerpc/32s: Implement local_flush_tlb_page_psize()
        powerpc/pseries: use kfree_sensitive() in plpks_gen_password()
        powerpc/code-patching: Perform hwsync in __patch_instruction() in case of failure
        powerpc/fsl_msi: Use device_get_match_data()
        powerpc: Remove cpm_dp...() macros
        powerpc/qspinlock: Rename yield_propagate_owner tunable
        powerpc/qspinlock: Propagate sleepy if previous waiter is preempted
        powerpc/qspinlock: don't propagate the not-sleepy state
        powerpc/qspinlock: propagate owner preemptedness rather than CPU number
        powerpc/qspinlock: stop queued waiters trying to set lock sleepy
        powerpc/perf: Fix disabling BHRB and instruction sampling
        powerpc/trace: Add support for HAVE_FUNCTION_ARG_ACCESS_API
        powerpc/tools: Pass -mabi=elfv2 to gcc-check-mprofile-kernel.sh
        ...
      707df298
    • Linus Torvalds's avatar
      Merge tag 'apparmor-pr-2023-11-03' of... · 6bdfe2d8
      Linus Torvalds authored
      Merge tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor
      
      Pull apparmor updates from John Johansen:
       "This adds initial support for mediating io_uring and userns creation.
        Adds a new restriction that tightens the use of change_profile, and a
        couple of optimizations to reduce performance bottle necks that have
        been found when retrieving the current task's secid and allocating
        work buffers.
      
        The majority of the patch set continues cleaning up and simplifying
        the code (fixing comments, removing now dead functions, and macros
        etc). Finally there are 4 bug fixes, with the regression fix having
        had a couple months of testing.
      
        Features:
         - optimize retrieving current task secid
         - add base io_uring mediation
         - add base userns mediation
         - improve buffer allocation
         - allow restricting unprivilege change_profile
      
        Cleanups:
         - Fix kernel doc comments
         - remove unused declarations
         - remove unused functions
         - remove unneeded #ifdef
         - remove unused macros
         - mark fns static
         - cleanup fn with unused return values
         - cleanup audit data
         - pass cred through to audit data
         - refcount the pdb instead of using duplicates
         - make SK_CTX macro an inline fn
         - some comment cleanups
      
        Bug fixes:
         - fix regression in mount mediation
         - fix invalid refenece
         - use passed in gfp flags
         - advertise avaiability of extended perms and disconnected.path"
      
      * tag 'apparmor-pr-2023-11-03' of git://git.kernel.org/pub/scm/linux/kernel/git/jj/linux-apparmor: (39 commits)
        apparmor: Fix some kernel-doc comments
        apparmor: Fix one kernel-doc comment
        apparmor: Fix some kernel-doc comments
        apparmor: mark new functions static
        apparmor: Fix regression in mount mediation
        apparmor: cache buffers on percpu list if there is lock contention
        apparmor: add io_uring mediation
        apparmor: add user namespace creation mediation
        apparmor: allow restricting unprivileged change_profile
        apparmor: advertise disconnected.path is available
        apparmor: refcount the pdb
        apparmor: provide separate audit messages for file and policy checks
        apparmor: pass cred through to audit info.
        apparmor: rename audit_data->label to audit_data->subj_label
        apparmor: combine common_audit_data and apparmor_audit_data
        apparmor: rename SK_CTX() to aa_sock and make it an inline fn
        apparmor: Optimize retrieving current task secid
        apparmor: remove unused functions in policy_ns.c/.h
        apparmor: remove unneeded #ifdef in decompress_zstd()
        apparmor: fix invalid reference on profile->disconnected
        ...
      6bdfe2d8
    • Linus Torvalds's avatar
      Merge tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux · 136cc1e1
      Linus Torvalds authored
      Pull landlock updates from Mickaël Salaün:
       "A Landlock ruleset can now handle two new access rights:
        LANDLOCK_ACCESS_NET_BIND_TCP and LANDLOCK_ACCESS_NET_CONNECT_TCP. When
        handled, the related actions are denied unless explicitly allowed by a
        Landlock network rule for a specific port.
      
        The related patch series has been reviewed for almost two years, it
        has evolved a lot and we now have reached a decent design, code and
        testing. The refactored kernel code and the new test helpers also
        bring the foundation to support more network protocols.
      
        Test coverage for security/landlock is 92.4% of 710 lines according to
        gcc/gcov-13, and it was 93.1% of 597 lines before this series. The
        decrease in coverage is due to code refactoring to make the ruleset
        management more generic (i.e. dealing with inodes and ports) that also
        added new WARN_ON_ONCE() checks not possible to test from user space.
      
        syzkaller has been updated accordingly [4], and such patched instance
        (tailored to Landlock) has been running for a month, covering all the
        new network-related code [5]"
      
      Link: https://lore.kernel.org/r/20231026014751.414649-1-konstantin.meskhidze@huawei.com [1]
      Link: https://lore.kernel.org/r/CAHC9VhS1wwgH6NNd+cJz4MYogPiRV8NyPDd1yj5SpaxeUB4UVg@mail.gmail.com [2]
      Link: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next-history.git/commit/?id=c8dc5ee69d3a [3]
      Link: https://github.com/google/syzkaller/pull/4266 [4]
      Link: https://storage.googleapis.com/syzbot-assets/82e8608dec36/ci-upstream-linux-next-kasan-gce-root-ab577164.html#security%2flandlock%2fnet.c [5]
      
      * tag 'landlock-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/mic/linux:
        selftests/landlock: Add tests for FS topology changes with network rules
        landlock: Document network support
        samples/landlock: Support TCP restrictions
        selftests/landlock: Add network tests
        selftests/landlock: Share enforce_ruleset() helper
        landlock: Support network rules with TCP bind and connect
        landlock: Refactor landlock_add_rule() syscall
        landlock: Refactor layer helpers
        landlock: Move and rename layer helpers
        landlock: Refactor merge/inherit_ruleset helpers
        landlock: Refactor landlock_find_rule/insert_rule helpers
        landlock: Allow FS topology changes for domains without such rule type
        landlock: Make ruleset's access masks more generic
      136cc1e1
    • Linus Torvalds's avatar
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of... · 7ab89417
      Linus Torvalds authored
      Merge tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
      
      Pull perf tools updates from Namhyung Kim:
       "Build:
      
         - Compile BPF programs by default if clang (>= 12.0.1) is available
           to enable more features like kernel lock contention, off-cpu
           profiling, kwork, sample filtering and so on.
      
           This can be disabled by passing BUILD_BPF_SKEL=0 to make.
      
         - Produce better error messages for bison on debug build (make
           DEBUG=1) by defining YYDEBUG symbol internally.
      
        perf record:
      
         - Track sideband events (like FORK/MMAP) from all CPUs even if perf
           record targets a subset of CPUs only (using -C option). Otherwise
           it may lose some information happened on a CPU out of the target
           list.
      
         - Fix checking raw sched_switch tracepoint argument using system BTF.
           This affects off-cpu profiling which attaches a BPF program to the
           raw tracepoint.
      
        perf lock contention:
      
         - Add --lock-cgroup option to see contention by cgroups. This should
           be used with BPF only (using -b option).
      
             $ sudo perf lock con -ab --lock-cgroup -- sleep 1
              contended   total wait     max wait     avg wait   cgroup
      
                    835     14.06 ms     41.19 us     16.83 us   /system.slice/led.service
                     25    122.38 us     13.77 us      4.89 us   /
                     44     23.73 us      3.87 us       539 ns   /user.slice/user-657345.slice/session-c4.scope
                      1       491 ns       491 ns       491 ns   /system.slice/connectd.service
      
         - Add -G/--cgroup-filter option to see contention only for given
           cgroups.
      
           This can be useful when you identified a cgroup in the above
           command and want to investigate more on it. It also works with
           other output options like -t/--threads and -l/--lock-addr.
      
             $ sudo perf lock con -ab -G /user.slice/user-657345.slice/session-c4.scope -- sleep 1
              contended   total wait     max wait     avg wait         type   caller
      
                      8     77.11 us     17.98 us      9.64 us     spinlock   futex_wake+0xc8
                      2     24.56 us     14.66 us     12.28 us     spinlock   tick_do_update_jiffies64+0x25
                      1      4.97 us      4.97 us      4.97 us     spinlock   futex_q_lock+0x2a
      
         - Use per-cpu array for better spinlock tracking. This is to improve
           performance of the BPF program and to avoid nested contention on a
           lock in the BPF hash map.
      
         - Update callstack check for PowerPC. To find a representative caller
           of a lock, it needs to look up the call stacks. It ends the lookup
           when it sees 0 in the call stack buffer. However, PowerPC call
           stacks can have 0 values in the beginning so skip them when it
           expects valid call stacks after.
      
        perf kwork:
      
         - Support 'sched' class (for -k option) so that it can see task
           scheduling event (using sched_switch tracepoint) as well as irq and
           workqueue items.
      
         - Add perf kwork top subcommand to show more accurate cpu utilization
           with sched class above. It works both with a recorded data (using
           perf kwork record command) and BPF (using -b option). Unlike perf
           top command, it does not support interactive mode (yet).
      
             $ sudo perf kwork top -b -k sched
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  : 160702.425 ms, 8 cpus
             %Cpu(s):  36.00% id,   0.00% hi,   0.00% si
             %Cpu0   [||||||||||||||||||              61.66%]
             %Cpu1   [||||||||||||||||||              61.27%]
             %Cpu2   [|||||||||||||||||||             66.40%]
             %Cpu3   [||||||||||||||||||              61.28%]
             %Cpu4   [||||||||||||||||||              61.82%]
             %Cpu5   [|||||||||||||||||||||||         77.41%]
             %Cpu6   [||||||||||||||||||              61.73%]
             %Cpu7   [||||||||||||||||||              63.25%]
      
                   PID     SPID    %CPU           RUNTIME  COMMMAND
               -------------------------------------------------------------
                     0        0   38.72       8089.463 ms  [swapper/1]
                     0        0   38.71       8084.547 ms  [swapper/3]
                     0        0   38.33       8007.532 ms  [swapper/0]
                     0        0   38.26       7992.985 ms  [swapper/6]
                     0        0   38.17       7971.865 ms  [swapper/4]
                     0        0   36.74       7447.765 ms  [swapper/7]
                     0        0   33.59       6486.942 ms  [swapper/2]
                     0        0   22.58       3771.268 ms  [swapper/5]
                  9545     9351    2.48        447.136 ms  sched-messaging
                  9574     9351    2.09        418.583 ms  sched-messaging
                  9724     9351    2.05        372.407 ms  sched-messaging
                  9531     9351    2.01        368.804 ms  sched-messaging
                  9512     9351    2.00        362.250 ms  sched-messaging
                  9514     9351    1.95        357.767 ms  sched-messaging
                  9538     9351    1.86        384.476 ms  sched-messaging
                  9712     9351    1.84        386.490 ms  sched-messaging
                  9723     9351    1.83        380.021 ms  sched-messaging
                  9722     9351    1.82        382.738 ms  sched-messaging
                  9517     9351    1.81        354.794 ms  sched-messaging
                  9559     9351    1.79        344.305 ms  sched-messaging
                  9725     9351    1.77        365.315 ms  sched-messaging
             <SNIP>
      
         - Add hard/soft-irq statistics to perf kwork top. This will show the
           total CPU utilization with IRQ stats like below:
      
             $ sudo perf kwork top -b -k sched,irq,softirq
             Starting trace, Hit <Ctrl+C> to stop and report
             ^C
             Total  :  12554.889 ms, 8 cpus
             %Cpu(s):  96.23% id,   0.10% hi,   0.19% si      <---- here
             %Cpu0   [|                                4.60%]
             %Cpu1   [|                                4.59%]
             %Cpu2   [                                 2.73%]
             %Cpu3   [|                                3.81%]
             <SNIP>
      
        perf bench:
      
         - Add -G/--cgroups option to perf bench sched pipe. The pipe bench is
           good to measure context switch overhead. With this option, it puts
           the reader and writer tasks in separate cgroups to enforce context
           switch between two different cgroups.
      
           Also it needs to set CPU affinity of the tasks in a CPU to
           accurately measure the impact of cgroup context switches.
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.307 [sec]
      
                    3.078180 usecs/op
                      324867 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000':
      
                        200,026      context-switches
                             63      cgroup-switches
      
                    0.321637922 seconds time elapsed
      
           You can see small number of cgroup-switches because both write and
           read tasks are in the same cgroup.
      
             $ sudo mkdir /sys/fs/cgroup/{AAA,BBB}
      
             $ sudo perf stat -e context-switches,cgroup-switches -- \
             > taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB
             # Running 'sched/pipe' benchmark:
             # Executed 100000 pipe operations between two processes
      
                  Total time: 0.351 [sec]
      
                    3.512990 usecs/op
                      284657 ops/sec
      
              Performance counter stats for 'taskset -c 0 perf bench sched pipe -l 100000 -G AAA,BBB':
      
                        200,020      context-switches
                        200,019      cgroup-switches
      
                    0.365034567 seconds time elapsed
      
           Now context-switches and cgroup-switches are almost same. And you
           can see the pipe operation took little more.
      
         - Kill child processes when perf bench sched messaging exited
           abnormally. Otherwise it'd leave the child doing unnecessary work.
      
        perf test:
      
         - Fix various shellcheck issues on the tests written in shell script.
      
         - Skip tests when condition is not satisfied:
            - object code reading test for non-text section addresses.
            - CoreSight test if cs_etm// event is not available.
            - lock contention test if not enough CPUs.
      
        Event parsing:
      
         - Make PMU alias name loading lazy to reduce the startup time in the
           event parsing code for perf record, stat and others in the general
           case.
      
         - Lazily compute PMU default config. In the same sense, delay PMU
           initialization until it's really needed to reduce the startup cost.
      
         - Fix event term values that are raw events. The event specification
           can have several terms including event name. But sometimes it
           clashes with raw event encoding which starts with 'r' and has
           hex-digits.
      
           For example, an event named 'read' should be processed as a normal
           event but it was mis-treated as a raw encoding and caused a
           failure.
      
             $ perf stat -e 'uncore_imc_free_running/event=read/' -a sleep 1
             event syntax error: '..nning/event=read/'
                                               \___ parser error
             Run 'perf list' for a list of valid events
      
              Usage: perf stat [<options>] [<command>]
      
                 -e, --event <event> event selector. use 'perf list' to list available events
      
        Event metrics:
      
         - Add "Compat" regex to match event with multiple identifiers.
      
         - Usual updates for Intel, Power10, Arm telemetry/CMN and AmpereOne.
      
        Misc:
      
         - Assorted memory leak fixes and footprint reduction.
      
         - Add "bpf_skeletons" to perf version --build-options so that users
           can check whether their perf tools have BPF support easily.
      
         - Fix unaligned access in Intel-PT packet decoder found by
           undefined-behavior sanitizer.
      
         - Avoid frequency mode for the dummy event. Surprisingly it'd impact
           kernel timer tick handler performance by force iterating all PMU
           events.
      
         - Update bash shell completion for events and metrics"
      
      * tag 'perf-tools-for-v6.7-1-2023-11-01' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools: (187 commits)
        perf vendor events intel: Update tsx_cycles_per_elision metrics
        perf vendor events intel: Update bonnell version number to v5
        perf vendor events intel: Update westmereex events to v4
        perf vendor events intel: Update meteorlake events to v1.06
        perf vendor events intel: Update knightslanding events to v16
        perf vendor events intel: Add typo fix for ivybridge FP
        perf vendor events intel: Update a spelling in haswell/haswellx
        perf vendor events intel: Update emeraldrapids to v1.01
        perf vendor events intel: Update alderlake/alderlake events to v1.23
        perf build: Disable BPF skeletons if clang version is < 12.0.1
        perf callchain: Fix spelling mistake "statisitcs" -> "statistics"
        perf report: Fix spelling mistake "heirachy" -> "hierarchy"
        perf python: Fix binding linkage due to rename and move of evsel__increase_rlimit()
        perf tests: test_arm_coresight: Simplify source iteration
        perf vendor events intel: Add tigerlake two metrics
        perf vendor events intel: Add broadwellde two metrics
        perf vendor events intel: Fix broadwellde tma_info_system_dram_bw_use metric
        perf mem_info: Add and use map_symbol__exit and addr_map_symbol__exit
        perf callchain: Minor layout changes to callchain_list
        perf callchain: Make brtype_stat in callchain_list optional
        ...
      7ab89417
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 31e5f934
      Linus Torvalds authored
      Pull tracing updates from Steven Rostedt:
      
       - Remove eventfs_file descriptor
      
         This is the biggest change, and the second part of making eventfs
         create its files dynamically.
      
         In 6.6 the first part was added, and that maintained a one to one
         mapping between eventfs meta descriptors and the directories and file
         inodes and dentries that were dynamically created. The directories
         were represented by a eventfs_inode and the files were represented by
         a eventfs_file.
      
         In v6.7 the eventfs_file is removed. As all events have the same
         directory make up (sched_switch has an "enable", "id", "format", etc
         files), the handing of what files are underneath each leaf eventfs
         directory is moved back to the tracing subsystem via a callback.
      
         When an event is added to the eventfs, it registers an array of
         evenfs_entry's. These hold the names of the files and the callbacks
         to call when the file is referenced. The callback gets the name so
         that the same callback may be used by multiple files. The callback
         then supplies the filesystem_operations structure needed to create
         this file.
      
         This has brought the memory footprint of creating multiple eventfs
         instances down by 2 megs each!
      
       - User events now has persistent events that are not associated to a
         single processes. These are privileged events that hang around even
         if no process is attached to them
      
       - Clean up of seq_buf
      
         There's talk about using seq_buf more to replace strscpy() and
         friends. But this also requires some minor modifications of seq_buf
         to be able to do this
      
       - Expand instance ring buffers individually
      
         Currently if boot up creates an instance, and a trace event is
         enabled on that instance, the ring buffer for that instance and the
         top level ring buffer are expanded (1.4 MB per CPU). This wastes
         memory as this happens when nothing is using the top level instance
      
       - Other minor clean ups and fixes
      
      * tag 'trace-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace: (34 commits)
        seq_buf: Export seq_buf_puts()
        seq_buf: Export seq_buf_putc()
        eventfs: Use simple_recursive_removal() to clean up dentries
        eventfs: Remove special processing of dput() of events directory
        eventfs: Delete eventfs_inode when the last dentry is freed
        eventfs: Hold eventfs_mutex when calling callback functions
        eventfs: Save ownership and mode
        eventfs: Test for ei->is_freed when accessing ei->dentry
        eventfs: Have a free_ei() that just frees the eventfs_inode
        eventfs: Remove "is_freed" union with rcu head
        eventfs: Fix kerneldoc of eventfs_remove_rec()
        tracing: Have the user copy of synthetic event address use correct context
        eventfs: Remove extra dget() in eventfs_create_events_dir()
        tracing: Have trace_event_file have ref counters
        seq_buf: Introduce DECLARE_SEQ_BUF and seq_buf_str()
        eventfs: Fix typo in eventfs_inode union comment
        eventfs: Fix WARN_ON() in create_file_dentry()
        powerpc: Remove initialisation of readpos
        tracing/histograms: Simplify last_cmd_set()
        seq_buf: fix a misleading comment
        ...
      31e5f934
    • Linus Torvalds's avatar
      Merge tag 'trace-tools-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · fd912e49
      Linus Torvalds authored
      Pull tracing tools updates from Steven Rostedt:
       "RTLA:
      
         - In rtla/utils.c, initialize the 'found' variable to avoid garbage
           when a mount point is not found.
      
       Verification:
      
         - Remove duplicated imports on dot2k python script"
      
      * tag 'trace-tools-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        rtla: Fix uninitialized variable found
        verification/dot2k: Delete duplicate imports
      fd912e49
    • Linus Torvalds's avatar
      Merge tag 'printk-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux · 2a80532c
      Linus Torvalds authored
      Pull printk updates from Petr Mladek:
      
       - Another preparation step for introducing printk kthreads. The main
         piece is a per-console lock with several features:
      
          - Support three priorities: normal, emergency, and panic. They will
            be defined by a context where the lock is taken. A context with a
            higher priority is allowed to take over the lock from a context
            with a lower one.
      
            The plan is to use the emergency context for Oops and WARN()
            messages, and also by watchdogs.
      
            The panic() context will be used on panic CPU.
      
          - The owner might enter/exit regions where it is not safe to take
            over the lock. It allows the take over the lock a safe way in the
            middle of a message.
      
            For example, serial drivers emit characters one by one. And the
            serial port is in a safe state in between.
      
            Only the final console_flush_in_panic() will be allowed to take
            over the lock even in the unsafe state (last chance, pray, and
            hope).
      
          - A higher priority context might busy wait with a timeout. The
            current owner is informed about the waiter and releases the lock
            on exit from the unsafe state.
      
          - The new lock is safe even in atomic contexts, including NMI.
      
         Another change is a safe manipulation of per-console sequence number
         counter under the new lock.
      
       - simple_strntoull() micro-optimization
      
       - Reduce pr_flush() pooling time.
      
       - Calm down false warning about possible buffer invalid access to
         console buffers when CONFIG_PRINTK is disabled.
      
      [ .. and Thomas Gleixner wants to point out that while several of the
        commits are attributed to him, he only authored the early versions of
        said commits, and that John Ogness and Petr Mladek have been the ones
        who sorted out the details and really should be those who get the
        credit   - Linus ]
      
      * tag 'printk-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/printk/linux:
        vsprintf: uninline simple_strntoull(), reorder arguments
        printk: printk: Remove unnecessary statements'len = 0;'
        printk: Reduce pr_flush() pooling time
        printk: fix illegal pbufs access for !CONFIG_PRINTK
        printk: nbcon: Allow drivers to mark unsafe regions and check state
        printk: nbcon: Add emit function and callback function for atomic printing
        printk: nbcon: Add sequence handling
        printk: nbcon: Add ownership state functions
        printk: nbcon: Add buffer management
        printk: Make static printk buffers available to nbcon
        printk: nbcon: Add acquire/release logic
        printk: Add non-BKL (nbcon) console basic infrastructure
      2a80532c
    • Linus Torvalds's avatar
      Merge tag 'livepatching-for-6.7' of... · 00657bb3
      Linus Torvalds authored
      Merge tag 'livepatching-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching
      
      Pull livepatching update from Petr Mladek:
      
       - Add missing newline character to avoid waiting for a continuous
         message
      
      * tag 'livepatching-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/livepatching/livepatching:
        livepatch: Fix missing newline character in klp_resolve_symbols()
      00657bb3
    • Linus Torvalds's avatar
      Merge tag 'bitmap-for-6.7' of https://github.com/norov/linux · 9a719c21
      Linus Torvalds authored
      Pull bitmap updates from Yury Norov:
       "This includes the 'bitmap: cleanup bitmap_*_region() implementation'
        series, and scattered cleanup patches"
      
      * tag 'bitmap-for-6.7' of https://github.com/norov/linux:
        buildid: reduce header file dependencies for module
        bitmap: move bitmap_*_region() functions to bitmap.h
        bitmap: drop _reg_op() function
        bitmap: replace _reg_op(REG_OP_ISFREE) with find_next_bit()
        bitmap: replace _reg_op(REG_OP_RELEASE) with bitmap_clear()
        bitmap: replace _reg_op(REG_OP_ALLOC) with bitmap_set()
        bitmap: fix opencoded bitmap_allocate_region()
        bitmap: add test for bitmap_*_region() functions
        bitmap: align __reg_op() wrappers with modern coding style
        lib/bitmap: split-out string-related operations to a separate files
        bitmap: Remove dead code, i.e. bitmap_copy_le()
        bitmap: Fix a typo ("identify map")
        cpumask: kernel-doc cleanups and additions
      9a719c21
    • Linus Torvalds's avatar
      Merge tag 'mm-nonmm-stable-2023-11-02-14-08' of... · 8f6f76a6
      Linus Torvalds authored
      Merge tag 'mm-nonmm-stable-2023-11-02-14-08' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
      
      Pull non-MM updates from Andrew Morton:
       "As usual, lots of singleton and doubleton patches all over the tree
        and there's little I can say which isn't in the individual changelogs.
      
        The lengthier patch series are
      
         - 'kdump: use generic functions to simplify crashkernel reservation
           in arch', from Baoquan He. This is mainly cleanups and
           consolidation of the 'crashkernel=' kernel parameter handling
      
         - After much discussion, David Laight's 'minmax: Relax type checks in
           min() and max()' is here. Hopefully reduces some typecasting and
           the use of min_t() and max_t()
      
         - A group of patches from Oleg Nesterov which clean up and slightly
           fix our handling of reads from /proc/PID/task/... and which remove
           task_struct.thread_group"
      
      * tag 'mm-nonmm-stable-2023-11-02-14-08' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (64 commits)
        scripts/gdb/vmalloc: disable on no-MMU
        scripts/gdb: fix usage of MOD_TEXT not defined when CONFIG_MODULES=n
        .mailmap: add address mapping for Tomeu Vizoso
        mailmap: update email address for Claudiu Beznea
        tools/testing/selftests/mm/run_vmtests.sh: lower the ptrace permissions
        .mailmap: map Benjamin Poirier's address
        scripts/gdb: add lx_current support for riscv
        ocfs2: fix a spelling typo in comment
        proc: test ProtectionKey in proc-empty-vm test
        proc: fix proc-empty-vm test with vsyscall
        fs/proc/base.c: remove unneeded semicolon
        do_io_accounting: use sig->stats_lock
        do_io_accounting: use __for_each_thread()
        ocfs2: replace BUG_ON() at ocfs2_num_free_extents() with ocfs2_error()
        ocfs2: fix a typo in a comment
        scripts/show_delta: add __main__ judgement before main code
        treewide: mark stuff as __ro_after_init
        fs: ocfs2: check status values
        proc: test /proc/${pid}/statm
        compiler.h: move __is_constexpr() to compiler.h
        ...
      8f6f76a6
    • Linus Torvalds's avatar
      Merge tag 'mm-stable-2023-11-01-14-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm · ecae0bd5
      Linus Torvalds authored
      Pull MM updates from Andrew Morton:
       "Many singleton patches against the MM code. The patch series which are
        included in this merge do the following:
      
         - Kemeng Shi has contributed some compation maintenance work in the
           series 'Fixes and cleanups to compaction'
      
         - Joel Fernandes has a patchset ('Optimize mremap during mutual
           alignment within PMD') which fixes an obscure issue with mremap()'s
           pagetable handling during a subsequent exec(), based upon an
           implementation which Linus suggested
      
         - More DAMON/DAMOS maintenance and feature work from SeongJae Park i
           the following patch series:
      
      	mm/damon: misc fixups for documents, comments and its tracepoint
      	mm/damon: add a tracepoint for damos apply target regions
      	mm/damon: provide pseudo-moving sum based access rate
      	mm/damon: implement DAMOS apply intervals
      	mm/damon/core-test: Fix memory leaks in core-test
      	mm/damon/sysfs-schemes: Do DAMOS tried regions update for only one apply interval
      
         - In the series 'Do not try to access unaccepted memory' Adrian
           Hunter provides some fixups for the recently-added 'unaccepted
           memory' feature. To increase the feature's checking coverage. 'Plug
           a few gaps where RAM is exposed without checking if it is
           unaccepted memory'
      
         - In the series 'cleanups for lockless slab shrink' Qi Zheng has done
           some maintenance work which is preparation for the lockless slab
           shrinking code
      
         - Qi Zheng has redone the earlier (and reverted) attempt to make slab
           shrinking lockless in the series 'use refcount+RCU method to
           implement lockless slab shrink'
      
         - David Hildenbrand contributes some maintenance work for the rmap
           code in the series 'Anon rmap cleanups'
      
         - Kefeng Wang does more folio conversions and some maintenance work
           in the migration code. Series 'mm: migrate: more folio conversion
           and unification'
      
         - Matthew Wilcox has fixed an issue in the buffer_head code which was
           causing long stalls under some heavy memory/IO loads. Some cleanups
           were added on the way. Series 'Add and use bdev_getblk()'
      
         - In the series 'Use nth_page() in place of direct struct page
           manipulation' Zi Yan has fixed a potential issue with the direct
           manipulation of hugetlb page frames
      
         - In the series 'mm: hugetlb: Skip initialization of gigantic tail
           struct pages if freed by HVO' has improved our handling of gigantic
           pages in the hugetlb vmmemmep optimizaton code. This provides
           significant boot time improvements when significant amounts of
           gigantic pages are in use
      
         - Matthew Wilcox has sent the series 'Small hugetlb cleanups' - code
           rationalization and folio conversions in the hugetlb code
      
         - Yin Fengwei has improved mlock()'s handling of large folios in the
           series 'support large folio for mlock'
      
         - In the series 'Expose swapcache stat for memcg v1' Liu Shixin has
           added statistics for memcg v1 users which are available (and
           useful) under memcg v2
      
         - Florent Revest has enhanced the MDWE (Memory-Deny-Write-Executable)
           prctl so that userspace may direct the kernel to not automatically
           propagate the denial to child processes. The series is named 'MDWE
           without inheritance'
      
         - Kefeng Wang has provided the series 'mm: convert numa balancing
           functions to use a folio' which does what it says
      
         - In the series 'mm/ksm: add fork-exec support for prctl' Stefan
           Roesch makes is possible for a process to propagate KSM treatment
           across exec()
      
         - Huang Ying has enhanced memory tiering's calculation of memory
           distances. This is used to permit the dax/kmem driver to use 'high
           bandwidth memory' in addition to Optane Data Center Persistent
           Memory Modules (DCPMM). The series is named 'memory tiering:
           calculate abstract distance based on ACPI HMAT'
      
         - In the series 'Smart scanning mode for KSM' Stefan Roesch has
           optimized KSM by teaching it to retain and use some historical
           information from previous scans
      
         - Yosry Ahmed has fixed some inconsistencies in memcg statistics in
           the series 'mm: memcg: fix tracking of pending stats updates
           values'
      
         - In the series 'Implement IOCTL to get and optionally clear info
           about PTEs' Peter Xu has added an ioctl to /proc/<pid>/pagemap
           which permits us to atomically read-then-clear page softdirty
           state. This is mainly used by CRIU
      
         - Hugh Dickins contributed the series 'shmem,tmpfs: general
           maintenance', a bunch of relatively minor maintenance tweaks to
           this code
      
         - Matthew Wilcox has increased the use of the VMA lock over
           file-backed page faults in the series 'Handle more faults under the
           VMA lock'. Some rationalizations of the fault path became possible
           as a result
      
         - In the series 'mm/rmap: convert page_move_anon_rmap() to
           folio_move_anon_rmap()' David Hildenbrand has implemented some
           cleanups and folio conversions
      
         - In the series 'various improvements to the GUP interface' Lorenzo
           Stoakes has simplified and improved the GUP interface with an eye
           to providing groundwork for future improvements
      
         - Andrey Konovalov has sent along the series 'kasan: assorted fixes
           and improvements' which does those things
      
         - Some page allocator maintenance work from Kemeng Shi in the series
           'Two minor cleanups to break_down_buddy_pages'
      
         - In thes series 'New selftest for mm' Breno Leitao has developed
           another MM self test which tickles a race we had between madvise()
           and page faults
      
         - In the series 'Add folio_end_read' Matthew Wilcox provides cleanups
           and an optimization to the core pagecache code
      
         - Nhat Pham has added memcg accounting for hugetlb memory in the
           series 'hugetlb memcg accounting'
      
         - Cleanups and rationalizations to the pagemap code from Lorenzo
           Stoakes, in the series 'Abstract vma_merge() and split_vma()'
      
         - Audra Mitchell has fixed issues in the procfs page_owner code's new
           timestamping feature which was causing some misbehaviours. In the
           series 'Fix page_owner's use of free timestamps'
      
         - Lorenzo Stoakes has fixed the handling of new mappings of sealed
           files in the series 'permit write-sealed memfd read-only shared
           mappings'
      
         - Mike Kravetz has optimized the hugetlb vmemmap optimization in the
           series 'Batch hugetlb vmemmap modification operations'
      
         - Some buffer_head folio conversions and cleanups from Matthew Wilcox
           in the series 'Finish the create_empty_buffers() transition'
      
         - As a page allocator performance optimization Huang Ying has added
           automatic tuning to the allocator's per-cpu-pages feature, in the
           series 'mm: PCP high auto-tuning'
      
         - Roman Gushchin has contributed the patchset 'mm: improve
           performance of accounted kernel memory allocations' which improves
           their performance by ~30% as measured by a micro-benchmark
      
         - folio conversions from Kefeng Wang in the series 'mm: convert page
           cpupid functions to folios'
      
         - Some kmemleak fixups in Liu Shixin's series 'Some bugfix about
           kmemleak'
      
         - Qi Zheng has improved our handling of memoryless nodes by keeping
           them off the allocation fallback list. This is done in the series
           'handle memoryless nodes more appropriately'
      
         - khugepaged conversions from Vishal Moola in the series 'Some
           khugepaged folio conversions'"
      
      [ bcachefs conflicts with the dynamically allocated shrinkers have been
        resolved as per Stephen Rothwell in
      
           https://lore.kernel.org/all/20230913093553.4290421e@canb.auug.org.au/
      
        with help from Qi Zheng.
      
        The clone3 test filtering conflict was half-arsed by yours truly ]
      
      * tag 'mm-stable-2023-11-01-14-33' of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm: (406 commits)
        mm/damon/sysfs: update monitoring target regions for online input commit
        mm/damon/sysfs: remove requested targets when online-commit inputs
        selftests: add a sanity check for zswap
        Documentation: maple_tree: fix word spelling error
        mm/vmalloc: fix the unchecked dereference warning in vread_iter()
        zswap: export compression failure stats
        Documentation: ubsan: drop "the" from article title
        mempolicy: migration attempt to match interleave nodes
        mempolicy: mmap_lock is not needed while migrating folios
        mempolicy: alloc_pages_mpol() for NUMA policy without vma
        mm: add page_rmappable_folio() wrapper
        mempolicy: remove confusing MPOL_MF_LAZY dead code
        mempolicy: mpol_shared_policy_init() without pseudo-vma
        mempolicy trivia: use pgoff_t in shared mempolicy tree
        mempolicy trivia: slightly more consistent naming
        mempolicy trivia: delete those ancient pr_debug()s
        mempolicy: fix migrate_pages(2) syscall return nr_failed
        kernfs: drop shared NUMA mempolicy hooks
        hugetlbfs: drop shared NUMA mempolicy pretence
        mm/damon/sysfs-test: add a unit test for damon_sysfs_set_targets()
        ...
      ecae0bd5
    • Linus Torvalds's avatar
      Merge tag 'v6.7-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6 · bc3012f4
      Linus Torvalds authored
      Pull crypto updates from Herbert Xu:
       "API:
         - Add virtual-address based lskcipher interface
         - Optimise ahash/shash performance in light of costly indirect calls
         - Remove ahash alignmask attribute
      
        Algorithms:
         - Improve AES/XTS performance of 6-way unrolling for ppc
         - Remove some uses of obsolete algorithms (md4, md5, sha1)
         - Add FIPS 202 SHA-3 support in pkcs1pad
         - Add fast path for single-page messages in adiantum
         - Remove zlib-deflate
      
        Drivers:
         - Add support for S4 in meson RNG driver
         - Add STM32MP13x support in stm32
         - Add hwrng interface support in qcom-rng
         - Add support for deflate algorithm in hisilicon/zip"
      
      * tag 'v6.7-p1' of git://git.kernel.org/pub/scm/linux/kernel/git/herbert/crypto-2.6: (283 commits)
        crypto: adiantum - flush destination page before unmapping
        crypto: testmgr - move pkcs1pad(rsa,sha3-*) to correct place
        Documentation/module-signing.txt: bring up to date
        module: enable automatic module signing with FIPS 202 SHA-3
        crypto: asymmetric_keys - allow FIPS 202 SHA-3 signatures
        crypto: rsa-pkcs1pad - Add FIPS 202 SHA-3 support
        crypto: FIPS 202 SHA-3 register in hash info for IMA
        x509: Add OIDs for FIPS 202 SHA-3 hash and signatures
        crypto: ahash - optimize performance when wrapping shash
        crypto: ahash - check for shash type instead of not ahash type
        crypto: hash - move "ahash wrapping shash" functions to ahash.c
        crypto: talitos - stop using crypto_ahash::init
        crypto: chelsio - stop using crypto_ahash::init
        crypto: ahash - improve file comment
        crypto: ahash - remove struct ahash_request_priv
        crypto: ahash - remove crypto_ahash_alignmask
        crypto: gcm - stop using alignmask of ahash
        crypto: chacha20poly1305 - stop using alignmask of ahash
        crypto: ccm - stop using alignmask of ahash
        net: ipv6: stop checking crypto_ahash_alignmask
        ...
      bc3012f4
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm · 6803bd79
      Linus Torvalds authored
      Pull kvm updates from Paolo Bonzini:
       "ARM:
      
         - Generalized infrastructure for 'writable' ID registers, effectively
           allowing userspace to opt-out of certain vCPU features for its
           guest
      
         - Optimization for vSGI injection, opportunistically compressing
           MPIDR to vCPU mapping into a table
      
         - Improvements to KVM's PMU emulation, allowing userspace to select
           the number of PMCs available to a VM
      
         - Guest support for memory operation instructions (FEAT_MOPS)
      
         - Cleanups to handling feature flags in KVM_ARM_VCPU_INIT, squashing
           bugs and getting rid of useless code
      
         - Changes to the way the SMCCC filter is constructed, avoiding wasted
           memory allocations when not in use
      
         - Load the stage-2 MMU context at vcpu_load() for VHE systems,
           reducing the overhead of errata mitigations
      
         - Miscellaneous kernel and selftest fixes
      
        LoongArch:
      
         - New architecture for kvm.
      
           The hardware uses the same model as x86, s390 and RISC-V, where
           guest/host mode is orthogonal to supervisor/user mode. The
           virtualization extensions are very similar to MIPS, therefore the
           code also has some similarities but it's been cleaned up to avoid
           some of the historical bogosities that are found in arch/mips. The
           kernel emulates MMU, timer and CSR accesses, while interrupt
           controllers are only emulated in userspace, at least for now.
      
        RISC-V:
      
         - Support for the Smstateen and Zicond extensions
      
         - Support for virtualizing senvcfg
      
         - Support for virtualized SBI debug console (DBCN)
      
        S390:
      
         - Nested page table management can be monitored through tracepoints
           and statistics
      
        x86:
      
         - Fix incorrect handling of VMX posted interrupt descriptor in
           KVM_SET_LAPIC, which could result in a dropped timer IRQ
      
         - Avoid WARN on systems with Intel IPI virtualization
      
         - Add CONFIG_KVM_MAX_NR_VCPUS, to allow supporting up to 4096 vCPUs
           without forcing more common use cases to eat the extra memory
           overhead.
      
         - Add virtualization support for AMD SRSO mitigation (IBPB_BRTYPE and
           SBPB, aka Selective Branch Predictor Barrier).
      
         - Fix a bug where restoring a vCPU snapshot that was taken within 1
           second of creating the original vCPU would cause KVM to try to
           synchronize the vCPU's TSC and thus clobber the correct TSC being
           set by userspace.
      
         - Compute guest wall clock using a single TSC read to avoid
           generating an inaccurate time, e.g. if the vCPU is preempted
           between multiple TSC reads.
      
         - "Virtualize" HWCR.TscFreqSel to make Linux guests happy, which
           complain about a "Firmware Bug" if the bit isn't set for select
           F/M/S combos. Likewise "virtualize" (ignore) MSR_AMD64_TW_CFG to
           appease Windows Server 2022.
      
         - Don't apply side effects to Hyper-V's synthetic timer on writes
           from userspace to fix an issue where the auto-enable behavior can
           trigger spurious interrupts, i.e. do auto-enabling only for guest
           writes.
      
         - Remove an unnecessary kick of all vCPUs when synchronizing the
           dirty log without PML enabled.
      
         - Advertise "support" for non-serializing FS/GS base MSR writes as
           appropriate.
      
         - Harden the fast page fault path to guard against encountering an
           invalid root when walking SPTEs.
      
         - Omit "struct kvm_vcpu_xen" entirely when CONFIG_KVM_XEN=n.
      
         - Use the fast path directly from the timer callback when delivering
           Xen timer events, instead of waiting for the next iteration of the
           run loop. This was not done so far because previously proposed code
           had races, but now care is taken to stop the hrtimer at critical
           points such as restarting the timer or saving the timer information
           for userspace.
      
         - Follow the lead of upstream Xen and ignore the VCPU_SSHOTTMR_future
           flag.
      
         - Optimize injection of PMU interrupts that are simultaneous with
           NMIs.
      
         - Usual handful of fixes for typos and other warts.
      
        x86 - MTRR/PAT fixes and optimizations:
      
         - Clean up code that deals with honoring guest MTRRs when the VM has
           non-coherent DMA and host MTRRs are ignored, i.e. EPT is enabled.
      
         - Zap EPT entries when non-coherent DMA assignment stops/start to
           prevent using stale entries with the wrong memtype.
      
         - Don't ignore guest PAT for CR0.CD=1 && KVM_X86_QUIRK_CD_NW_CLEARED=y
      
           This was done as a workaround for virtual machine BIOSes that did
           not bother to clear CR0.CD (because ancient KVM/QEMU did not bother
           to set it, in turn), and there's zero reason to extend the quirk to
           also ignore guest PAT.
      
        x86 - SEV fixes:
      
         - Report KVM_EXIT_SHUTDOWN instead of EINVAL if KVM intercepts
           SHUTDOWN while running an SEV-ES guest.
      
         - Clean up the recognition of emulation failures on SEV guests, when
           KVM would like to "skip" the instruction but it had already been
           partially emulated. This makes it possible to drop a hack that
           second guessed the (insufficient) information provided by the
           emulator, and just do the right thing.
      
        Documentation:
      
         - Various updates and fixes, mostly for x86
      
         - MTRR and PAT fixes and optimizations"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/virt/kvm/kvm: (164 commits)
        KVM: selftests: Avoid using forced target for generating arm64 headers
        tools headers arm64: Fix references to top srcdir in Makefile
        KVM: arm64: Add tracepoint for MMIO accesses where ISV==0
        KVM: arm64: selftest: Perform ISB before reading PAR_EL1
        KVM: arm64: selftest: Add the missing .guest_prepare()
        KVM: arm64: Always invalidate TLB for stage-2 permission faults
        KVM: x86: Service NMI requests after PMI requests in VM-Enter path
        KVM: arm64: Handle AArch32 SPSR_{irq,abt,und,fiq} as RAZ/WI
        KVM: arm64: Do not let a L1 hypervisor access the *32_EL2 sysregs
        KVM: arm64: Refine _EL2 system register list that require trap reinjection
        arm64: Add missing _EL2 encodings
        arm64: Add missing _EL12 encodings
        KVM: selftests: aarch64: vPMU test for validating user accesses
        KVM: selftests: aarch64: vPMU register test for unimplemented counters
        KVM: selftests: aarch64: vPMU register test for implemented counters
        KVM: selftests: aarch64: Introduce vpmu_counter_access test
        tools: Import arm_pmuv3.h
        KVM: arm64: PMU: Allow userspace to limit PMCR_EL0.N for the guest
        KVM: arm64: Sanitize PM{C,I}NTEN{SET,CLR}, PMOVS{SET,CLR} before first run
        KVM: arm64: Add {get,set}_user for PM{C,I}NTEN{SET,CLR}, PMOVS{SET,CLR}
        ...
      6803bd79
    • Linus Torvalds's avatar
      Merge tag 'sh-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux · 5be99114
      Linus Torvalds authored
      Pull sh updates from John Paul Adrian Glaubitz:
       "While the previously announced patch series for converting arch/sh to
        device trees is not yet ready for inclusion to mainline and therefore
        didn't make it for this pull request, there are still a small number
        changes for v6.7 which include one platform (board plus CPU and driver
        code) removal plus two fixes.
      
        The removal sent in by Arnd Bergmann concerns the microdev board which
        was an early SuperH prototype board that was never used in production.
        With the board removed, we were able to drop the now unused code for
        the SH4-202 CPU and well as the driver code for the superhyway bus and
        a custom implementation for ioport_map() and ioport_unmap() which will
        allow us to simplify ioport handling in the future.
      
        Another patch set by Geert Uytterhoeven revives SuperH BIOS
        earlyprintk support which got accidentally disabled in
        e76fe574 ("sh: Remove old early serial console code V2"), the
        second patch in the series updates the documentation.
      
        Finally, a patch by Masami Hiramatsu fixes a regression reported by
        the kernel test robot which uncovered that arch/sh is not implementing
        arch_cmpxchg_local() and therefore needs use __generic_cmpxchg_local()
        instead"
      
      * tag 'sh-for-v6.7-tag1' of git://git.kernel.org/pub/scm/linux/kernel/git/glaubitz/sh-linux:
        locking/atomic: sh: Use generic_cmpxchg_local for arch_cmpxchg_local()
        Documentation: kernel-parameters: Add earlyprintk=bios on SH
        sh: bios: Revive earlyprintk support
        sh: machvec: Remove custom ioport_{un,}map()
        sh: Remove superhyway bus support
        sh: Remove unused SH4-202 support
        sh: Remove stale microdev board
      5be99114
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm · c9cacf7d
      Linus Torvalds authored
      Pull ARM updates from Russell King:
      
       - fix some kernel-doc warnings
      
       - fix stack depot IRQ stack filter
      
       - cast memset() byte to unsigned char
      
       - explicitly include correct DI includes
      
       - fix ARCH_LOW_ADDRESS_LIMIT with CONFIG_ZONE_DMA
      
       - fix get_user() problems when linker uses a veneer
      
       - make including linux/uaccess.h self-contained on ARM
      
      * tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm:
        ARM: 9326/1: make <linux/uaccess.h> self-contained for ARM
        ARM: 9324/1: fix get_user() broken with veneer
        ARM: 9323/1: mm: Fix ARCH_LOW_ADDRESS_LIMIT when CONFIG_ZONE_DMA
        ARM: 9322/1: Explicitly include correct DT includes
        ARM: 9321/1: memset: cast the constant byte to unsigned char
        ARM: 9320/1: fix stack depot IRQ stack filter
        ARM: 9319/1: sa1111: fix sa1111_probe kernel-doc warnings
      c9cacf7d
    • Linus Torvalds's avatar
      Merge tag 'm68knommu-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu · 8c04bddc
      Linus Torvalds authored
      Pull m68knommu updates from Greg Ungerer:
       "A few changes, most of them related to fixing warnings when compiling
        with "W=1". These follow up Geert's recent changes for M68K for this
        too. These ones complete the fixes for the nommu and ColdFire specific
        code.
      
        Also a couple of other fixes to improve ROM default addressing and
        compiling for the Cleopatra boards.
      
        Summary:
      
         - improve default Kconfig ROM section settings
      
         - fix compilation for some Cleopatra boards
      
         - fixes and cleanups for warnings compiling with 'W=1'"
      
      * tag 'm68knommu-for-v6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/gerg/m68knommu:
        m68k: 68000: fix warning in timer code
        m68k: 68000: fix warnings in 68000 interrupt handling
        m68k: coldfire: remove unused variable in MMU code
        m68k: coldfire: fix warnings in uboot argument processing
        m68k: coldfire: make mcf_maskimr() static
        m68k: coldfire: ensure gpio prototypes visible
        m68k: coldfire: add and use "vectors.h"
        m68knommu: fix compilation for ColdFire/Cleopatra boards
        m68knommu: improve config ROM setting defaults
      8c04bddc
    • Linus Torvalds's avatar
      Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma · 43468456
      Linus Torvalds authored
      Pull rdma updates from Jason Gunthorpe:
       "Nothing exciting this cycle, most of the diffstat is changing SPDX
        'or' to 'OR'.
      
        Summary:
      
         - Bugfixes for hns, mlx5, and hfi1
      
         - Hardening patches for size_*, counted_by, strscpy
      
         - rts fixes from static analysis
      
         - Dump SRQ objects in rdma netlink, with hns support
      
         - Fix a performance regression in mlx5 MR deregistration
      
         - New XDR (200Gb/lane) link speed
      
         - SRQ record doorbell latency optimization for hns
      
         - IPSEC support for mlx5 multi-port mode
      
         - ibv_rereg_mr() support for irdma
      
         - Affiliated event support for bnxt_re
      
         - Opt out for the spec compliant qkey security enforcement as we
           discovered SW that breaks under enforcement
      
         - Comment and trivial updates"
      
      * tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma: (50 commits)
        IB/mlx5: Fix init stage error handling to avoid double free of same QP and UAF
        RDMA/mlx5: Fix mkey cache WQ flush
        RDMA/hfi1: Workaround truncation compilation error
        IB/hfi1: Fix potential deadlock on &irq_src_lock and &dd->uctxt_lock
        RDMA/core: Remove NULL check before dev_{put, hold}
        RDMA/hfi1: Remove redundant assignment to pointer ppd
        RDMA/mlx5: Change the key being sent for MPV device affiliation
        RDMA/bnxt_re: Fix clang -Wimplicit-fallthrough in bnxt_re_handle_cq_async_error()
        RDMA/hns: Fix init failure of RoCE VF and HIP08
        RDMA/hns: Fix unnecessary port_num transition in HW stats allocation
        RDMA/hns: The UD mode can only be configured with DCQCN
        RDMA/hns: Add check for SL
        RDMA/hns: Fix signed-unsigned mixed comparisons
        RDMA/hns: Fix uninitialized ucmd in hns_roce_create_qp_common()
        RDMA/hns: Fix printing level of asynchronous events
        RDMA/core: Add support to set privileged QKEY parameter
        RDMA/bnxt_re: Do not report SRQ error in srq notification
        RDMA/bnxt_re: Report async events and errors
        RDMA/bnxt_re: Update HW interface headers
        IB/mlx5: Fix rdma counter binding for RAW QP
        ...
      43468456
    • Linus Torvalds's avatar
      Merge tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi · 6ed92e55
      Linus Torvalds authored
      Pull SCSI updates from James Bottomley:
       "Updates to the usual drivers (ufs, megaraid_sas, lpfc, target, ibmvfc,
        scsi_debug) plus the usual assorted minor fixes and updates.
      
        The major change this time around is a prep patch for rethreading of
        the driver reset handler API not to take a scsi_cmd structure which
        starts to reduce various drivers' dependence on scsi_cmd in error
        handling"
      
      * tag 'scsi-misc' of git://git.kernel.org/pub/scm/linux/kernel/git/jejb/scsi: (132 commits)
        scsi: ufs: core: Leave space for '\0' in utf8 desc string
        scsi: ufs: core: Conversion to bool not necessary
        scsi: ufs: core: Fix race between force complete and ISR
        scsi: megaraid: Fix up debug message in megaraid_abort_and_reset()
        scsi: aic79xx: Fix up NULL command in ahd_done()
        scsi: message: fusion: Initialize return value in mptfc_bus_reset()
        scsi: mpt3sas: Fix loop logic
        scsi: snic: Remove useless code in snic_dr_clean_pending_req()
        scsi: core: Add comment to target_destroy in scsi_host_template
        scsi: core: Clean up scsi_dev_queue_ready()
        scsi: pmcraid: Add missing scsi_device_put() in pmcraid_eh_target_reset_handler()
        scsi: target: core: Fix kernel-doc comment
        scsi: pmcraid: Fix kernel-doc comment
        scsi: core: Handle depopulation and restoration in progress
        scsi: ufs: core: Add support for parsing OPP
        scsi: ufs: core: Add OPP support for scaling clocks and regulators
        scsi: ufs: dt-bindings: common: Add OPP table
        scsi: scsi_debug: Add param to control sdev's allow_restart
        scsi: scsi_debug: Add debugfs interface to fail target reset
        scsi: scsi_debug: Add new error injection type: Reset LUN failed
        ...
      6ed92e55
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm · 90a300dc
      Linus Torvalds authored
      Pull libnvdimm updates from Ira Weiny:
      
       - updates to deprecated and changed interfaces
      
       - bug/kdoc fixes
      
      * tag 'libnvdimm-for-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/nvdimm/nvdimm:
        libnvdimm: remove kernel-doc warnings:
        testing: nvdimm: make struct class structures constant
        libnvdimm: Annotate struct nd_region with __counted_by
        nd_btt: Make BTT lanes preemptible
        libnvdimm/of_pmem: Use devm_kstrdup instead of kstrdup and check its return value
        dax: refactor deprecated strncpy
      90a300dc
    • Linus Torvalds's avatar
      Merge tag 'for-linus-6.7-1' of https://github.com/cminyard/linux-ipmi · e5760335
      Linus Torvalds authored
      Pull IPMI update from Corey Minyard:
       "Only one change, and I would normally just wait, but it will make the
        people trying to get rid of strncpy happy. Its a good change, anyway"
      
      * tag 'for-linus-6.7-1' of https://github.com/cminyard/linux-ipmi:
        ipmi: refactor deprecated strncpy
      e5760335
    • Linus Torvalds's avatar
      Merge tag 'leds-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds · 431f1051
      Linus Torvalds authored
      Pull LED updates from Lee Jones:
       "Core Frameworks:
         - Add support for a bunch more colours
      
        New Drivers:
         - Add support for Kinetic KTD2026/7 RGB/White LEDs
      
        New Functionality:
         - Add support for device to enter HW Controlled Mode to Turris Omnia
           LEDs
         - Add support for HW Gamma Correction to Turris Omnia LEDs
      
        Fix-ups:
         - Apply new __counted_by() annotation to several data structures
           containing flexible arrays
         - Rid the return value from Platform's .remove() operation
         - Use *_cansleep() variants for instances were threads can sleep
         - Improve the semantics when setting the brightness
         - Generic clean-ups; code reduction, coding style, standard patterns
         - Replace strncpy() with strscpy()
         - Fix-up / add various documentation
         - Re-author the GPIO associated Trigger to use trigger-sources
         - Move to using standard APIs and helpers
         - Improve error checking
         - Stop using static GPIO bases
      
        Bug Fixes:
         - Fix Pointer to Enum casing warnings
         - Do not pretend that I2C backed device supports SMBUS
         - Ensure PWM LEDs are extinguished when disabled, rather than held in
           a state
         - Fix 'output may be truncated' warnings"
      
      * tag 'leds-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/leds: (43 commits)
        leds: lp5521: Add an error check in lp5521_post_init_device
        leds: gpio: Update headers
        leds: gpio: Remove unneeded assignment
        leds: gpio: Move temporary variable for struct device to gpio_led_probe()
        leds: gpio: Refactor code to use devm_gpiod_get_index_optional()
        leds: gpio: Utilise PTR_ERR_OR_ZERO()
        leds: gpio: Keep driver firmware interface agnostic
        leds: core: Refactor led_update_brightness() to use standard pattern
        leds: turris-omnia: Fix brightness setting and trigger activating
        leds: sc27xx: Move mutex_init() down
        leds: trigger: netdev: Move size check in set_device_name
        leds: Add ktd202x driver
        dt-bindings: leds: Add Kinetic KTD2026/2027 LED
        leds: core: Add more colors from DT bindings to led_colors
        dt-bindings: leds: Last color ID is now 14 (LED_COLOR_ID_LIME)
        leds: tca6507: Don't use fixed GPIO base
        leds: lp3952: Convert to use maple tree register cache
        leds: lm392x: Convert to use maple tree register cache
        leds: aw200xx: Convert to use maple tree register cache
        leds: lm3601x: Convert to use maple tree register cache
        ...
      431f1051
    • Linus Torvalds's avatar
      Merge tag 'backlight-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight · 38984d78
      Linus Torvalds authored
      Pull backlight updates from Lee Jones:
       "New Functionality:
      
         - Add new Device Tree binding for Monolithic Power (MPS) MP3309C
           step-up converter
      
         - Document brightness-levels in bindings for; generic, LED and PWM
      
        Bug Fixes:
      
         - Ensure PWMs are disabled on .shutdown(), .suspend() and .remove()"
      
      * tag 'backlight-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/backlight:
        dt-bindings: backlight: Add brightness-levels related common properties
        backlight: pwm_bl: Disable PWM on shutdown, suspend and remove
        dt-bindings: backlight: Add MPS MP3309C
      38984d78
    • Linus Torvalds's avatar
      Merge tag 'mfd-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd · 27bc0782
      Linus Torvalds authored
      Pull MFD updates from Lee Jones:
       "Core Frameworks:
         - Allow all MFD Cell properties to be filled in dynamically at
           runtime
         - Skip disabled device nodes and continue to look for subsequent
           devices
      
        New Device Support:
         - Add support for Lunar Lake-M PCI to Intel LPSS PCI
         - Add support for Denverton to Intel ICH LPC
      
        New Functionality:
         - Add support for Clocks to Texas Instruments TWL* Core
         - Add support for Interrupts to STMicroelectronics STM32 Timers
      
        Fix-ups:
         - Convert to new devm-* (managed) power-off API
         - Remove superfluous code
         - Bunch of Device Tree additions, conversions and adaptions
         - Simplify obtaining resources (memory, device data) using unified
           API helpers
         - Trivial coding-style / spelling type clean-ups
         - Constify / staticify changes
         - Expand or edit on existing documentation
         - Convert some Regmap configurations to use the Maple Tree cache
         - Apply new __counted_by() annotation to several data structures
           containing flexible arrays
         - Replace strncpy() with strscpy()
      
        Bug Fixes:
         - Remove double put creating reference imbalances
         - Ensure headphone/lineout detection gets set when booting with ACPI"
      
      * tag 'mfd-next-6.7' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (73 commits)
        mfd: lpc_ich: Mark *_gpio_offsets data with const
        spmi: rename spmi device lookup helper
        spmi: document spmi_device_from_of() refcounting
        dt-bindings: mfd: armltd: Move Arm board syscon's to separate schema
        mfd: rk8xx: Add support for RK806 power off
        mfd: rk8xx: Add support for standard system-power-controller property
        dt-bindings: mfd: rk806: Allow system-power-controller property
        dt-bindings: mfd: rk8xx: Deprecate rockchip,system-power-controller
        dt-bindings: mfd: max8925: Convert to DT schema format
        mfd: Use i2c_get_match_data() in a selection of drivers
        mfd: Use device_get_match_data() in a bunch of drivers
        mfd: mc13xxx-spi/wm831x-spi: Use spi_get_device_match_data()
        mfd: motorola-cpcap: Drop unnecessary of_match_device() call
        mfd: arizona-spi: Set pdata.hpdet_channel for ACPI enumerated devs
        mfd: qcom-spmi-pmic: Switch to EXPORT_SYMBOL_GPL()
        mfd: qcom-spmi-pmic: Fix revid implementation
        mfd: qcom-spmi-pmic: Fix reference leaks in revid helper
        mfd: intel-m10-bmc: Change contact for ABI docs
        mfd: max8907: Convert to use maple tree register cache
        mfd: max77686: Convert to use maple tree register cache
        ...
      27bc0782
    • Linus Torvalds's avatar
      Merge tag 'sound-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound · edd8e84a
      Linus Torvalds authored
      Pull sound updates from Takashi Iwai:
       "Most of changes at this time are for ASoC, spread over ASoC core and
        drivers due to the API prefix standardization.
      
        Other than that, there have little change wrt API, rather lots of
        driver-specific updates and fixes.
      
        Some highlight below:
      
        ASoC:
         - Standardization of API prefix
         - GPIO API usage improvements
         - Support for HDA patches
         - Lots of work on SOF, including crash dump support
         - Fixes for noise when stopping some Sounwire CODECs
         - Support for AMD platforms with es83xx, AMD ACP 6.3 and 7.0, Awinc
           AT87390 and AW88399, many Intel platforms, many Mediatek platforms,
           Qualcomm SM6115 and SC7180 platforms, Richtek RTQ9128 and Texas
           Instruments TAS575x
      
        HD-audio and USB-audio:
         - Deferred probe support of audio component binding
         - More fixes and enhancements for Cirrus subcodecs
         - USB Scarlett2 mixer and McIntosh DSD quirk
      
        Others:
         - More enhancement of snd-aloop driver
         - Update MAINTAINERS entry for linux-sound mailing list"
      
      * tag 'sound-6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: (485 commits)
        ALSA: hda: cs35l41: Fix missing error code in cs35l41_smart_amp()
        ALSA: hda: cs35l41: mark cs35l41_verify_id() static
        ASoC: codecs: wsa883x: make use of new mute_unmute_on_trigger flag
        ASoC: soc-dai: add flag to mute and unmute stream during trigger
        ASoC: ams-delta.c: use component after check
        ASoC: amd: acp: select SND_SOC_AMD_ACP_LEGACY_COMMON for ACP63
        ASoC: codecs: aw88399: fix typo in Kconfig select
        ASoC: amd: acp: add ACPI dependency
        ASoC: Intel: avs: Add rt5514 machine board
        ASoC: Intel: avs: Add rt5514 machine board
        ALSA: scarlett2: Add missing check with firmware version control
        ALSA: virtio: use ack callback
        ALSA: scarlett2: Remap Level Meter values
        ALSA: scarlett2: Allow passing any output to line_out_remap()
        ALSA: scarlett2: Add support for reading firmware version
        ALSA: scarlett2: Rename Gen 3 config sets
        ALSA: scarlett2: Rename scarlett_gen2 to scarlett2
        ASoC: cs35l41: Detect CSPL errors when sending CSPL commands
        ALSA: hda: cs35l41: Check CSPL state after loading firmware
        ALSA: hda: cs35l41: Do not unload firmware before reset in system suspend
        ...
      edd8e84a
    • Linus Torvalds's avatar
      Merge tag 'for-linus-2023110101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid · 4ea4ed22
      Linus Torvalds authored
      Pull HID updates from Jiri Kosina:
      
       - fixes for crashes detected by CONFIG_KUNIT_ALL_TESTS in hid-uclogic
         driver (Jinjie Ruan)
      
       - HID selftests fixes and improvements (Benjamin Tissoires)
      
       - probe error handling path fixes in hid-nvidia-shield driver
         (Christophe JAILLET)
      
       - cleanup of LED handling in hid-nintendo (Martino Fontana)
      
       - big cleanup of logitech-hidpp probe code (Hans de Goede)
      
       - Suspend/Resume fix for USB Thinkpad Compact Keyboard (Jamie Lentin)
      
       - firmware detection improvement for Lenovo cptkbd (Mikhail
         Khvainitski)
      
       - IRQ shutdown and workqueue initialization fixes for hid-cp2112 driver
         (Danny Kaehn)
      
       - #ifdef CONFIG_PM removal from HID code (Thomas Weißschuh)
      
       - other assorted device-ID additions and quirks
      
      * tag 'for-linus-2023110101' of git://git.kernel.org/pub/scm/linux/kernel/git/hid/hid: (31 commits)
        HID: Add quirk for Dell Pro Wireless Keyboard and Mouse KM5221W
        HID: logitech-hidpp: Stop IO before calling hid_connect()
        HID: logitech-hidpp: Drop HIDPP_QUIRK_UNIFYING
        HID: logitech-hidpp: Drop delayed_work_cb()
        HID: logitech-hidpp: Fix connect event race
        HID: logitech-hidpp: Remove unused connected param from *_connect()
        HID: logitech-hidpp: Remove connected check for non-unifying devices
        HID: logitech-hidpp: Add hidpp_non_unifying_init() helper
        HID: logitech-hidpp: Move hidpp_overwrite_name() to before connect check
        HID: logitech-hidpp: Move g920_get_config() to just before hidpp_ff_init()
        HID: logitech-hidpp: Remove wtp_get_config() call from probe()
        HID: logitech-hidpp: Move get_wireless_feature_index() check to hidpp_connect_event()
        HID: logitech-hidpp: Revert "Don't restart communication if not necessary"
        HID: logitech-hidpp: Don't restart IO, instead defer hid_connect() only
        HID: rmi: remove #ifdef CONFIG_PM
        HID: multitouch: remove #ifdef CONFIG_PM
        HID: usbhid: remove #ifdef CONFIG_PM
        HID: core: remove #ifdef CONFIG_PM from hid_driver
        hid: lenovo: Resend all settings on reset_resume for compact keyboards
        HID: uclogic: Fix a work->entry not empty bug in __queue_work()
        ...
      4ea4ed22
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 27beb3ca
      Linus Torvalds authored
      Pull pci updates from Bjorn Helgaas:
       "Enumeration:
      
         - Use acpi_evaluate_dsm_typed() instead of open-coding _DSM
           evaluation to learn device characteristics (Andy Shevchenko)
      
         - Tidy multi-function header checks using new PCI_HEADER_TYPE_MASK
           definition (Ilpo Järvinen)
      
         - Simplify config access error checking in various drivers (Ilpo
           Järvinen)
      
         - Use pcie_capability_clear_word() (not
           pcie_capability_clear_and_set_word()) when only clearing (Ilpo
           Järvinen)
      
         - Add pci_get_base_class() to simplify finding devices using base
           class only (ignoring subclass and programming interface) (Sui
           Jingfeng)
      
         - Add pci_is_vga(), which includes ancient PCI_CLASS_NOT_DEFINED_VGA
           devices from before the Class Code was added to PCI (Sui Jingfeng)
      
         - Use pci_is_vga() for vgaarb, sysfs "boot_vga", virtio, qxl to
           include ancient VGA devices (Sui Jingfeng)
      
        Resource management:
      
         - Make pci_assign_unassigned_resources() non-init because sparc uses
           it after init (Randy Dunlap)
      
        Driver binding:
      
         - Retain .remove() and .probe() callbacks (previously __init) because
           sysfs may cause them to be called later (Uwe Kleine-König)
      
         - Prevent xHCI driver from claiming AMD VanGogh USB3 DRD device, so
           it can be claimed by dwc3 instead (Vicki Pfau)
      
        PCI device hotplug:
      
         - Add Ampere Altra Attention Indicator extension driver for acpiphp
           (D Scott Phillips)
      
        Power management:
      
         - Quirk VideoPropulsion Torrent QN16e with longer delay after reset
           (Lukas Wunner)
      
         - Prevent users from overriding drivers that say we shouldn't use
           D3cold (Lukas Wunner)
      
         - Avoid PME from D3hot/D3cold for AMD Rembrandt and Phoenix USB4
           because wakeup interrupts from those states don't work if amd-pmc
           has put the platform in a hardware sleep state (Mario Limonciello)
      
        IOMMU:
      
         - Disable ATS for Intel IPU E2000 devices with invalidation message
           endianness erratum (Bartosz Pawlowski)
      
        Error handling:
      
         - Factor out interrupt enable/disable into helpers (Kai-Heng Feng)
      
        Peer-to-peer DMA:
      
         - Fix flexible-array usage in struct pci_p2pdma_pagemap in case we
           ever use pagemaps with multiple entries (Gustavo A. R. Silva)
      
        ASPM:
      
         - Revert a change that broke when drivers disabled L1 and users later
           enabled an L1.x substate via sysfs, and fix a similar issue when
           users disabled L1 via sysfs (Heiner Kallweit)
      
        Endpoint framework:
      
         - Fix double free in __pci_epc_create() (Dan Carpenter)
      
         - Use IS_ERR_OR_NULL() to simplify endpoint core (Ruan Jinjie)
      
        Cadence PCIe controller driver:
      
         - Drop unused "is_rc" member (Li Chen)
      
        Freescale Layerscape PCIe controller driver:
      
         - Enable 64-bit addressing in endpoint mode (Guanhua Gao)
      
        Intel VMD host bridge driver:
      
         - Fix multi-function header check (Ilpo Järvinen)
      
        Microsoft Hyper-V host bridge driver:
      
         - Annotate struct hv_dr_state with __counted_by (Kees Cook)
      
        NVIDIA Tegra194 PCIe controller driver:
      
         - Drop setting of LNKCAP_MLW (max link width) since dw_pcie_setup()
           already does this via dw_pcie_link_set_max_link_width() (Yoshihiro
           Shimoda)
      
        Qualcomm PCIe controller driver:
      
         - Use PCIE_SPEED2MBS_ENC() to simplify encoding of link speed
           (Manivannan Sadhasivam)
      
         - Add a .write_dbi2() callback so DBI2 register writes, e.g., for
           setting the BAR size, work correctly (Manivannan Sadhasivam)
      
         - Enable ASPM for platforms that use 1.9.0 ops, because the PCI core
           doesn't enable ASPM states that haven't been enabled by the
           firmware (Manivannan Sadhasivam)
      
        Renesas R-Car Gen4 PCIe controller driver:
      
         - Add DesignWare core support (set max link width, EDMA_UNROLL flag,
           .pre_init(), .deinit(), etc) for use by R-Car Gen4 driver
           (Yoshihiro Shimoda)
      
         - Add driver and DT schema for DesignWare-based Renesas R-Car Gen4
           controller in both host and endpoint mode (Yoshihiro Shimoda)
      
        Xilinx NWL PCIe controller driver:
      
         - Update ECAM size to support 256 buses (Thippeswamy Havalige)
      
         - Stop setting bridge primary/secondary/subordinate bus numbers,
           since PCI core does this (Thippeswamy Havalige)
      
        Xilinx XDMA controller driver:
      
         - Add driver and DT schema for Zynq UltraScale+ MPSoCs devices with
           Xilinx XDMA Soft IP (Thippeswamy Havalige)
      
        Miscellaneous:
      
         - Use FIELD_GET()/FIELD_PREP() to simplify and reduce use of _SHIFT
           macros (Ilpo Järvinen, Bjorn Helgaas)
      
         - Remove logic_outb(), _outw(), outl() duplicate declarations (John
           Sanpe)
      
         - Replace unnecessary UTF-8 in Kconfig help text because menuconfig
           doesn't render it correctly (Liu Song)"
      
      * tag 'pci-v6.7-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci: (102 commits)
        PCI: qcom-ep: Add dedicated callback for writing to DBI2 registers
        PCI: Simplify pcie_capability_clear_and_set_word() to ..._clear_word()
        PCI: endpoint: Fix double free in __pci_epc_create()
        PCI: xilinx-xdma: Add Xilinx XDMA Root Port driver
        dt-bindings: PCI: xilinx-xdma: Add schemas for Xilinx XDMA PCIe Root Port Bridge
        PCI: xilinx-cpm: Move IRQ definitions to a common header
        PCI: xilinx-nwl: Modify ECAM size to enable support for 256 buses
        PCI: xilinx-nwl: Rename the NWL_ECAM_VALUE_DEFAULT macro
        dt-bindings: PCI: xilinx-nwl: Modify ECAM size in the DT example
        PCI: xilinx-nwl: Remove redundant code that sets Type 1 header fields
        PCI: hotplug: Add Ampere Altra Attention Indicator extension driver
        PCI/AER: Factor out interrupt toggling into helpers
        PCI: acpiphp: Allow built-in drivers for Attention Indicators
        PCI/portdrv: Use FIELD_GET()
        PCI/VC: Use FIELD_GET()
        PCI/PTM: Use FIELD_GET()
        PCI/PME: Use FIELD_GET()
        PCI/ATS: Use FIELD_GET()
        PCI/ATS: Show PASID Capability register width in bitmasks
        PCI/ASPM: Fix L1 substate handling in aspm_attr_store_common()
        ...
      27beb3ca
  3. 02 Nov, 2023 3 commits
    • Linus Torvalds's avatar
      Merge tag '6.7-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd · 4652b8e4
      Linus Torvalds authored
      Pull smb server updates from Steve French:
       "Seven ksmbd server fixes:
      
         - logoff improvement for multichannel bound connections
      
         - unicode fix for surrogate pairs
      
         - RDMA (smbdirect) fix for IB devices
      
         - fix locking deadlock in kern_path_create during rename
      
         - iov memory allocation fix
      
         - two minor cleanup patches (doc cleanup, and unused variable)"
      
      * tag '6.7-rc-ksmbd-server-fixes' of git://git.samba.org/ksmbd:
        ksmbd: no need to wait for binded connection termination at logoff
        ksmbd: add support for surrogate pair conversion
        ksmbd: fix missing RDMA-capable flag for IPoIB device in ksmbd_rdma_capable_netdev()
        ksmbd: fix recursive locking in vfs helpers
        ksmbd: fix kernel-doc comment of ksmbd_vfs_setxattr()
        ksmbd: reorganize ksmbd_iov_pin_rsp()
        ksmbd: Remove unused field in ksmbd_user struct
      4652b8e4
    • Linus Torvalds's avatar
      Merge tag 'fsnotify_for_v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 71fb7b32
      Linus Torvalds authored
      Pull fsnotify update from Jan Kara:
       "This time just one tiny cleanup for fsnotify"
      
      * tag 'fsnotify_for_v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        fanotify: delete useless parenthesis in FANOTIFY_INLINE_FH macro
      71fb7b32
    • Linus Torvalds's avatar
      Merge tag 'fs_for_v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs · 5efad0a7
      Linus Torvalds authored
      Pull ext2, udf, and quota updates from Jan Kara:
      
       - conversion of ext2 directory code to use folios
      
       - cleanups in UDF declarations
      
       - bugfix for quota interaction with file encryption
      
      * tag 'fs_for_v6.7-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/jack/linux-fs:
        ext2: Convert ext2_prepare_chunk and ext2_commit_chunk to folios
        ext2: Convert ext2_make_empty() to use a folio
        ext2: Convert ext2_unlink() and ext2_rename() to use folios
        ext2: Convert ext2_delete_entry() to use folios
        ext2: Convert ext2_empty_dir() to use a folio
        ext2: Convert ext2_add_link() to use a folio
        ext2: Convert ext2_readdir to use a folio
        ext2: Add ext2_get_folio()
        ext2: Convert ext2_check_page to ext2_check_folio
        highmem: Add folio_release_kmap()
        udf: Avoid unneeded variable length array in struct fileIdentDesc
        udf: Annotate struct udf_bitmap with __counted_by
        quota: explicitly forbid quota files from being encrypted
      5efad0a7