Skip to content
Snippets Groups Projects
  1. Apr 13, 2025
  2. Apr 12, 2025
    • Linus Torvalds's avatar
      Merge tag 'trace-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace · 7cdabafc
      Linus Torvalds authored
      Pull tracing fixes from Steven Rostedt:
      
       - Hide get_vm_area() from MMUless builds
      
         The function get_vm_area() is not defined when CONFIG_MMU is not
         defined. Hide that function within #ifdef CONFIG_MMU.
      
       - Fix output of synthetic events when they have dynamic strings
      
         The print fmt of the synthetic event's format file use to have "%.*s"
         for dynamic size strings even though the user space exported
         arguments had only __get_str() macro that provided just a nul
         terminated string. This was fixed so that user space could parse this
         properly.
      
         But the reason that it had "%.*s" was because internally it provided
         the maximum size of the string as one of the arguments. The fix that
         replaced "%.*s" with "%s" caused the trace output (when the kernel
         reads the event) to write "(efault)" as it would now read the length
         of the string as "%s".
      
         As the string provided is always nul terminated, there's no reason
         for the internal code to use "%.*s" anyway. Just remove the length
         argument to match the "%s" that is now in the format.
      
       - Fix the ftrace subops hash logic of the manager ops hash
      
         The function_graph uses the ftrace subops code. The subops code is a
         way to have a single ftrace_ops registered with ftrace to determine
         what functions will call the ftrace_ops callback. More than one user
         of function graph can register a ftrace_ops with it. The function
         graph infrastructure will then add this ftrace_ops as a subops with
         the main ftrace_ops it registers with ftrace. This is because the
         functions will always call the function graph callback which in turn
         calls the subops ftrace_ops callbacks.
      
         The main ftrace_ops must add a callback to all the functions that the
         subops want a callback from. When a subops is registered, it will
         update the main ftrace_ops hash to include the functions it wants.
         This is the logic that was broken.
      
         The ftrace_ops hash has a "filter_hash" and a "notrace_hash" where
         all the functions in the filter_hash but not in the notrace_hash are
         attached by ftrace. The original logic would have the main ftrace_ops
         filter_hash be a union of all the subops filter_hashes and the main
         notrace_hash would be a intersect of all the subops filter hashes.
         But this was incorrect because the notrace hash depends on the
         filter_hash it is associated to and not the union of all
         filter_hashes.
      
         Instead, when a subops is added, just include all the functions of
         the subops hash that are in its filter_hash but not in its
         notrace_hash. The main subops hash should not use its notrace hash,
         unless all of its subops hashes have an empty filter_hash (which
         means to attach to all functions), and then, and only then, the main
         ftrace_ops notrace hash can be the intersect of all the subops
         hashes.
      
         This not only fixes the bug, but also simplifies the code.
      
       - Add a selftest to better test the subops filtering
      
         Add a selftest that would catch the bug fixed by the above change.
      
       - Fix extra newline printed in function tracing with retval
      
         The function parameter code changed the output logic slightly and
         called print_graph_retval() and also printed a newline. The
         print_graph_retval() also prints a newline which caused blank lines
         to be printed in the function graph tracer when retval was added.
         This caused one of the selftests to fail if retvals were enabled.
         Instead remove the new line output from print_graph_retval() and have
         the callers always print the new line so that it doesn't have to do
         special logic if it calls print_graph_retval() or not.
      
       - Fix out-of-bound memory access in the runtime verifier
      
         When rv_is_container_monitor() is called on the last entry on the
         link list it references the next entry, which is the list head and
         causes an out-of-bound memory access.
      
      * tag 'trace-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/trace/linux-trace:
        rv: Fix out-of-bound memory access in rv_is_container_monitor()
        ftrace: Do not have print_graph_retval() add a newline
        tracing/selftest: Add test to better test subops filtering of function graph
        ftrace: Fix accounting of subop hashes
        ftrace: Properly merge notrace hashes
        tracing: Do not add length to print format in synthetic events
        tracing: Hide get_vm_area() from MMUless builds
      7cdabafc
    • Linus Torvalds's avatar
      Merge tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf · b676ac48
      Linus Torvalds authored
      Pull bpf fixes from Alexei Starovoitov:
      
       - Followup fixes for resilient spinlock (Kumar Kartikeya Dwivedi):
           - Make res_spin_lock test less verbose, since it was spamming BPF
             CI on failure, and make the check for AA deadlock stronger
           - Fix rebasing mistake and use architecture provided
             res_smp_cond_load_acquire
           - Convert BPF maps (queue_stack and ringbuf) to resilient spinlock
             to address long standing syzbot reports
      
       - Make sure that classic BPF load instruction from SKF_[NET|LL]_OFF
         offsets works when skb is fragmeneted (Willem de Bruijn)
      
      * tag 'bpf-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf:
        bpf: Convert ringbuf map to rqspinlock
        bpf: Convert queue_stack map to rqspinlock
        bpf: Use architecture provided res_smp_cond_load_acquire
        selftests/bpf: Make res_spin_lock AA test condition stronger
        selftests/net: test sk_filter support for SKF_NET_OFF on frags
        bpf: support SKF_NET_OFF and SKF_LL_OFF on skb frags
        selftests/bpf: Make res_spin_lock test less verbose
      b676ac48
    • Nam Cao's avatar
      rv: Fix out-of-bound memory access in rv_is_container_monitor() · 8d7861ac
      Nam Cao authored
      When rv_is_container_monitor() is called on the last monitor in
      rv_monitors_list, KASAN yells:
      
        BUG: KASAN: global-out-of-bounds in rv_is_container_monitor+0x101/0x110
        Read of size 8 at addr ffffffff97c7c798 by task setup/221
      
        The buggy address belongs to the variable:
         rv_monitors_list+0x18/0x40
      
      This is due to list_next_entry() is called on the last entry in the list.
      It wraps around to the first list_head, and the first list_head is not
      embedded in struct rv_monitor_def.
      
      Fix it by checking if the monitor is last in the list.
      
      Cc: stable@vger.kernel.org
      Cc: Gabriele Monaco <gmonaco@redhat.com>
      Fixes: cb85c660 ("rv: Add option for nested monitors and include sched")
      Link: https://lore.kernel.org/e85b5eeb7228bfc23b8d7d4ab5411472c54ae91b.1744355018.git.namcao@linutronix.de
      
      
      Signed-off-by: default avatarNam Cao <namcao@linutronix.de>
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      8d7861ac
    • Steven Rostedt's avatar
      ftrace: Do not have print_graph_retval() add a newline · 485acd20
      Steven Rostedt authored
      The retval and retaddr options for function_graph tracer will add a
      comment at the end of a function for both leaf and non leaf functions that
      looks like:
      
                     __wake_up_common(); /* ret=0x1 */
      
                     } /* pick_next_task_fair ret=0x0 */
      
      The function print_graph_retval() adds a newline after the "*/". But if
      that's not called, the caller function needs to make sure there's a
      newline added.
      
      This is confusing and when the function parameters code was added, it
      added a newline even when calling print_graph_retval() as the fact that
      the print_graph_retval() function prints a newline isn't obvious.
      
      This caused an extra newline to be printed and that made it fail the
      selftests when the retval option was set, as the selftests were not
      expecting blank lines being injected into the trace.
      
      Instead of having print_graph_retval() print a newline, just have the
      caller always print the newline regardless if it calls print_graph_retval()
      or not. This not only fixes this bug, but it also simplifies the code.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Link: https://lore.kernel.org/20250411133015.015ca393@gandalf.local.home
      
      
      Reported-by: default avatarMark Brown <broonie@kernel.org>
      Tested-by: default avatarMark Brown <broonie@kernel.org>
      Closes: https://lore.kernel.org/all/ccc40f2b-4b9e-4abd-8daf-d22fce2a86f0@sirena.org.uk/
      
      
      Fixes: ff5c9c57 ("ftrace: Add support for function argument to graph tracer")
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      485acd20
    • Linus Torvalds's avatar
      Merge tag 'pwm/for-6.15-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux · ecd5d67a
      Linus Torvalds authored
      Pull pwm fixes from Uwe Kleine-König:
       "A set of fixes for pwm core and various drivers
      
        The first three patches handle clk_get_rate() returning 0 (which might
        happen for example if the CCF is disabled). The first of these was
        found because this triggered a warning with clang, the two others by
        looking for similar issues in other drivers.
      
        The remaining three fixes address issues in the new waveform pwm API.
        Now that I worked on this a bit more, the finer details and corner
        cases are better understood and the code is fixed accordingly"
      
      * tag 'pwm/for-6.15-rc2-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/ukleinek/linux:
        pwm: axi-pwmgen: Let .round_waveform_tohw() signal when request was rounded up
        pwm: stm32: Search an appropriate duty_cycle if period cannot be modified
        pwm: Let pwm_set_waveform() succeed even if lowlevel driver rounded up
        pwm: fsl-ftm: Handle clk_get_rate() returning 0
        pwm: rcar: Improve register calculation
        pwm: mediatek: Prevent divide-by-zero in pwm_mediatek_config()
      ecd5d67a
  3. Apr 11, 2025
    • Linus Torvalds's avatar
      Merge tag 'v6.15-rc1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6 · 3bde70a2
      Linus Torvalds authored
      Pull smb client fixes from Steve French:
      
       - Fix multichannel decryption UAF
      
       - Fix regression mounting to onedrive shares
      
       - Fix missing mount option check for posix vs. noposix
      
       - Fix version field in WSL symlinks
      
       - Three minor cleanup to reparse point handling
      
       - SMB1 fix for WSL special files
      
       - SMB1 Kerberos fix
      
       - Add SMB3 defines for two new FS attributes
      
      * tag 'v6.15-rc1-smb3-client-fixes' of git://git.samba.org/sfrench/cifs-2.6:
        smb3: Add defines for two new FileSystemAttributes
        cifs: Fix querying of WSL CHR and BLK reparse points over SMB1
        cifs: Split parse_reparse_point callback to functions: get buffer and parse buffer
        cifs: Improve handling of name surrogate reparse points in reparse.c
        cifs: Remove explicit handling of IO_REPARSE_TAG_MOUNT_POINT in inode.c
        cifs: Fix encoding of SMB1 Session Setup Kerberos Request in non-UNICODE mode
        smb: client: fix UAF in decryption with multichannel
        cifs: Fix support for WSL-style symlinks
        smb311 client: fix missing tcon check when mounting with linux/posix extensions
        cifs: Ensure that all non-client-specific reparse points are processed by the server
      3bde70a2
    • Linus Torvalds's avatar
      Merge tag 'pci-v6.15-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci · 5d749923
      Linus Torvalds authored
      Pull pci fix from Bjorn Helgaas:
      
       - Run quirk_huawei_pcie_sva() before arm_smmu_probe_device(), which
         depends on the quirk, to avoid IOMMU initialization failures
         (Zhangfei Gao)
      
      * tag 'pci-v6.15-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/pci/pci:
        PCI: Run quirk_huawei_pcie_sva() before arm_smmu_probe_device()
      5d749923
    • Steven Rostedt's avatar
      tracing/selftest: Add test to better test subops filtering of function graph · a1fc89d4
      Steven Rostedt authored
      A bug was discovered that showed the accounting of the subops of the
      ftrace_ops filtering was incorrect. Add a new test to better test the
      filtering.
      
      This test creates two instances, where it will add various filters to both
      the set_ftrace_filter and the set_ftrace_notrace files and enable
      function_graph. Then it looks into the enabled_functions file to make sure
      that the filters are behaving correctly.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Andy Chiu <andybnac@gmail.com>
      Link: https://lore.kernel.org/20250409152720.380778379@goodmis.org
      
      
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      a1fc89d4
    • Steven Rostedt's avatar
      ftrace: Fix accounting of subop hashes · 0ae6b8ce
      Steven Rostedt authored
      The function graph infrastructure uses ftrace to hook to functions. It has
      a single ftrace_ops to manage all the users of function graph. Each
      individual user (tracing, bpf, fprobes, etc) has its own ftrace_ops to
      track the functions it will have its callback called from. These
      ftrace_ops are "subops" to the main ftrace_ops of the function graph
      infrastructure.
      
      Each ftrace_ops has a filter_hash and a notrace_hash that is defined as:
      
        Only trace functions that are in the filter_hash but not in the
        notrace_hash.
      
      If the filter_hash is empty, it means to trace all functions.
      If the notrace_hash is empty, it means do not disable any function.
      
      The function graph main ftrace_ops needs to be a superset containing all
      the functions to be traced by all the subops it has. The algorithm to
      perform this merge was incorrect.
      
      When the first subops was added to the main ops, it simply made the main
      ops a copy of the subops (same filter_hash and notrace_hash).
      
      When a second ops was added, it joined the new subops filter_hash with the
      main ops filter_hash as a union of the two sets. The intersect between the
      new subops notrace_hash and the main ops notrace_hash was created as the
      new notrace_hash of the main ops.
      
      The issue here is that it would then start tracing functions than no
      subops were tracing. For example if you had two subops that had:
      
      subops 1:
      
        filter_hash = '*sched*' # trace all functions with "sched" in it
        notrace_hash = '*time*' # except do not trace functions with "time"
      
      subops 2:
      
        filter_hash = '*lock*' # trace all functions with "lock" in it
        notrace_hash = '*clock*' # except do not trace functions with "clock"
      
      The intersect of '*time*' functions with '*clock*' functions could be the
      empty set. That means the main ops will be tracing all functions with
      '*time*' and all "*clock*" in it!
      
      Instead, modify the algorithm to be a bit simpler and correct.
      
      First, when adding a new subops, even if it's the first one, do not add
      the notrace_hash if the filter_hash is not empty. Instead, just add the
      functions that are in the filter_hash of the subops but not in the
      notrace_hash of the subops into the main ops filter_hash. There's no
      reason to add anything to the main ops notrace_hash.
      
      The notrace_hash of the main ops should only be non empty iff all subops
      filter_hashes are empty (meaning to trace all functions) and all subops
      notrace_hashes include the same functions.
      
      That is, the main ops notrace_hash is empty if any subops filter_hash is
      non empty.
      
      The main ops notrace_hash only has content in it if all subops
      filter_hashes are empty, and the content are only functions that intersect
      all the subops notrace_hashes. If any subops notrace_hash is empty, then
      so is the main ops notrace_hash.
      
      Cc: Masami Hiramatsu <mhiramat@kernel.org>
      Cc: Mark Rutland <mark.rutland@arm.com>
      Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
      Cc: Andrew Morton <akpm@linux-foundation.org>
      Cc: Shuah Khan <skhan@linuxfoundation.org>
      Cc: Andy Chiu <andybnac@gmail.com>
      Link: https://lore.kernel.org/20250409152720.216356767@goodmis.org
      
      
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      0ae6b8ce
    • Andy Chiu's avatar
      ftrace: Properly merge notrace hashes · 04a80a34
      Andy Chiu authored
      The global notrace hash should be jointly decided by the intersection of
      each subops's notrace hash, but not the filter hash.
      
      Cc: stable@vger.kernel.org
      Link: https://lore.kernel.org/20250408160258.48563-1-andybnac@gmail.com
      
      
      Fixes: 5fccc755 ("ftrace: Add subops logic to allow one ops to manage many")
      Signed-off-by: default avatarAndy Chiu <andybnac@gmail.com>
      [ fixed removing of freeing of filter_hash ]
      Signed-off-by: default avatarSteven Rostedt (Google) <rostedt@goodmis.org>
      04a80a34
    • Zhangfei Gao's avatar
      PCI: Run quirk_huawei_pcie_sva() before arm_smmu_probe_device() · c8ba3f8a
      Zhangfei Gao authored
      
      quirk_huawei_pcie_sva() sets properties needed by arm_smmu_probe_device(),
      but bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe path")
      changed the iommu_probe_device() flow so arm_smmu_probe_device() is now
      invoked before the quirk, leading to failures like this:
      
        reg-dummy reg-dummy: late IOMMU probe at driver bind, something fishy here!
        WARNING: CPU: 0 PID: 1 at drivers/iommu/iommu.c:449 __iommu_probe_device+0x140/0x570
        RIP: 0010:__iommu_probe_device+0x140/0x570
      
      The SR-IOV enumeration ordering changes like this:
      
        pci_iov_add_virtfn
          pci_device_add
            pci_fixup_device(pci_fixup_header)      <--
            device_add
              bus_notify
                iommu_bus_notifier
        +         iommu_probe_device
        +           arm_smmu_probe_device
          pci_bus_add_device
            pci_fixup_device(pci_fixup_final)       <--
            device_attach
              driver_probe_device
                really_probe
                  pci_dma_configure
                    acpi_dma_configure_id
        -             iommu_probe_device
        -               arm_smmu_probe_device
      
      The non-SR-IOV case is similar in that pci_device_add() is called from
      pci_scan_single_device() in the generic enumeration path and
      pci_bus_add_device() is called later, after all host bridges have been
      enumerated.
      
      Declare quirk_huawei_pcie_sva() as a header fixup to ensure that it happens
      before arm_smmu_probe_device().
      
      Fixes: bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe path")
      Reported-by: default avatarChaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
      Closes: https://lore.kernel.org/all/SJ1PR11MB61295DE21A1184AEE0786E25B9D22@SJ1PR11MB6129.namprd11.prod.outlook.com/
      
      
      Signed-off-by: default avatarZhangfei Gao <zhangfei.gao@linaro.org>
      [bhelgaas: commit log, add failure info and reporter]
      Signed-off-by: default avatarBjorn Helgaas <bhelgaas@google.com>
      Link: https://patch.msgid.link/20250317011352.5806-1-zhangfei.gao@linaro.org
      c8ba3f8a
    • Kumar Kartikeya Dwivedi's avatar
      bpf: Convert ringbuf map to rqspinlock · a650d389
      Kumar Kartikeya Dwivedi authored
      
      Convert the raw spinlock used by BPF ringbuf to rqspinlock. Currently,
      we have an open syzbot report of a potential deadlock. In addition, the
      ringbuf can fail to reserve spuriously under contention from NMI
      context.
      
      It is potentially attractive to enable unconstrained usage (incl. NMIs)
      while ensuring no deadlocks manifest at runtime, perform the conversion
      to rqspinlock to achieve this.
      
      This change was benchmarked for BPF ringbuf's multi-producer contention
      case on an Intel Sapphire Rapids server, with hyperthreading disabled
      and performance governor turned on. 5 warm up runs were done for each
      case before obtaining the results.
      
      Before (raw_spinlock_t):
      
      Ringbuf, multi-producer contention
      ==================================
      rb-libbpf nr_prod 1  11.440 ± 0.019M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 2  2.706 ± 0.010M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 3  3.130 ± 0.004M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 4  2.472 ± 0.003M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 8  2.352 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 12 2.813 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 16 1.988 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 20 2.245 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 24 2.148 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 28 2.190 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 32 2.490 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 36 2.180 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 40 2.201 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 44 2.226 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 48 2.164 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      rb-libbpf nr_prod 52 1.874 ± 0.001M/s (drops 0.000 ± 0.000M/s)
      
      After (rqspinlock_t):
      
      Ringbuf, multi-producer contention
      ==================================
      rb-libbpf nr_prod 1  11.078 ± 0.019M/s (drops 0.000 ± 0.000M/s) (-3.16%)
      rb-libbpf nr_prod 2  2.801 ± 0.014M/s (drops 0.000 ± 0.000M/s) (3.51%)
      rb-libbpf nr_prod 3  3.454 ± 0.005M/s (drops 0.000 ± 0.000M/s) (10.35%)
      rb-libbpf nr_prod 4  2.567 ± 0.002M/s (drops 0.000 ± 0.000M/s) (3.84%)
      rb-libbpf nr_prod 8  2.468 ± 0.001M/s (drops 0.000 ± 0.000M/s) (4.93%)
      rb-libbpf nr_prod 12 2.510 ± 0.001M/s (drops 0.000 ± 0.000M/s) (-10.77%)
      rb-libbpf nr_prod 16 2.075 ± 0.001M/s (drops 0.000 ± 0.000M/s) (4.38%)
      rb-libbpf nr_prod 20 2.640 ± 0.001M/s (drops 0.000 ± 0.000M/s) (17.59%)
      rb-libbpf nr_prod 24 2.092 ± 0.001M/s (drops 0.000 ± 0.000M/s) (-2.61%)
      rb-libbpf nr_prod 28 2.426 ± 0.005M/s (drops 0.000 ± 0.000M/s) (10.78%)
      rb-libbpf nr_prod 32 2.331 ± 0.004M/s (drops 0.000 ± 0.000M/s) (-6.39%)
      rb-libbpf nr_prod 36 2.306 ± 0.003M/s (drops 0.000 ± 0.000M/s) (5.78%)
      rb-libbpf nr_prod 40 2.178 ± 0.002M/s (drops 0.000 ± 0.000M/s) (-1.04%)
      rb-libbpf nr_prod 44 2.293 ± 0.001M/s (drops 0.000 ± 0.000M/s) (3.01%)
      rb-libbpf nr_prod 48 2.022 ± 0.001M/s (drops 0.000 ± 0.000M/s) (-6.56%)
      rb-libbpf nr_prod 52 1.809 ± 0.001M/s (drops 0.000 ± 0.000M/s) (-3.47%)
      
      There's a fair amount of noise in the benchmark, with numbers on reruns
      going up and down by 10%, so all changes are in the range of this
      disturbance, and we see no major regressions.
      
      Reported-by: default avatar <syzbot+850aaf14624dc0c6d366@syzkaller.appspotmail.com>
      Closes: https://lore.kernel.org/all/0000000000004aa700061379547e@google.com
      
      
      Signed-off-by: default avatarKumar Kartikeya Dwivedi <memxor@gmail.com>
      Link: https://lore.kernel.org/r/20250411101759.4061366-1-memxor@gmail.com
      
      
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      a650d389
    • Linus Torvalds's avatar
      Merge tag 'spi-fix-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi · e618ee89
      Linus Torvalds authored
      Pull spi fixes from Mark Brown:
       "A couple of cleanups for the error handling in the Freescale drivers"
      
      * tag 'spi-fix-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi:
        spi: fsl-spi: Remove redundant probe error message
        spi: fsl-qspi: Fix double cleanup in probe error path
      e618ee89
    • Linus Torvalds's avatar
      Merge tag 'ata-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux · 2f3e5ef2
      Linus Torvalds authored
      Pull ata fixes from Damien Le Moal:
      
       - Fix missing error checks during controller probe in the sata_sx4
         driver (Wentao)
      
       - Fix missing error checks during controller probe in the pata_pxa
         driver (Henry)
      
      * tag 'ata-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/libata/linux:
        ata: sata_sx4: Add error handling in pdc20621_i2c_read()
        ata: pata_pxa: Fix potential NULL pointer dereference in pxa_ata_probe()
      2f3e5ef2
    • Linus Torvalds's avatar
      Merge tag 'block-6.15-20250411' of git://git.kernel.dk/linux · ff885625
      Linus Torvalds authored
      Pull more block fixes from Jens Axboe:
       "Apparently my internal clock was off, or perhaps it was just wishful
        thinking, but I sent out block fixes yesterday as my brain assumed it
        was Friday. Subsequently, that missed the NVMe fixes that should go
        into this weeks release as well. Hence, here's a followup with those,
        and another simple fix.
      
         - NVMe pull request via Christoph:
             - nvmet fc/fcloop refcounting fixes (Daniel Wagner)
             - fix missed namespace/ANA scans (Hannes Reinecke)
             - fix a use after free in the new TCP netns support (Kuniyuki
               Iwashima)
             - fix a NULL instead of false review in multipath (Uday Shankar)
      
         - Use strscpy() for null_blk disk name copy"
      
      * tag 'block-6.15-20250411' of git://git.kernel.dk/linux:
        null_blk: Use strscpy() instead of strscpy_pad() in null_add_dev()
        nvmet-fc: put ref when assoc->del_work is already scheduled
        nvmet-fc: take tgtport reference only once
        nvmet-fc: update tgtport ref per assoc
        nvmet-fc: inline nvmet_fc_free_hostport
        nvmet-fc: inline nvmet_fc_delete_assoc
        nvmet-fcloop: add ref counting to lport
        nvmet-fcloop: replace kref with refcount
        nvmet-fcloop: swap list_add_tail arguments
        nvme-tcp: fix use-after-free of netns by kernel TCP socket.
        nvme: multipath: fix return value of nvme_available_path
        nvme: re-read ANA log page after ns scan completes
        nvme: requeue namespace scan on missed AENs
      ff885625
    • Linus Torvalds's avatar
      Merge tag 'iommu-fixes-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux · 023e62ce
      Linus Torvalds authored
      Pull iommu fixes from Joerg Roedel:
      
       - Fix two crashes, one in core code and a NULL-ptr dereference in the
         Mediatek IOMMU driver
      
       - Dma_ops cleanup fix for core code
      
       - Two fixes for Intel VT-d driver:
           - Fix posted MSI issue when users change cpu affinity
           - Remove invalid set_dma_ops() call in the iommu driver
      
       - Warning fix for Tegra IOMMU driver
      
       - Suspend/Resume fix for Exynos IOMMU driver
      
       - Probe failure fix for Renesas IOMMU driver
      
       - Cosmetic fix
      
      * tag 'iommu-fixes-v6.15-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/iommu/linux:
        iommu/tegra241-cmdqv: Fix warnings due to dmam_free_coherent()
        iommu: remove unneeded semicolon
        iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group
        iommu/exynos: Fix suspend/resume with IDENTITY domain
        iommu/ipmmu-vmsa: Register in a sensible order
        iommu: Clear iommu-dma ops on cleanup
        iommu/vt-d: Remove an unnecessary call set_dma_ops()
        iommu/vt-d: Wire up irq_ack() to irq_move_irq() for posted MSIs
        iommu: Fix crash in report_iommu_fault()
      023e62ce
    • Linus Torvalds's avatar
      Merge tag 'acpi-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm · c86e5b56
      Linus Torvalds authored
      Pull ACPI fixes from Rafael Wysocki:
       "These fix a recent regression in the ACPI button driver, add quirks
        related to EC wakeups from suspend-to-idle and fix coding mistakes
        related to the usage of sizeof() in the PPTT parser code:
      
        Summary:
      
         - Add suspend-to-idle EC wakeup quirks for Lenovo Go S (Mario
           Limonciello)
      
         - Prevent ACPI button from sending spurions KEY_POWER events to user
           space in some cases after a recent update (Mario Limonciello)
      
         - Compute the size of a structure instead of the size of a pointer in
           two places in the PPTT parser code (Jean-Marc Eurin)"
      
      * tag 'acpi-6.15-rc2' of git://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm:
        ACPI PPTT: Fix coding mistakes in a couple of sizeof() calls
        ACPI: EC: Set ec_no_wakeup for Lenovo Go S
        ACPI: button: Only send `KEY_POWER` for `ACPI_BUTTON_NOTIFY_STATUS`
      c86e5b56
    • Linus Torvalds's avatar
      Merge tag 's390-6.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux · 9b03fa10
      Linus Torvalds authored
      Pull s390 updates from Heiko Carstens:
       "Note that besides two bug fixes this includes three commits for IBM
        z17, which was announced this week.
      
         - Add IBM z17 bits:
             - Setup elf_platform for new machine types
             - Allow to compile the kernel with z17 optimizations
             - Add new performance counters
      
         - Fix mismatch between indicator bits and queue indexes in virtio CCW code
      
         - Fix double free in pmu setup error path"
      
      * tag 's390-6.15-3' of git://git.kernel.org/pub/scm/linux/kernel/git/s390/linux:
        s390/cpumf: Fix double free on error in cpumf_pmu_event_init()
        s390/cpumf: Update CPU Measurement facility extended counter set support
        s390: Allow to compile with z17 optimizations
        s390: Add z17 elf platform
        s390/virtio_ccw: Don't allocate/assign airqs for non-existing queues
      9b03fa10
    • Rafael J. Wysocki's avatar
      Merge branches 'acpi-ec' and 'acpi-button' · dcc4aca5
      Rafael J. Wysocki authored
      Merge updates of the ACPI EC and button drivers for 6.15-rc2:
      
       - Add suspend-to-idle EC wakeup quirks for Lenovo Go S (Mario
         Limonciello).
      
       - Prevent ACPI button from sending spurions KEY_POWER events to user
         space in some cases after a recent update (Mario Limonciello).
      
      * acpi-ec:
        ACPI: EC: Set ec_no_wakeup for Lenovo Go S
      
      * acpi-button:
        ACPI: button: Only send `KEY_POWER` for `ACPI_BUTTON_NOTIFY_STATUS`
      dcc4aca5
    • Thorsten Blum's avatar
      null_blk: Use strscpy() instead of strscpy_pad() in null_add_dev() · 3b607b75
      Thorsten Blum authored
      
      blk_mq_alloc_disk() already zero-initializes the destination buffer,
      making strscpy() sufficient for safely copying the disk's name. The
      additional NUL-padding performed by strscpy_pad() is unnecessary.
      
      If the destination buffer has a fixed length, strscpy() automatically
      determines its size using sizeof() when the argument is omitted. This
      makes the explicit size argument unnecessary.
      
      The source string is also NUL-terminated and meets the __must_be_cstr()
      requirement of strscpy().
      
      No functional changes intended.
      
      Signed-off-by: default avatarThorsten Blum <thorsten.blum@linux.dev>
      Reviewed-by: default avatarZhu Yanjun <yanjun.zhu@linux.dev>
      Reviewed-by: default avatarDamien Le Moal <dlemoal@kernel.org>
      Link: https://lore.kernel.org/r/20250410154727.883207-1-thorsten.blum@linux.dev
      
      
      Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
      3b607b75
    • Nicolin Chen's avatar
      iommu/tegra241-cmdqv: Fix warnings due to dmam_free_coherent() · 767e2200
      Nicolin Chen authored
      Two WARNINGs are observed when SMMU driver rolls back upon failure:
       arm-smmu-v3.9.auto: Failed to register iommu
       arm-smmu-v3.9.auto: probe with driver arm-smmu-v3 failed with error -22
       ------------[ cut here ]------------
       WARNING: CPU: 5 PID: 1 at kernel/dma/mapping.c:74 dmam_free_coherent+0xc0/0xd8
       Call trace:
        dmam_free_coherent+0xc0/0xd8 (P)
        tegra241_vintf_free_lvcmdq+0x74/0x188
        tegra241_cmdqv_remove_vintf+0x60/0x148
        tegra241_cmdqv_remove+0x48/0xc8
        arm_smmu_impl_remove+0x28/0x60
        devm_action_release+0x1c/0x40
       ------------[ cut here ]------------
       128 pages are still in use!
       WARNING: CPU: 16 PID: 1 at mm/page_alloc.c:6902 free_contig_range+0x18c/0x1c8
       Call trace:
        free_contig_range+0x18c/0x1c8 (P)
        cma_release+0x154/0x2f0
        dma_free_contiguous+0x38/0xa0
        dma_direct_free+0x10c/0x248
        dma_free_attrs+0x100/0x290
        dmam_free_coherent+0x78/0xd8
        tegra241_vintf_free_lvcmdq+0x74/0x160
        tegra241_cmdqv_remove+0x98/0x198
        arm_smmu_impl_remove+0x28/0x60
        devm_action_release+0x1c/0x40
      
      This is because the LVCMDQ queue memory are managed by devres, while that
      dmam_free_coherent() is called in the context of devm_action_release().
      
      Jason pointed out that "arm_smmu_impl_probe() has mis-ordered the devres
      callbacks if ops->device_remove() is going to be manually freeing things
      that probe allocated":
      https://lore.kernel.org/linux-iommu/20250407174408.GB1722458@nvidia.com/
      
      
      
      In fact, tegra241_cmdqv_init_structures() only allocates memory resources
      which means any failure that it generates would be similar to -ENOMEM, so
      there is no point in having that "falling back to standard SMMU" routine,
      as the standard SMMU would likely fail to allocate memory too.
      
      Remove the unwind part in tegra241_cmdqv_init_structures(), and return a
      proper error code to ask SMMU driver to call tegra241_cmdqv_remove() via
      impl_ops->device_remove(). Then, drop tegra241_vintf_free_lvcmdq() since
      devres will take care of that.
      
      Fixes: 483e0bd8 ("iommu/tegra241-cmdqv: Do not allocate vcmdq until dma_set_mask_and_coherent")
      Cc: stable@vger.kernel.org
      Suggested-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Signed-off-by: default avatarNicolin Chen <nicolinc@nvidia.com>
      Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Link: https://lore.kernel.org/r/20250407201908.172225-1-nicolinc@nvidia.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      767e2200
    • Pei Xiao's avatar
      iommu: remove unneeded semicolon · ae4814a3
      Pei Xiao authored
      
      cocci warnings:
      	drivers/iommu/dma-iommu.c:1788:2-3: Unneeded semicolon
      
      so remove unneeded semicolon to fix cocci warnings.
      
      Signed-off-by: default avatarPei Xiao <xiaopei01@kylinos.cn>
      Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Link: https://lore.kernel.org/r/tencent_73EEE47E6ECCF538229C9B9E6A0272DA2B05@qq.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      ae4814a3
    • Louis-Alexis Eyraud's avatar
      iommu/mediatek: Fix NULL pointer deference in mtk_iommu_device_group · 38e88440
      Louis-Alexis Eyraud authored
      
      Currently, mtk_iommu calls during probe iommu_device_register before
      the hw_list from driver data is initialized. Since iommu probing issue
      fix, it leads to NULL pointer dereference in mtk_iommu_device_group when
      hw_list is accessed with list_first_entry (not null safe).
      
      So, change the call order to ensure iommu_device_register is called
      after the driver data are initialized.
      
      Fixes: 9e3a2a64 ("iommu/mediatek: Adapt sharing and non-sharing pgtable case")
      Fixes: bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe path")
      Reviewed-by: default avatarYong Wu <yong.wu@mediatek.com>
      Tested-by: Chen-Yu Tsai <wenst@chromium.org> # MT8183 Juniper, MT8186 Tentacruel
      Reviewed-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
      Tested-by: default avatarAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
      Signed-off-by: default avatarLouis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
      Link: https://lore.kernel.org/r/20250403-fix-mtk-iommu-error-v2-1-fe8b18f8b0a8@collabora.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      38e88440
    • Marek Szyprowski's avatar
      iommu/exynos: Fix suspend/resume with IDENTITY domain · 99deffc4
      Marek Szyprowski authored
      
      Commit bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe
      path") changed the sequence of probing the SYSMMU controller devices and
      calls to arm_iommu_attach_device(), what results in resuming SYSMMU
      controller earlier, when it is still set to IDENTITY mapping. Such change
      revealed the bug in IDENTITY handling in the exynos-iommu driver. When
      SYSMMU controller is set to IDENTITY mapping, data->domain is NULL, so
      adjust checks in suspend & resume callbacks to handle this case
      correctly.
      
      Fixes: b3d14960 ("iommu/exynos: Implement an IDENTITY domain")
      Signed-off-by: default avatarMarek Szyprowski <m.szyprowski@samsung.com>
      Link: https://lore.kernel.org/r/20250401202731.2810474-1-m.szyprowski@samsung.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      99deffc4
    • Robin Murphy's avatar
      iommu/ipmmu-vmsa: Register in a sensible order · d9d3cede
      Robin Murphy authored
      
      IPMMU registers almost-initialised instances, but misses assigning the
      drvdata to make them fully functional, so initial calls back into
      ipmmu_probe_device() are likely to fail unnecessarily. Reorder this to
      work as it should, also pruning the long-out-of-date comment and adding
      the missing sysfs cleanup on error for good measure.
      
      Reported-by: default avatarGeert Uytterhoeven <geert@linux-m68k.org>
      Fixes: bcb81ac6 ("iommu: Get DT/ACPI parsing into the proper probe path")
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Tested-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Reviewed-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
      Link: https://lore.kernel.org/r/53be6667544de65a15415b699e38a9a965692e45.1742481687.git.robin.murphy@arm.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      d9d3cede
    • Robin Murphy's avatar
      iommu: Clear iommu-dma ops on cleanup · 280e5a30
      Robin Murphy authored
      
      If iommu_device_register() encounters an error, it can end up tearing
      down already-configured groups and default domains, however this
      currently still leaves devices hooked up to iommu-dma (and even
      historically the behaviour in this area was at best inconsistent across
      architectures/drivers...) Although in the case that an IOMMU is present
      whose driver has failed to probe, users cannot necessarily expect DMA to
      work anyway, it's still arguable that we should do our best to put
      things back as if the IOMMU driver was never there at all, and certainly
      the potential for crashing in iommu-dma itself is undesirable. Make sure
      we clean up the dev->dma_iommu flag along with everything else.
      
      Reported-by: default avatarChen-Yu Tsai <wenst@chromium.org>
      Signed-off-by: default avatarRobin Murphy <robin.murphy@arm.com>
      Closes: https://lore.kernel.org/all/CAGXv+5HJpTYmQ2h-GD7GjyeYT7bL9EBCvu0mz5LgpzJZtzfW0w@mail.gmail.com/
      
      
      Tested-by: default avatarChen-Yu Tsai <wenst@chromium.org>
      Reviewed-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Link: https://lore.kernel.org/r/e788aa927f6d827dd4ea1ed608fada79f2bab030.1744284228.git.robin.murphy@arm.com
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      280e5a30
    • Petr Tesarik's avatar
      iommu/vt-d: Remove an unnecessary call set_dma_ops() · 7d8c490b
      Petr Tesarik authored
      
      Do not touch per-device DMA ops when the driver has been converted to use
      the dma-iommu API.
      
      Fixes: c588072b ("iommu/vt-d: Convert intel iommu driver to the iommu ops")
      Signed-off-by: default avatarPetr Tesarik <ptesarik@suse.com>
      Link: https://lore.kernel.org/r/20250403165605.278541-1-ptesarik@suse.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      7d8c490b
    • Sean Christopherson's avatar
      iommu/vt-d: Wire up irq_ack() to irq_move_irq() for posted MSIs · 548183ea
      Sean Christopherson authored
      
      Set the posted MSI irq_chip's irq_ack() hook to irq_move_irq() instead of
      a dummy/empty callback so that posted MSIs process pending changes to the
      IRQ's SMP affinity.  Failure to honor a pending set-affinity results in
      userspace being unable to change the effective affinity of the IRQ, as
      IRQD_SETAFFINITY_PENDING is never cleared and so irq_set_affinity_locked()
      always defers moving the IRQ.
      
      The issue is most easily reproducible by setting /proc/irq/xx/smp_affinity
      multiple times in quick succession, as only the first update is likely to
      be handled in process context.
      
      Fixes: ed1e48ea ("iommu/vt-d: Enable posted mode for device MSIs")
      Cc: Robert Lippert <rlippert@google.com>
      Cc: Thomas Gleixner <tglx@linutronix.de>
      Reported-by: default avatarWentao Yang <wentaoyang@google.com>
      Cc: stable@vger.kernel.org
      Signed-off-by: default avatarSean Christopherson <seanjc@google.com>
      Reviewed-by: default avatarThomas Gleixner <tglx@linutronix.de>
      Link: https://lore.kernel.org/r/20250321194249.1217961-1-seanjc@google.com
      
      
      Signed-off-by: default avatarLu Baolu <baolu.lu@linux.intel.com>
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      548183ea
    • Fedor Pchelkin's avatar
      iommu: Fix crash in report_iommu_fault() · df4bf3fa
      Fedor Pchelkin authored
      
      The following crash is observed while handling an IOMMU fault with a
      recent kernel:
      
      kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
      BUG: unable to handle page fault for address: ffff8c708299f700
      PGD 19ee01067 P4D 19ee01067 PUD 101c10063 PMD 80000001028001e3
      Oops: Oops: 0011 [#1] SMP NOPTI
      CPU: 4 UID: 0 PID: 139 Comm: irq/25-AMD-Vi Not tainted 6.15.0-rc1+ #20 PREEMPT(lazy)
      Hardware name: LENOVO 21D0/LNVNB161216, BIOS J6CN50WW 09/27/2024
      RIP: 0010:0xffff8c708299f700
      Call Trace:
       <TASK>
       ? report_iommu_fault+0x78/0xd3
       ? amd_iommu_report_page_fault+0x91/0x150
       ? amd_iommu_int_thread+0x77/0x180
       ? __pfx_irq_thread_fn+0x10/0x10
       ? irq_thread_fn+0x23/0x60
       ? irq_thread+0xf9/0x1e0
       ? __pfx_irq_thread_dtor+0x10/0x10
       ? __pfx_irq_thread+0x10/0x10
       ? kthread+0xfc/0x240
       ? __pfx_kthread+0x10/0x10
       ? ret_from_fork+0x34/0x50
       ? __pfx_kthread+0x10/0x10
       ? ret_from_fork_asm+0x1a/0x30
       </TASK>
      
      report_iommu_fault() checks for an installed handler comparing the
      corresponding field to NULL. It can (and could before) be called for a
      domain with a different cookie type - IOMMU_COOKIE_DMA_IOVA, specifically.
      Cookie is represented as a union so we may end up with a garbage value
      treated there if this happens for a domain with another cookie type.
      
      Formerly there were two exclusive cookie types in the union.
      IOMMU_DOMAIN_SVA has a dedicated iommu_report_device_fault().
      
      Call the fault handler only if the passed domain has a required cookie
      type.
      
      Found by Linux Verification Center (linuxtesting.org).
      
      Fixes: 6aa63a4e ("iommu: Sort out domain user data")
      Signed-off-by: default avatarFedor Pchelkin <pchelkin@ispras.ru>
      Reviewed-by: default avatarKevin Tian <kevin.tian@intel.com>
      Reviewed-by: default avatarJason Gunthorpe <jgg@nvidia.com>
      Link: https://lore.kernel.org/r/20250408213342.285955-1-pchelkin@ispras.ru
      
      
      Signed-off-by: default avatarJoerg Roedel <jroedel@suse.de>
      df4bf3fa
    • Linus Torvalds's avatar
      Merge tag 'drm-fixes-2025-04-11-1' of https://gitlab.freedesktop.org/drm/kernel · 900241a5
      Linus Torvalds authored
      Pull drm fixes from Dave Airlie:
       "Weekly fixes, as expected it has a bit more in it than probably usual
        for rc2. amdgpu/xe/i915 lead the way with fixes all over for a bunch
        of other drivers. Nothing major stands out from what I can see.
      
        tests:
         - Clean up struct drm_display_mode in various places
      
        i915:
         - Fix scanline offset for LNL+ and BMG+
         - Fix GVT unterminated-string-initialization build warning
         - Fix DP rate limit when sink doesn't support TPS4
         - Handle GDDR + ECC memory type detection
         - Fix VRR parameter change check
         - Fix fence not released on early probe errors
         - Disable render power gating during live selftests
      
        xe:
         - Add another BMG PCI ID
         - Fix UAFs on migration paths
         - Fix shift-out-of-bounds access on TLB invalidation
         - Ensure ccs_mode is correctly set on gt reset
         - Extend some HW workarounds to Xe3
         - Fix PM runtime get/put on sysfs files
         - Fix u64 division on 32b
         - Fix flickering due to missing L3 invalidations
         - Fix missing error code return
      
        amdgpu:
         - MES FW version caching fixes
         - Only use GTT as a fallback if we already have a backing store
         - dma_buf fix
         - IP discovery fix
         - Replay and PSR with VRR fix
         - DC FP fixes
         - eDP fixes
         - KIQ TLB invalidate fix
         - Enable dmem groups support
         - Allow pinning VRAM dma bufs if imports can do P2P
         - Workload profile fixes
         - Prevent possible division by 0 in fan handling
      
        amdkfd:
         - Queue reset fixes
      
        imagination:
         - Fix overflow
         - Fix use-after-free
      
        ivpu:
         - Fix suspend/resume
      
        nouveau:
         - Do not deref dangling pointer
      
        rockchip:
         - Set DP/HDMI registers correctly
      
        udmabuf:
         - Fix overflow
      
        virtgpu:
         - Set reservation lock on dma-buf import
         - Fix error handling in prepare_fb"
      
      * tag 'drm-fixes-2025-04-11-1' of https://gitlab.freedesktop.org/drm/kernel: (58 commits)
        drm/rockchip: dw_hdmi_qp: Fix io init for dw_hdmi_qp_rockchip_resume
        drm/rockchip: vop2: Fix interface enable/mux setting of DP1 on rk3588
        drm/amdgpu/mes12: optimize MES pipe FW version fetching
        drm/amd/pm/smu11: Prevent division by zero
        drm/amdgpu: cancel gfx idle work in device suspend for s0ix
        drm/amd/display: pause the workload setting in dm
        drm/amdgpu/pm/swsmu: implement pause workload profile
        drm/amdgpu/pm: add workload profile pause helper
        drm/i915/huc: Fix fence not released on early probe errors
        drm/i915/vrr: Add vrr.vsync_{start, end} in vrr_params_changed
        drm/tests: probe-helper: Fix drm_display_mode memory leak
        drm/tests: modes: Fix drm_display_mode memory leak
        drm/tests: modes: Fix drm_display_mode memory leak
        drm/tests: cmdline: Fix drm_display_mode memory leak
        drm/tests: modeset: Fix drm_display_mode memory leak
        drm/tests: modeset: Fix drm_display_mode memory leak
        drm/tests: helpers: Create kunit helper to destroy a drm_display_mode
        drm/xe: Restore EIO errno return when GuC PC start fails
        drm/xe: Invalidate L3 read-only cachelines for geometry streams too
        drm/xe: avoid plain 64-bit division
        ...
      900241a5
    • Linus Torvalds's avatar
      Merge tag 'bcachefs-2025-04-10' of git://evilpiepirate.org/bcachefs · ef778588
      Linus Torvalds authored
      Pull bcachefs fixes from Kent Overstreet:
       "Mostly minor fixes.
      
        Eric Biggers' crypto API conversion is included because of long
        standing sporadic crashes - mostly, but not entirely syzbot - in the
        crypto API code when calling poly1305, which have been nigh impossible
        to reproduce and debug.
      
        His rework deletes the code where we've seen the crashes, so either
        it'll be a fix or we'll end up with backtraces we can debug. (Thanks
        Eric!)"
      
      * tag 'bcachefs-2025-04-10' of git://evilpiepirate.org/bcachefs:
        bcachefs: Use sort_nonatomic() instead of sort()
        bcachefs: Remove unnecessary softdep on xxhash
        bcachefs: use library APIs for ChaCha20 and Poly1305
        bcachefs: Fix duplicate "ro,read_only" in opts at startup
        bcachefs: Fix UAF in bchfs_read()
        bcachefs: Use cpu_to_le16 for dirent lengths
        bcachefs: Fix type for parameter in journal_advance_devs_to_next_bucket
        bcachefs: Fix escape sequence in prt_printf
      ef778588
  4. Apr 10, 2025
Loading