Changelog in Linux kernel 5.15.170

 
ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue [+ + +]
Author: Shubham Panwar <shubiisp8@gmail.com>
Date:   Sun Oct 20 15:20:46 2024 +0530

    ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue
    
    commit 8fa73ee44daefc884c53a25158c25a4107eb5a94 upstream.
    
    Add a DMI quirk for Samsung Galaxy Book2 to fix an initial lid state
    detection issue.
    
    The _LID device incorrectly returns the lid status as "closed" during
    boot, causing the system to enter a suspend loop right after booting.
    
    The quirk ensures that the correct lid state is reported initially,
    preventing the system from immediately suspending after startup.  It
    only addresses the initial lid state detection and ensures proper
    system behavior upon boot.
    
    Signed-off-by: Shubham Panwar <shubiisp8@gmail.com>
    Link: https://patch.msgid.link/20241020095045.6036-2-shubiisp8@gmail.com
    [ rjw: Changelog edits ]
    Cc: All applicable <stable@vger.kernel.org>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[] [+ + +]
Author: Christian Heusel <christian@heusel.eu>
Date:   Thu Oct 17 13:16:26 2024 +0200

    ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[]
    
    commit 53f1a907d36fb3aa02a4d34073bcec25823a6c74 upstream.
    
    The LG Gram Pro 16 2-in-1 (2024) the 16T90SP has its keybopard IRQ (1)
    described as ActiveLow in the DSDT, which the kernel overrides to EdgeHigh
    which breaks the keyboard.
    
    Add the 16T90SP to the irq1_level_low_skip_override[] quirk table to fix
    this.
    
    Reported-by: Dirk Holten <dirk.holten@gmx.de>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219382
    Cc: All applicable <stable@vger.kernel.org>
    Suggested-by: Dirk Holten <dirk.holten@gmx.de>
    Signed-off-by: Christian Heusel <christian@heusel.eu>
    Link: https://patch.msgid.link/20241017-lg-gram-pro-keyboard-v2-1-7c8fbf6ff718@heusel.eu
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size() [+ + +]
Author: Andrey Shumilin <shum.sdl@nppct.ru>
Date:   Fri Oct 18 09:00:18 2024 +0300

    ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size()
    
    [ Upstream commit 72cafe63b35d06b5cfbaf807e90ae657907858da ]
    
    The step variable is initialized to zero. It is changed in the loop,
    but if it's not changed it will remain zero. Add a variable check
    before the division.
    
    The observed behavior was introduced by commit 826b5de90c0b
    ("ALSA: firewire-lib: fix insufficient PCM rule for period/buffer size"),
    and it is difficult to show that any of the interval parameters will
    satisfy the snd_interval_test() condition with data from the
    amdtp_rate_table[] table.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 826b5de90c0b ("ALSA: firewire-lib: fix insufficient PCM rule for period/buffer size")
    Signed-off-by: Andrey Shumilin <shum.sdl@nppct.ru>
    Reviewed-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Link: https://patch.msgid.link/20241018060018.1189537-1-shum.sdl@nppct.ru
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: hda/cs8409: Fix possible NULL dereference [+ + +]
Author: Murad Masimov <m.masimov@maxima.ru>
Date:   Fri Oct 11 01:16:45 2024 +0300

    ALSA: hda/cs8409: Fix possible NULL dereference
    
    [ Upstream commit c9bd4a82b4ed32c6d1c90500a52063e6e341517f ]
    
    If snd_hda_gen_add_kctl fails to allocate memory and returns NULL, then
    NULL pointer dereference will occur in the next line.
    
    Since dolphin_fixups function is a hda_fixup function which is not supposed
    to return any errors, add simple check before dereference, ignore the fail.
    
    Found by Linux Verification Center (linuxtesting.org) with SVACE.
    
    Fixes: 20e507724113 ("ALSA: hda/cs8409: Add support for dolphin")
    Signed-off-by: Murad Masimov <m.masimov@maxima.ru>
    Link: https://patch.msgid.link/20241010221649.1305-1-m.masimov@maxima.ru
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593 [+ + +]
Author: José Relvas <josemonsantorelvas@gmail.com>
Date:   Sun Oct 20 11:27:56 2024 +0100

    ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593
    
    commit 35fdc6e1c16099078bcbd73a6c8f1733ae7f1909 upstream.
    
    The Acer Predator G9-593 has a 2+1 speaker system which isn't probed
    correctly.
    This patch adds a quirk with the proper pin connections.
    
    Note that I do not own this laptop, so I cannot guarantee that this
    fixes the issue.
    Testing was done by other users here:
    https://discussion.fedoraproject.org/t/-/118482
    
    This model appears to have two different dev IDs...
    
    - 0x1177 (as seen on the forum link above)
    - 0x1178 (as seen on https://linux-hardware.org/?probe=127df9999f)
    
    I don't think the audio system was changed between model revisions, so
    the patch applies for both IDs.
    
    Signed-off-by: José Relvas <josemonsantorelvas@gmail.com>
    Link: https://patch.msgid.link/20241020102756.225258-1-josemonsantorelvas@gmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

ALSA: hda/realtek: Update default depop procedure [+ + +]
Author: Kailang Yang <kailang@realtek.com>
Date:   Wed Oct 23 16:13:10 2024 +0800

    ALSA: hda/realtek: Update default depop procedure
    
    [ Upstream commit e3ea2757c312e51bbf62ebc434a6f7df1e3a201f ]
    
    Old procedure has a chance to meet Headphone no output.
    
    Fixes: c2d6af53a43f ("ALSA: hda/realtek - Add default procedure for suspend and resume state")
    Signed-off-by: Kailang Yang <kailang@realtek.com>
    Link: https://lore.kernel.org/17b717a0a0b04a77aea4a8ec820cba13@realtek.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning [+ + +]
Author: junhua huang <huang.junhua@zte.com.cn>
Date:   Wed Dec 28 09:54:12 2022 +0800

    arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning
    
    commit ef08c0fadd8a17ebe429b85e23952dac3263ad34 upstream.
    
    After we fixed the uprobe inst endian in aarch_be, the sparse check report
    the following warning info:
    
    sparse warnings: (new ones prefixed by >>)
    >> kernel/events/uprobes.c:223:25: sparse: sparse: restricted __le32 degrades to integer
    >> kernel/events/uprobes.c:574:56: sparse: sparse: incorrect type in argument 4 (different base types)
    @@     expected unsigned int [addressable] [usertype] opcode @@     got restricted __le32 [usertype] @@
       kernel/events/uprobes.c:574:56: sparse:     expected unsigned int [addressable] [usertype] opcode
       kernel/events/uprobes.c:574:56: sparse:     got restricted __le32 [usertype]
    >> kernel/events/uprobes.c:1483:32: sparse: sparse: incorrect type in initializer (different base types)
    @@     expected unsigned int [usertype] insn @@     got restricted __le32 [usertype] @@
       kernel/events/uprobes.c:1483:32: sparse:     expected unsigned int [usertype] insn
       kernel/events/uprobes.c:1483:32: sparse:     got restricted __le32 [usertype]
    
    use the __le32 to u32 for uprobe_opcode_t, to keep the same.
    
    Fixes: 60f07e22a73d ("arm64:uprobe fix the uprobe SWBP_INSN in big-endian")
    Reported-by: kernel test robot <lkp@intel.com>
    Signed-off-by: junhua huang <huang.junhua@zte.com.cn>
    Link: https://lore.kernel.org/r/202212280954121197626@zte.com.cn
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
arm64: Force position-independent veneers [+ + +]
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Fri Sep 27 11:18:38 2024 +0100

    arm64: Force position-independent veneers
    
    [ Upstream commit 9abe390e689f4f5c23c5f507754f8678431b4f72 ]
    
    Certain portions of code always need to be position-independent
    regardless of CONFIG_RELOCATABLE, including code which is executed in an
    idmap or which is executed before relocations are applied. In some
    kernel configurations the LLD linker generates position-dependent
    veneers for such code, and when executed these result in early boot-time
    failures.
    
    Marc Zyngier encountered a boot failure resulting from this when
    building a (particularly cursed) configuration with LLVM, as he reported
    to the list:
    
      https://lore.kernel.org/linux-arm-kernel/86wmjwvatn.wl-maz@kernel.org/
    
    In Marc's kernel configuration, the .head.text and .rodata.text sections
    end up more than 128MiB apart, requiring a veneer to branch between the
    two:
    
    | [mark@lakrids:~/src/linux]% usekorg 14.1.0 aarch64-linux-objdump -t vmlinux | grep -w _text
    | ffff800080000000 g       .head.text     0000000000000000 _text
    | [mark@lakrids:~/src/linux]% usekorg 14.1.0 aarch64-linux-objdump -t vmlinux | grep -w primary_entry
    | ffff8000889df0e0 g       .rodata.text   000000000000006c primary_entry,
    
    ... consequently, LLD inserts a position-dependent veneer for the branch
    from _stext (in .head.text) to primary_entry (in .rodata.text):
    
    | ffff800080000000 <_text>:
    | ffff800080000000:       fa405a4d        ccmp    x18, #0x0, #0xd, pl     // pl = nfrst
    | ffff800080000004:       14003fff        b       ffff800080010000 <__AArch64AbsLongThunk_primary_entry>
    ...
    | ffff800080010000 <__AArch64AbsLongThunk_primary_entry>:
    | ffff800080010000:       58000050        ldr     x16, ffff800080010008 <__AArch64AbsLongThunk_primary_entry+0x8>
    | ffff800080010004:       d61f0200        br      x16
    | ffff800080010008:       889df0e0        .word   0x889df0e0
    | ffff80008001000c:       ffff8000        .word   0xffff8000
    
    ... and as this is executed early in boot before the kernel is mapped in
    TTBR1 this results in a silent boot failure.
    
    Fix this by passing '--pic-veneer' to the linker, which will cause the
    linker to use position-independent veneers, e.g.
    
    | ffff800080000000 <_text>:
    | ffff800080000000:       fa405a4d        ccmp    x18, #0x0, #0xd, pl     // pl = nfrst
    | ffff800080000004:       14003fff        b       ffff800080010000 <__AArch64ADRPThunk_primary_entry>
    ...
    | ffff800080010000 <__AArch64ADRPThunk_primary_entry>:
    | ffff800080010000:       f004e3f0        adrp    x16, ffff800089c8f000 <__idmap_text_start>
    | ffff800080010004:       91038210        add     x16, x16, #0xe0
    | ffff800080010008:       d61f0200        br      x16
    
    I've opted to pass '--pic-veneer' unconditionally, as:
    
    * In addition to solving the boot failure, these sequences are generally
      nicer as they require fewer instructions and don't need to perform
      data accesses.
    
    * While the position-independent veneer sequences have a limited +/-2GiB
      range, this is not a new restriction. Even kernels built with
      CONFIG_RELOCATABLE=n are limited to 2GiB in size as we have several
      structues using 32-bit relative offsets and PPREL32 relocations, which
      are similarly limited to +/-2GiB in range. These include extable
      entries, jump table entries, and alt_instr entries.
    
    * GNU LD defaults to using position-independent veneers, and supports
      the same '--pic-veneer' option, so this change is not expected to
      adversely affect GNU LD.
    
    I've tested with GNU LD 2.30 to 2.42 inclusive and LLVM 13.0.1 to 19.1.0
    inclusive, using the kernel.org binaries from:
    
    * https://mirrors.edge.kernel.org/pub/tools/crosstool/
    * https://mirrors.edge.kernel.org/pub/tools/llvm/
    
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Reported-by: Marc Zyngier <maz@kernel.org>
    Cc: Ard Biesheuvel <ardb@kernel.org>
    Cc: Nathan Chancellor <nathan@kernel.org>
    Cc: Nick Desaulniers <ndesaulniers@google.com>
    Cc: Will Deacon <will@kernel.org>
    Acked-by: Ard Biesheuvel <ardb@kernel.org>
    Reviewed-by: Nathan Chancellor <nathan@kernel.org>
    Link: https://lore.kernel.org/r/20240927101838.3061054-1-mark.rutland@arm.com
    Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

arm64: probes: Fix uprobes for big-endian kernels [+ + +]
Author: Mark Rutland <mark.rutland@arm.com>
Date:   Tue Oct 8 16:58:48 2024 +0100

    arm64: probes: Fix uprobes for big-endian kernels
    
    [ Upstream commit 13f8f1e05f1dc36dbba6cba0ae03354c0dafcde7 ]
    
    The arm64 uprobes code is broken for big-endian kernels as it doesn't
    convert the in-memory instruction encoding (which is always
    little-endian) into the kernel's native endianness before analyzing and
    simulating instructions. This may result in a few distinct problems:
    
    * The kernel may may erroneously reject probing an instruction which can
      safely be probed.
    
    * The kernel may erroneously erroneously permit stepping an
      instruction out-of-line when that instruction cannot be stepped
      out-of-line safely.
    
    * The kernel may erroneously simulate instruction incorrectly dur to
      interpretting the byte-swapped encoding.
    
    The endianness mismatch isn't caught by the compiler or sparse because:
    
    * The arch_uprobe::{insn,ixol} fields are encoded as arrays of u8, so
      the compiler and sparse have no idea these contain a little-endian
      32-bit value. The core uprobes code populates these with a memcpy()
      which similarly does not handle endianness.
    
    * While the uprobe_opcode_t type is an alias for __le32, both
      arch_uprobe_analyze_insn() and arch_uprobe_skip_sstep() cast from u8[]
      to the similarly-named probe_opcode_t, which is an alias for u32.
      Hence there is no endianness conversion warning.
    
    Fix this by changing the arch_uprobe::{insn,ixol} fields to __le32 and
    adding the appropriate __le32_to_cpu() conversions prior to consuming
    the instruction encoding. The core uprobes copies these fields as opaque
    ranges of bytes, and so is unaffected by this change.
    
    At the same time, remove MAX_UINSN_BYTES and consistently use
    AARCH64_INSN_SIZE for clarity.
    
    Tested with the following:
    
    | #include <stdio.h>
    | #include <stdbool.h>
    |
    | #define noinline __attribute__((noinline))
    |
    | static noinline void *adrp_self(void)
    | {
    |         void *addr;
    |
    |         asm volatile(
    |         "       adrp    %x0, adrp_self\n"
    |         "       add     %x0, %x0, :lo12:adrp_self\n"
    |         : "=r" (addr));
    | }
    |
    |
    | int main(int argc, char *argv)
    | {
    |         void *ptr = adrp_self();
    |         bool equal = (ptr == adrp_self);
    |
    |         printf("adrp_self   => %p\n"
    |                "adrp_self() => %p\n"
    |                "%s\n",
    |                adrp_self, ptr, equal ? "EQUAL" : "NOT EQUAL");
    |
    |         return 0;
    | }
    
    .... where the adrp_self() function was compiled to:
    
    | 00000000004007e0 <adrp_self>:
    |   4007e0:       90000000        adrp    x0, 400000 <__ehdr_start>
    |   4007e4:       911f8000        add     x0, x0, #0x7e0
    |   4007e8:       d65f03c0        ret
    
    Before this patch, the ADRP is not recognized, and is assumed to be
    steppable, resulting in corruption of the result:
    
    | # ./adrp-self
    | adrp_self   => 0x4007e0
    | adrp_self() => 0x4007e0
    | EQUAL
    | # echo 'p /root/adrp-self:0x007e0' > /sys/kernel/tracing/uprobe_events
    | # echo 1 > /sys/kernel/tracing/events/uprobes/enable
    | # ./adrp-self
    | adrp_self   => 0x4007e0
    | adrp_self() => 0xffffffffff7e0
    | NOT EQUAL
    
    After this patch, the ADRP is correctly recognized and simulated:
    
    | # ./adrp-self
    | adrp_self   => 0x4007e0
    | adrp_self() => 0x4007e0
    | EQUAL
    | #
    | # echo 'p /root/adrp-self:0x007e0' > /sys/kernel/tracing/uprobe_events
    | # echo 1 > /sys/kernel/tracing/events/uprobes/enable
    | # ./adrp-self
    | adrp_self   => 0x4007e0
    | adrp_self() => 0x4007e0
    | EQUAL
    
    Fixes: 9842ceae9fa8 ("arm64: Add uprobe support")
    Cc: stable@vger.kernel.org
    Signed-off-by: Mark Rutland <mark.rutland@arm.com>
    Cc: Catalin Marinas <catalin.marinas@arm.com>
    Cc: Will Deacon <will@kernel.org>
    Link: https://lore.kernel.org/r/20241008155851.801546-4-mark.rutland@arm.com
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Linux: arm64:uprobe fix the uprobe SWBP_INSN in big-endian [+ + +]
Author: junhua huang <huang.junhua@zte.com.cn>
Date:   Fri Dec 2 15:11:10 2022 +0800

    arm64:uprobe fix the uprobe SWBP_INSN in big-endian
    
    [ Upstream commit 60f07e22a73d318cddaafa5ef41a10476807cc07 ]
    
    We use uprobe in aarch64_be, which we found the tracee task would exit
    due to SIGILL when we enable the uprobe trace.
    We can see the replace inst from uprobe is not correct in aarch big-endian.
    As in Armv8-A, instruction fetches are always treated as little-endian,
    we should treat the UPROBE_SWBP_INSN as little-endian。
    
    The test case is as following。
    bash-4.4# ./mqueue_test_aarchbe 1 1 2 1 10 > /dev/null &
    bash-4.4# cd /sys/kernel/debug/tracing/
    bash-4.4# echo 'p:test /mqueue_test_aarchbe:0xc30 %x0 %x1' > uprobe_events
    bash-4.4# echo 1 > events/uprobes/enable
    bash-4.4#
    bash-4.4# ps
      PID TTY          TIME CMD
      140 ?        00:00:01 bash
      237 ?        00:00:00 ps
    [1]+  Illegal instruction     ./mqueue_test_aarchbe 1 1 2 1 100 > /dev/null
    
    which we debug use gdb as following:
    
    bash-4.4# gdb attach 155
    (gdb) disassemble send
    Dump of assembler code for function send:
       0x0000000000400c30 <+0>:     .inst   0xa00020d4 ; undefined
       0x0000000000400c34 <+4>:     mov     x29, sp
       0x0000000000400c38 <+8>:     str     w0, [sp, #28]
       0x0000000000400c3c <+12>:    strb    w1, [sp, #27]
       0x0000000000400c40 <+16>:    str     xzr, [sp, #40]
       0x0000000000400c44 <+20>:    str     xzr, [sp, #48]
       0x0000000000400c48 <+24>:    add     x0, sp, #0x1b
       0x0000000000400c4c <+28>:    mov     w3, #0x0                 // #0
       0x0000000000400c50 <+32>:    mov     x2, #0x1                 // #1
       0x0000000000400c54 <+36>:    mov     x1, x0
       0x0000000000400c58 <+40>:    ldr     w0, [sp, #28]
       0x0000000000400c5c <+44>:    bl      0x405e10 <mq_send>
       0x0000000000400c60 <+48>:    str     w0, [sp, #60]
       0x0000000000400c64 <+52>:    ldr     w0, [sp, #60]
       0x0000000000400c68 <+56>:    ldp     x29, x30, [sp], #64
       0x0000000000400c6c <+60>:    ret
    End of assembler dump.
    (gdb) info b
    No breakpoints or watchpoints.
    (gdb) c
    Continuing.
    
    Program received signal SIGILL, Illegal instruction.
    0x0000000000400c30 in send ()
    (gdb) x/10x 0x400c30
    0x400c30 <send>:    0xd42000a0   0xfd030091      0xe01f00b9      0xe16f0039
    0x400c40 <send+16>: 0xff1700f9   0xff1b00f9      0xe06f0091      0x03008052
    0x400c50 <send+32>: 0x220080d2   0xe10300aa
    (gdb) disassemble 0x400c30
    Dump of assembler code for function send:
    => 0x0000000000400c30 <+0>:     .inst   0xa00020d4 ; undefined
       0x0000000000400c34 <+4>:     mov     x29, sp
       0x0000000000400c38 <+8>:     str     w0, [sp, #28]
       0x0000000000400c3c <+12>:    strb    w1, [sp, #27]
       0x0000000000400c40 <+16>:    str     xzr, [sp, #40]
    
    Signed-off-by: junhua huang <huang.junhua@zte.com.cn>
    Link: https://lore.kernel.org/r/202212021511106844809@zte.com.cn
    Signed-off-by: Will Deacon <will@kernel.org>
    Stable-dep-of: 13f8f1e05f1d ("arm64: probes: Fix uprobes for big-endian kernels")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin [+ + +]
Author: Florian Klink <flokli@flokli.de>
Date:   Tue Jul 16 02:03:11 2024 +0300

    ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin
    
    [ Upstream commit dc7785e4723510616d776862ddb4c08857a1bdb2 ]
    
    HDMI_HPD_N_1V8 is connected to GPIO pin 0, not 1.
    
    This fixes HDMI hotplug/output detection.
    
    See https://datasheets.raspberrypi.com/cm/cm3-schematics.pdf
    
    Signed-off-by: Florian Klink <flokli@flokli.de>
    Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
    Link: https://lore.kernel.org/r/20240715230311.685641-1-flokli@flokli.de
    Reviewed-by: Stefan Wahren <wahrenst@gmx.net>
    Fixes: a54fe8a6cf66 ("ARM: dts: add Raspberry Pi Compute Module 3 and IO board")
    Signed-off-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
ASoC: codecs: lpass-rx-macro: add missing CDC_RX_BCL_VBAT_RF_PROC2 to default regs values [+ + +]
Author: Alexey Klimov <alexey.klimov@linaro.org>
Date:   Wed Sep 25 05:38:23 2024 +0100

    ASoC: codecs: lpass-rx-macro: add missing CDC_RX_BCL_VBAT_RF_PROC2 to default regs values
    
    [ Upstream commit e249786b2188107a7c50e7174d35f955a60988a1 ]
    
    CDC_RX_BCL_VBAT_RF_PROC1 is listed twice and its default value
    is 0x2a which is overwriten by its next occurence in rx_defaults[].
    The second one should be missing CDC_RX_BCL_VBAT_RF_PROC2 instead
    and its default value is expected 0x0.
    
    Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
    Link: https://patch.msgid.link/20240925043823.520218-2-alexey.klimov@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ASoC: fsl_sai: Enable 'FIFO continue on error' FCONT bit [+ + +]
Author: Shengjiu Wang <shengjiu.wang@nxp.com>
Date:   Mon Sep 30 14:08:28 2024 +0800

    ASoC: fsl_sai: Enable 'FIFO continue on error' FCONT bit
    
    [ Upstream commit 72455e33173c1a00c0ce93d2b0198eb45d5f4195 ]
    
    FCONT=1 means On FIFO error, the SAI will continue from the
    same word that caused the FIFO error to set after the FIFO
    warning flag has been cleared.
    
    Set FCONT bit in control register to avoid the channel swap
    issue after SAI xrun.
    
    Signed-off-by: Shengjiu Wang <shengjiu.wang@nxp.com>
    Link: https://patch.msgid.link/1727676508-22830-1-git-send-email-shengjiu.wang@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

ASoC: qcom: Fix NULL Dereference in asoc_qcom_lpass_cpu_platform_probe() [+ + +]
Author: Zichen Xie <zichenxie0106@gmail.com>
Date:   Sun Oct 6 15:57:37 2024 -0500

    ASoC: qcom: Fix NULL Dereference in asoc_qcom_lpass_cpu_platform_probe()
    
    commit 49da1463c9e3d2082276c3e0e2a8b65a88711cd2 upstream.
    
    A devm_kzalloc() in asoc_qcom_lpass_cpu_platform_probe() could
    possibly return NULL pointer. NULL Pointer Dereference may be
    triggerred without addtional check.
    Add a NULL check for the returned pointer.
    
    Fixes: b5022a36d28f ("ASoC: qcom: lpass: Use regmap_field for i2sctl and dmactl registers")
    Cc: stable@vger.kernel.org
    Signed-off-by: Zichen Xie <zichenxie0106@gmail.com>
    Link: https://patch.msgid.link/20241006205737.8829-1-zichenxie0106@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string [+ + +]
Author: Alexey Klimov <alexey.klimov@linaro.org>
Date:   Wed Oct 2 03:20:10 2024 +0100

    ASoC: qcom: sm8250: add qrb4210-rb2-sndcard compatible string
    
    [ Upstream commit b97bc0656a66f89f78098d4d72dc04fa9518ab11 ]
    
    Add "qcom,qrb4210-rb2-sndcard" to the list of recognizable
    devices.
    
    Signed-off-by: Alexey Klimov <alexey.klimov@linaro.org>
    Link: https://patch.msgid.link/20241002022015.867031-3-alexey.klimov@linaro.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
be2net: fix potential memory leak in be_xmit() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Tue Oct 15 22:48:02 2024 +0800

    be2net: fix potential memory leak in be_xmit()
    
    [ Upstream commit e4dd8bfe0f6a23acd305f9b892c00899089bd621 ]
    
    The be_xmit() returns NETDEV_TX_OK without freeing skb
    in case of be_xmit_enqueue() fails, add dev_kfree_skb_any() to fix it.
    
    Fixes: 760c295e0e8d ("be2net: Support for OS2BMC.")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Message-ID: <20241015144802.12150-1-wanghai38@huawei.com>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
block, bfq: fix procress reference leakage for bfqq in merge chain [+ + +]
Author: Yu Kuai <yukuai3@huawei.com>
Date:   Wed Oct 23 11:42:22 2024 +0800

    block, bfq: fix procress reference leakage for bfqq in merge chain
    
    [ Upstream commit 73aeab373557fa6ee4ae0b742c6211ccd9859280 ]
    
    Original state:
    
            Process 1       Process 2       Process 3       Process 4
             (BIC1)          (BIC2)          (BIC3)          (BIC4)
              Λ                |               |               |
               \--------------\ \-------------\ \-------------\|
                               V               V               V
              bfqq1--------->bfqq2---------->bfqq3----------->bfqq4
        ref    0               1               2               4
    
    After commit 0e456dba86c7 ("block, bfq: choose the last bfqq from merge
    chain in bfq_setup_cooperator()"), if P1 issues a new IO:
    
    Without the patch:
    
            Process 1       Process 2       Process 3       Process 4
             (BIC1)          (BIC2)          (BIC3)          (BIC4)
              Λ                |               |               |
               \------------------------------\ \-------------\|
                                               V               V
              bfqq1--------->bfqq2---------->bfqq3----------->bfqq4
        ref    0               0               2               4
    
    bfqq3 will be used to handle IO from P1, this is not expected, IO
    should be redirected to bfqq4;
    
    With the patch:
    
              -------------------------------------------
              |                                         |
            Process 1       Process 2       Process 3   |   Process 4
             (BIC1)          (BIC2)          (BIC3)     |    (BIC4)
                               |               |        |      |
                                \-------------\ \-------------\|
                                               V               V
              bfqq1--------->bfqq2---------->bfqq3----------->bfqq4
        ref    0               0               2               4
    
    IO is redirected to bfqq4, however, procress reference of bfqq3 is still
    2, while there is only P2 using it.
    
    Fix the problem by calling bfq_merge_bfqqs() for each bfqq in the merge
    chain. Also change bfqq_merge_bfqqs() to return new_bfqq to simplify
    code.
    
    Fixes: 0e456dba86c7 ("block, bfq: choose the last bfqq from merge chain in bfq_setup_cooperator()")
    Signed-off-by: Yu Kuai <yukuai3@huawei.com>
    Link: https://lore.kernel.org/r/20240909134154.954924-3-yukuai1@huaweicloud.com
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Bluetooth: bnep: fix wild-memory-access in proto_unregister [+ + +]
Author: Ye Bin <yebin10@huawei.com>
Date:   Mon Oct 14 17:07:08 2024 +0800

    Bluetooth: bnep: fix wild-memory-access in proto_unregister
    
    [ Upstream commit 64a90991ba8d4e32e3173ddd83d0b24167a5668c ]
    
    There's issue as follows:
      KASAN: maybe wild-memory-access in range [0xdead...108-0xdead...10f]
      CPU: 3 UID: 0 PID: 2805 Comm: rmmod Tainted: G        W
      RIP: 0010:proto_unregister+0xee/0x400
      Call Trace:
       <TASK>
       __do_sys_delete_module+0x318/0x580
       do_syscall_64+0xc1/0x1d0
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    As bnep_init() ignore bnep_sock_init()'s return value, and bnep_sock_init()
    will cleanup all resource. Then when remove bnep module will call
    bnep_sock_cleanup() to cleanup sock's resource.
    To solve above issue just return bnep_sock_init()'s return value in
    bnep_exit().
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Ye Bin <yebin10@huawei.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
bpf,perf: Fix perf_event_detach_bpf_prog error handling [+ + +]
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Wed Oct 23 22:03:52 2024 +0200

    bpf,perf: Fix perf_event_detach_bpf_prog error handling
    
    [ Upstream commit 0ee288e69d033850bc87abe0f9cc3ada24763d7f ]
    
    Peter reported that perf_event_detach_bpf_prog might skip to release
    the bpf program for -ENOENT error from bpf_prog_array_copy.
    
    This can't happen because bpf program is stored in perf event and is
    detached and released only when perf event is freed.
    
    Let's drop the -ENOENT check and make sure the bpf program is released
    in any case.
    
    Fixes: 170a7e3ea070 ("bpf: bpf_prog_array_copy() should return -ENOENT if exclude_prog not found")
    Reported-by: Peter Zijlstra <peterz@infradead.org>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Link: https://lore.kernel.org/bpf/20241023200352.3488610-1-jolsa@kernel.org
    
    Closes: https://lore.kernel.org/lkml/20241022111638.GC16066@noisy.programming.kicks-ass.net/
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
bpf: devmap: provide rxq after redirect [+ + +]
Author: Florian Kauer <florian.kauer@linutronix.de>
Date:   Wed Sep 11 10:41:18 2024 +0200

    bpf: devmap: provide rxq after redirect
    
    [ Upstream commit ca9984c5f0ab3690d98b13937b2485a978c8dd73 ]
    
    rxq contains a pointer to the device from where
    the redirect happened. Currently, the BPF program
    that was executed after a redirect via BPF_MAP_TYPE_DEVMAP*
    does not have it set.
    
    This is particularly bad since accessing ingress_ifindex, e.g.
    
    SEC("xdp")
    int prog(struct xdp_md *pkt)
    {
            return bpf_redirect_map(&dev_redirect_map, 0, 0);
    }
    
    SEC("xdp/devmap")
    int prog_after_redirect(struct xdp_md *pkt)
    {
            bpf_printk("ifindex %i", pkt->ingress_ifindex);
            return XDP_PASS;
    }
    
    depends on access to rxq, so a NULL pointer gets dereferenced:
    
    <1>[  574.475170] BUG: kernel NULL pointer dereference, address: 0000000000000000
    <1>[  574.475188] #PF: supervisor read access in kernel mode
    <1>[  574.475194] #PF: error_code(0x0000) - not-present page
    <6>[  574.475199] PGD 0 P4D 0
    <4>[  574.475207] Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
    <4>[  574.475217] CPU: 4 UID: 0 PID: 217 Comm: kworker/4:1 Not tainted 6.11.0-rc5-reduced-00859-g780801200300 #23
    <4>[  574.475226] Hardware name: Intel(R) Client Systems NUC13ANHi7/NUC13ANBi7, BIOS ANRPL357.0026.2023.0314.1458 03/14/2023
    <4>[  574.475231] Workqueue: mld mld_ifc_work
    <4>[  574.475247] RIP: 0010:bpf_prog_5e13354d9cf5018a_prog_after_redirect+0x17/0x3c
    <4>[  574.475257] Code: cc cc cc cc cc cc cc 80 00 00 00 cc cc cc cc cc cc cc cc f3 0f 1e fa 0f 1f 44 00 00 66 90 55 48 89 e5 f3 0f 1e fa 48 8b 57 20 <48> 8b 52 00 8b 92 e0 00 00 00 48 bf f8 a6 d5 c4 5d a0 ff ff be 0b
    <4>[  574.475263] RSP: 0018:ffffa62440280c98 EFLAGS: 00010206
    <4>[  574.475269] RAX: ffffa62440280cd8 RBX: 0000000000000001 RCX: 0000000000000000
    <4>[  574.475274] RDX: 0000000000000000 RSI: ffffa62440549048 RDI: ffffa62440280ce0
    <4>[  574.475278] RBP: ffffa62440280c98 R08: 0000000000000002 R09: 0000000000000001
    <4>[  574.475281] R10: ffffa05dc8b98000 R11: ffffa05f577fca40 R12: ffffa05dcab24000
    <4>[  574.475285] R13: ffffa62440280ce0 R14: ffffa62440549048 R15: ffffa62440549000
    <4>[  574.475289] FS:  0000000000000000(0000) GS:ffffa05f4f700000(0000) knlGS:0000000000000000
    <4>[  574.475294] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    <4>[  574.475298] CR2: 0000000000000000 CR3: 000000025522e000 CR4: 0000000000f50ef0
    <4>[  574.475303] PKRU: 55555554
    <4>[  574.475306] Call Trace:
    <4>[  574.475313]  <IRQ>
    <4>[  574.475318]  ? __die+0x23/0x70
    <4>[  574.475329]  ? page_fault_oops+0x180/0x4c0
    <4>[  574.475339]  ? skb_pp_cow_data+0x34c/0x490
    <4>[  574.475346]  ? kmem_cache_free+0x257/0x280
    <4>[  574.475357]  ? exc_page_fault+0x67/0x150
    <4>[  574.475368]  ? asm_exc_page_fault+0x26/0x30
    <4>[  574.475381]  ? bpf_prog_5e13354d9cf5018a_prog_after_redirect+0x17/0x3c
    <4>[  574.475386]  bq_xmit_all+0x158/0x420
    <4>[  574.475397]  __dev_flush+0x30/0x90
    <4>[  574.475407]  veth_poll+0x216/0x250 [veth]
    <4>[  574.475421]  __napi_poll+0x28/0x1c0
    <4>[  574.475430]  net_rx_action+0x32d/0x3a0
    <4>[  574.475441]  handle_softirqs+0xcb/0x2c0
    <4>[  574.475451]  do_softirq+0x40/0x60
    <4>[  574.475458]  </IRQ>
    <4>[  574.475461]  <TASK>
    <4>[  574.475464]  __local_bh_enable_ip+0x66/0x70
    <4>[  574.475471]  __dev_queue_xmit+0x268/0xe40
    <4>[  574.475480]  ? selinux_ip_postroute+0x213/0x420
    <4>[  574.475491]  ? alloc_skb_with_frags+0x4a/0x1d0
    <4>[  574.475502]  ip6_finish_output2+0x2be/0x640
    <4>[  574.475512]  ? nf_hook_slow+0x42/0xf0
    <4>[  574.475521]  ip6_finish_output+0x194/0x300
    <4>[  574.475529]  ? __pfx_ip6_finish_output+0x10/0x10
    <4>[  574.475538]  mld_sendpack+0x17c/0x240
    <4>[  574.475548]  mld_ifc_work+0x192/0x410
    <4>[  574.475557]  process_one_work+0x15d/0x380
    <4>[  574.475566]  worker_thread+0x29d/0x3a0
    <4>[  574.475573]  ? __pfx_worker_thread+0x10/0x10
    <4>[  574.475580]  ? __pfx_worker_thread+0x10/0x10
    <4>[  574.475587]  kthread+0xcd/0x100
    <4>[  574.475597]  ? __pfx_kthread+0x10/0x10
    <4>[  574.475606]  ret_from_fork+0x31/0x50
    <4>[  574.475615]  ? __pfx_kthread+0x10/0x10
    <4>[  574.475623]  ret_from_fork_asm+0x1a/0x30
    <4>[  574.475635]  </TASK>
    <4>[  574.475637] Modules linked in: veth br_netfilter bridge stp llc iwlmvm x86_pkg_temp_thermal iwlwifi efivarfs nvme nvme_core
    <4>[  574.475662] CR2: 0000000000000000
    <4>[  574.475668] ---[ end trace 0000000000000000 ]---
    
    Therefore, provide it to the program by setting rxq properly.
    
    Fixes: cb261b594b41 ("bpf: Run devmap xdp_prog on flush instead of bulk enqueue")
    Reviewed-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: Florian Kauer <florian.kauer@linutronix.de>
    Acked-by: Jakub Kicinski <kuba@kernel.org>
    Link: https://lore.kernel.org/r/20240911-devel-koalo-fix-ingress-ifindex-v4-1-5c643ae10258@linutronix.de
    Signed-off-by: Martin KaFai Lau <martin.lau@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

bpf: Make sure internal and UAPI bpf_redirect flags don't overlap [+ + +]
Author: Toke Høiland-Jørgensen <toke@redhat.com>
Date:   Fri Sep 20 14:56:24 2024 +0200

    bpf: Make sure internal and UAPI bpf_redirect flags don't overlap
    
    [ Upstream commit 09d88791c7cd888d5195c84733caf9183dcfbd16 ]
    
    The bpf_redirect_info is shared between the SKB and XDP redirect paths,
    and the two paths use the same numeric flag values in the ri->flags
    field (specifically, BPF_F_BROADCAST == BPF_F_NEXTHOP). This means that
    if skb bpf_redirect_neigh() is used with a non-NULL params argument and,
    subsequently, an XDP redirect is performed using the same
    bpf_redirect_info struct, the XDP path will get confused and end up
    crashing, which syzbot managed to trigger.
    
    With the stack-allocated bpf_redirect_info, the structure is no longer
    shared between the SKB and XDP paths, so the crash doesn't happen
    anymore. However, different code paths using identically-numbered flag
    values in the same struct field still seems like a bit of a mess, so
    this patch cleans that up by moving the flag definitions together and
    redefining the three flags in BPF_F_REDIRECT_INTERNAL to not overlap
    with the flags used for XDP. It also adds a BUILD_BUG_ON() check to make
    sure the overlap is not re-introduced by mistake.
    
    Fixes: e624d4ed4aa8 ("xdp: Extend xdp_redirect_map with broadcast support")
    Reported-by: syzbot+cca39e6e84a367a7e6f6@syzkaller.appspotmail.com
    Signed-off-by: Toke Høiland-Jørgensen <toke@redhat.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Daniel Borkmann <daniel@iogearbox.net>
    Closes: https://syzkaller.appspot.com/bug?extid=cca39e6e84a367a7e6f6
    Link: https://lore.kernel.org/bpf/20240920125625.59465-1-toke@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>
 
btrfs: zoned: fix zone unusable accounting for freed reserved extent [+ + +]
Author: Naohiro Aota <naohiro.aota@wdc.com>
Date:   Tue Oct 1 17:03:32 2024 +0900

    btrfs: zoned: fix zone unusable accounting for freed reserved extent
    
    commit bf9821ba4792a0d9a2e72803ae7b4341faf3d532 upstream.
    
    When btrfs reserves an extent and does not use it (e.g, by an error), it
    calls btrfs_free_reserved_extent() to free the reserved extent. In the
    process, it calls btrfs_add_free_space() and then it accounts the region
    bytes as block_group->zone_unusable.
    
    However, it leaves the space_info->bytes_zone_unusable side not updated. As
    a result, ENOSPC can happen while a space_info reservation succeeded. The
    reservation is fine because the freed region is not added in
    space_info->bytes_zone_unusable, leaving that space as "free". OTOH,
    corresponding block group counts it as zone_unusable and its allocation
    pointer is not rewound, we cannot allocate an extent from that block group.
    That will also negate space_info's async/sync reclaim process, and cause an
    ENOSPC error from the extent allocation process.
    
    Fix that by returning the space to space_info->bytes_zone_unusable.
    Ideally, since a bio is not submitted for this reserved region, we should
    return the space to free space and rewind the allocation pointer. But, it
    needs rework on extent allocation handling, so let it work in this way for
    now.
    
    Fixes: 169e0da91a21 ("btrfs: zoned: track unusable bytes for zones")
    CC: stable@vger.kernel.org # 5.15+
    Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
    Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
    Reviewed-by: David Sterba <dsterba@suse.com>
    Signed-off-by: David Sterba <dsterba@suse.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
drm/amd: Guard against bad data for ATIF ACPI method [+ + +]
Author: Mario Limonciello <mario.limonciello@amd.com>
Date:   Fri Oct 11 12:23:15 2024 -0500

    drm/amd: Guard against bad data for ATIF ACPI method
    
    commit bf58f03931fdcf7b3c45cb76ac13244477a60f44 upstream.
    
    If a BIOS provides bad data in response to an ATIF method call
    this causes a NULL pointer dereference in the caller.
    
    ```
    ? show_regs (arch/x86/kernel/dumpstack.c:478 (discriminator 1))
    ? __die (arch/x86/kernel/dumpstack.c:423 arch/x86/kernel/dumpstack.c:434)
    ? page_fault_oops (arch/x86/mm/fault.c:544 (discriminator 2) arch/x86/mm/fault.c:705 (discriminator 2))
    ? do_user_addr_fault (arch/x86/mm/fault.c:440 (discriminator 1) arch/x86/mm/fault.c:1232 (discriminator 1))
    ? acpi_ut_update_object_reference (drivers/acpi/acpica/utdelete.c:642)
    ? exc_page_fault (arch/x86/mm/fault.c:1542)
    ? asm_exc_page_fault (./arch/x86/include/asm/idtentry.h:623)
    ? amdgpu_atif_query_backlight_caps.constprop.0 (drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:387 (discriminator 2)) amdgpu
    ? amdgpu_atif_query_backlight_caps.constprop.0 (drivers/gpu/drm/amd/amdgpu/amdgpu_acpi.c:386 (discriminator 1)) amdgpu
    ```
    
    It has been encountered on at least one system, so guard for it.
    
    Fixes: d38ceaf99ed0 ("drm/amdgpu: add core driver (v4)")
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Mario Limonciello <mario.limonciello@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    (cherry picked from commit c9b7c809b89f24e9372a4e7f02d64c950b07fdee)
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation [+ + +]
Author: Jonathan Marek <jonathan@marek.ca>
Date:   Mon Oct 7 01:01:49 2024 -0400

    drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation
    
    [ Upstream commit 358b762400bd94db2a14a72dfcef74c7da6bd845 ]
    
    When (mode->clock * 1000) is larger than (1<<31), int to unsigned long
    conversion will sign extend the int to 64 bits and the pclk_rate value
    will be incorrect.
    
    Fix this by making the result of the multiplication unsigned.
    
    Note that above (1<<32) would still be broken and require more changes, but
    its unlikely anyone will need that anytime soon.
    
    Fixes: c4d8cfe516dc ("drm/msm/dsi: add implementation for helper functions")
    Signed-off-by: Jonathan Marek <jonathan@marek.ca>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/618434/
    Link: https://lore.kernel.org/r/20241007050157.26855-2-jonathan@marek.ca
    Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/msm: Allocate memory for disp snapshot with kvzalloc() [+ + +]
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Oct 14 09:36:09 2024 -0700

    drm/msm: Allocate memory for disp snapshot with kvzalloc()
    
    [ Upstream commit e4a45582db1b792c57bdb52c45958264f7fcfbdc ]
    
    With the "drm/msm: add a display mmu fault handler" series [1] we saw
    issues in the field where memory allocation was failing when
    allocating space for registers in msm_disp_state_dump_regs().
    Specifically we were seeing an order 5 allocation fail. It's not
    surprising that order 5 allocations will sometimes fail after the
    system has been up and running for a while.
    
    There's no need here for contiguous memory. Change the allocation to
    kvzalloc() which should make it much less likely to fail.
    
    [1] https://lore.kernel.org/r/20240628214848.4075651-1-quic_abhinavk@quicinc.com/
    
    Fixes: 98659487b845 ("drm/msm: add support to take dpu snapshot")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/619658/
    Link: https://lore.kernel.org/r/20241014093605.2.I72441365ffe91f3dceb17db0a8ec976af8139590@changeid
    Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

drm/msm: Avoid NULL dereference in msm_disp_state_print_regs() [+ + +]
Author: Douglas Anderson <dianders@chromium.org>
Date:   Mon Oct 14 09:36:08 2024 -0700

    drm/msm: Avoid NULL dereference in msm_disp_state_print_regs()
    
    [ Upstream commit 293f53263266bc4340d777268ab4328a97f041fa ]
    
    If the allocation in msm_disp_state_dump_regs() failed then
    `block->state` can be NULL. The msm_disp_state_print_regs() function
    _does_ have code to try to handle it with:
    
      if (*reg)
        dump_addr = *reg;
    
    ...but since "dump_addr" is initialized to NULL the above is actually
    a noop. The code then goes on to dereference `dump_addr`.
    
    Make the function print "Registers not stored" when it sees a NULL to
    solve this. Since we're touching the code, fix
    msm_disp_state_print_regs() not to pointlessly take a double-pointer
    and properly mark the pointer as `const`.
    
    Fixes: 98659487b845 ("drm/msm: add support to take dpu snapshot")
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Reviewed-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Patchwork: https://patchwork.freedesktop.org/patch/619657/
    Link: https://lore.kernel.org/r/20241014093605.1.Ia1217cecec9ef09eb3c6d125360cc6c8574b0e73@changeid
    Signed-off-by: Abhinav Kumar <quic_abhinavk@quicinc.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA [+ + +]
Author: Hans de Goede <hdegoede@redhat.com>
Date:   Tue Aug 27 12:45:23 2024 +0200

    drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA
    
    [ Upstream commit d92b90f9a54d9300a6e883258e79f36dab53bfae ]
    
    Replace the fake VLA at end of the vbva_mouse_pointer_shape shape with
    a real VLA to fix a "memcpy: detected field-spanning write error" warning:
    
    [   13.319813] memcpy: detected field-spanning write (size 16896) of single field "p->data" at drivers/gpu/drm/vboxvideo/hgsmi_base.c:154 (size 4)
    [   13.319841] WARNING: CPU: 0 PID: 1105 at drivers/gpu/drm/vboxvideo/hgsmi_base.c:154 hgsmi_update_pointer_shape+0x192/0x1c0 [vboxvideo]
    [   13.320038] Call Trace:
    [   13.320173]  hgsmi_update_pointer_shape [vboxvideo]
    [   13.320184]  vbox_cursor_atomic_update [vboxvideo]
    
    Note as mentioned in the added comment it seems the original length
    calculation for the allocated and send hgsmi buffer is 4 bytes too large.
    Changing this is not the goal of this patch, so this behavior is kept.
    
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Reviewed-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20240827104523.17442-1-hdegoede@redhat.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
exec: don't WARN for racy path_noexec check [+ + +]
Author: Mateusz Guzik <mjguzik@gmail.com>
Date:   Tue Oct 22 15:45:38 2024 -0300

    exec: don't WARN for racy path_noexec check
    
    [ Upstream commit 0d196e7589cefe207d5d41f37a0a28a1fdeeb7c6 ]
    
    Both i_mode and noexec checks wrapped in WARN_ON stem from an artifact
    of the previous implementation. They used to legitimately check for the
    condition, but that got moved up in two commits:
    633fb6ac3980 ("exec: move S_ISREG() check earlier")
    0fd338b2d2cd ("exec: move path_noexec() check earlier")
    
    Instead of being removed said checks are WARN_ON'ed instead, which
    has some debug value.
    
    However, the spurious path_noexec check is racy, resulting in
    unwarranted warnings should someone race with setting the noexec flag.
    
    One can note there is more to perm-checking whether execve is allowed
    and none of the conditions are guaranteed to still hold after they were
    tested for.
    
    Additionally this does not validate whether the code path did any perm
    checking to begin with -- it will pass if the inode happens to be
    regular.
    
    Keep the redundant path_noexec() check even though it's mindless
    nonsense checking for guarantee that isn't given so drop the WARN.
    
    Reword the commentary and do small tidy ups while here.
    
    Signed-off-by: Mateusz Guzik <mjguzik@gmail.com>
    Link: https://lore.kernel.org/r/20240805131721.765484-1-mjguzik@gmail.com
    [brauner: keep redundant path_noexec() check]
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    [cascardo: keep exit label and use it]
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
genetlink: hold RCU in genlmsg_mcast() [+ + +]
Author: Eric Dumazet <edumazet@google.com>
Date:   Fri Oct 11 17:12:17 2024 +0000

    genetlink: hold RCU in genlmsg_mcast()
    
    [ Upstream commit 56440d7ec28d60f8da3bfa09062b3368ff9b16db ]
    
    While running net selftests with CONFIG_PROVE_RCU_LIST=y I saw
    one lockdep splat [1].
    
    genlmsg_mcast() uses for_each_net_rcu(), and must therefore hold RCU.
    
    Instead of letting all callers guard genlmsg_multicast_allns()
    with a rcu_read_lock()/rcu_read_unlock() pair, do it in genlmsg_mcast().
    
    This also means the @flags parameter is useless, we need to always use
    GFP_ATOMIC.
    
    [1]
    [10882.424136] =============================
    [10882.424166] WARNING: suspicious RCU usage
    [10882.424309] 6.12.0-rc2-virtme #1156 Not tainted
    [10882.424400] -----------------------------
    [10882.424423] net/netlink/genetlink.c:1940 RCU-list traversed in non-reader section!!
    [10882.424469]
    other info that might help us debug this:
    
    [10882.424500]
    rcu_scheduler_active = 2, debug_locks = 1
    [10882.424744] 2 locks held by ip/15677:
    [10882.424791] #0: ffffffffb6b491b0 (cb_lock){++++}-{3:3}, at: genl_rcv (net/netlink/genetlink.c:1219)
    [10882.426334] #1: ffffffffb6b49248 (genl_mutex){+.+.}-{3:3}, at: genl_rcv_msg (net/netlink/genetlink.c:61 net/netlink/genetlink.c:57 net/netlink/genetlink.c:1209)
    [10882.426465]
    stack backtrace:
    [10882.426805] CPU: 14 UID: 0 PID: 15677 Comm: ip Not tainted 6.12.0-rc2-virtme #1156
    [10882.426919] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
    [10882.427046] Call Trace:
    [10882.427131]  <TASK>
    [10882.427244] dump_stack_lvl (lib/dump_stack.c:123)
    [10882.427335] lockdep_rcu_suspicious (kernel/locking/lockdep.c:6822)
    [10882.427387] genlmsg_multicast_allns (net/netlink/genetlink.c:1940 (discriminator 7) net/netlink/genetlink.c:1977 (discriminator 7))
    [10882.427436] l2tp_tunnel_notify.constprop.0 (net/l2tp/l2tp_netlink.c:119) l2tp_netlink
    [10882.427683] l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:253) l2tp_netlink
    [10882.427748] genl_family_rcv_msg_doit (net/netlink/genetlink.c:1115)
    [10882.427834] genl_rcv_msg (net/netlink/genetlink.c:1195 net/netlink/genetlink.c:1210)
    [10882.427877] ? __pfx_l2tp_nl_cmd_tunnel_create (net/l2tp/l2tp_netlink.c:186) l2tp_netlink
    [10882.427927] ? __pfx_genl_rcv_msg (net/netlink/genetlink.c:1201)
    [10882.427959] netlink_rcv_skb (net/netlink/af_netlink.c:2551)
    [10882.428069] genl_rcv (net/netlink/genetlink.c:1220)
    [10882.428095] netlink_unicast (net/netlink/af_netlink.c:1332 net/netlink/af_netlink.c:1357)
    [10882.428140] netlink_sendmsg (net/netlink/af_netlink.c:1901)
    [10882.428210] ____sys_sendmsg (net/socket.c:729 (discriminator 1) net/socket.c:744 (discriminator 1) net/socket.c:2607 (discriminator 1))
    
    Fixes: 33f72e6f0c67 ("l2tp : multicast notification to the registered listeners")
    Signed-off-by: Eric Dumazet <edumazet@google.com>
    Cc: James Chapman <jchapman@katalix.com>
    Cc: Tom Parkin <tparkin@katalix.com>
    Cc: Johannes Berg <johannes.berg@intel.com>
    Link: https://patch.msgid.link/20241011171217.3166614-1-edumazet@google.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event [+ + +]
Author: Haiyang Zhang <haiyangz@microsoft.com>
Date:   Fri Oct 18 11:25:22 2024 -0700

    hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event
    
    commit 4c262801ea60c518b5bebc22a09f5b78b3147da2 upstream.
    
    The existing code moves VF to the same namespace as the synthetic NIC
    during netvsc_register_vf(). But, if the synthetic device is moved to a
    new namespace after the VF registration, the VF won't be moved together.
    
    To make the behavior more consistent, add a namespace check for synthetic
    NIC's NETDEV_REGISTER event (generated during its move), and move the VF
    if it is not in the same namespace.
    
    Cc: stable@vger.kernel.org
    Fixes: c0a41b887ce6 ("hv_netvsc: move VF to same namespace as netvsc device")
    Suggested-by: Stephen Hemminger <stephen@networkplumber.org>
    Signed-off-by: Haiyang Zhang <haiyangz@microsoft.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/1729275922-17595-1-git-send-email-haiyangz@microsoft.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
ipv4: give an IPv4 dev to blackhole_netdev [+ + +]
Author: Xin Long <lucien.xin@gmail.com>
Date:   Wed Oct 9 14:47:13 2024 -0400

    ipv4: give an IPv4 dev to blackhole_netdev
    
    [ Upstream commit 22600596b6756b166fd052d5facb66287e6f0bad ]
    
    After commit 8d7017fd621d ("blackhole_netdev: use blackhole_netdev to
    invalidate dst entries"), blackhole_netdev was introduced to invalidate
    dst cache entries on the TX path whenever the cache times out or is
    flushed.
    
    When two UDP sockets (sk1 and sk2) send messages to the same destination
    simultaneously, they are using the same dst cache. If the dst cache is
    invalidated on one path (sk2) while the other (sk1) is still transmitting,
    sk1 may try to use the invalid dst entry.
    
             CPU1                   CPU2
    
          udp_sendmsg(sk1)       udp_sendmsg(sk2)
          udp_send_skb()
          ip_output()
                                                 <--- dst timeout or flushed
                                 dst_dev_put()
          ip_finish_output2()
          ip_neigh_for_gw()
    
    This results in a scenario where ip_neigh_for_gw() returns -EINVAL because
    blackhole_dev lacks an in_dev, which is needed to initialize the neigh in
    arp_constructor(). This error is then propagated back to userspace,
    breaking the UDP application.
    
    The patch fixes this issue by assigning an in_dev to blackhole_dev for
    IPv4, similar to what was done for IPv6 in commit e5f80fcf869a ("ipv6:
    give an IPv6 dev to blackhole_netdev"). This ensures that even when the
    dst entry is invalidated with blackhole_dev, it will not fail to create
    the neigh entry.
    
    As devinet_init() is called ealier than blackhole_netdev_init() in system
    booting, it can not assign the in_dev to blackhole_dev in devinet_init().
    As Paolo suggested, add a separate late_initcall() in devinet.c to ensure
    inet_blackhole_dev_init() is called after blackhole_netdev_init().
    
    Fixes: 8d7017fd621d ("blackhole_netdev: use blackhole_netdev to invalidate dst entries")
    Signed-off-by: Xin Long <lucien.xin@gmail.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Link: https://patch.msgid.link/3000792d45ca44e16c785ebe2b092e610e5b3df1.1728499633.git.lucien.xin@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
jfs: Fix sanity check in dbMount [+ + +]
Author: Dave Kleikamp <dave.kleikamp@oracle.com>
Date:   Tue Oct 22 09:40:37 2024 -0500

    jfs: Fix sanity check in dbMount
    
    [ Upstream commit 67373ca8404fe57eb1bb4b57f314cff77ce54932 ]
    
    MAXAG is a legitimate value for bmp->db_numag
    
    Fixes: e63866a47556 ("jfs: fix out-of-bounds in dbNextAG() and diAlloc()")
    
    Signed-off-by: Dave Kleikamp <dave.kleikamp@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory [+ + +]
Author: Sean Christopherson <seanjc@google.com>
Date:   Wed Oct 9 07:08:38 2024 -0700

    KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory
    
    commit f559b2e9c5c5308850544ab59396b7d53cfc67bd upstream.
    
    Ignore nCR3[4:0] when loading PDPTEs from memory for nested SVM, as bits
    4:0 of CR3 are ignored when PAE paging is used, and thus VMRUN doesn't
    enforce 32-byte alignment of nCR3.
    
    In the absolute worst case scenario, failure to ignore bits 4:0 can result
    in an out-of-bounds read, e.g. if the target page is at the end of a
    memslot, and the VMM isn't using guard pages.
    
    Per the APM:
    
      The CR3 register points to the base address of the page-directory-pointer
      table. The page-directory-pointer table is aligned on a 32-byte boundary,
      with the low 5 address bits 4:0 assumed to be 0.
    
    And the SDM's much more explicit:
    
      4:0    Ignored
    
    Note, KVM gets this right when loading PDPTRs, it's only the nSVM flow
    that is broken.
    
    Fixes: e4e517b4be01 ("KVM: MMU: Do not unconditionally read PDPTE from guest memory")
    Reported-by: Kirk Swidowski <swidowski@google.com>
    Cc: Andy Nguyen <theflow@google.com>
    Cc: 3pvd <3pvd@google.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Sean Christopherson <seanjc@google.com>
    Message-ID: <20241009140838.1036226-1-seanjc@google.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

KVM: s390: gaccess: Check if guest address is in memslot [+ + +]
Author: Nico Boehr <nrb@linux.ibm.com>
Date:   Tue Sep 17 17:18:33 2024 +0200

    KVM: s390: gaccess: Check if guest address is in memslot
    
    [ Upstream commit e8061f06185be0a06a73760d6526b8b0feadfe52 ]
    
    Previously, access_guest_page() did not check whether the given guest
    address is inside of a memslot. This is not a problem, since
    kvm_write_guest_page/kvm_read_guest_page return -EFAULT in this case.
    
    However, -EFAULT is also returned when copy_to/from_user fails.
    
    When emulating a guest instruction, the address being outside a memslot
    usually means that an addressing exception should be injected into the
    guest.
    
    Failure in copy_to/from_user however indicates that something is wrong
    in userspace and hence should be handled there.
    
    To be able to distinguish these two cases, return PGM_ADDRESSING in
    access_guest_page() when the guest address is outside guest memory. In
    access_guest_real(), populate vcpu->arch.pgm.code such that
    kvm_s390_inject_prog_cond() can be used in the caller for injecting into
    the guest (if applicable).
    
    Since this adds a new return value to access_guest_page(), we need to make
    sure that other callers are not confused by the new positive return value.
    
    There are the following users of access_guest_page():
    - access_guest_with_key() does the checking itself (in
      guest_range_to_gpas()), so this case should never happen. Even if, the
      handling is set up properly.
    - access_guest_real() just passes the return code to its callers, which
      are:
        - read_guest_real() - see below
        - write_guest_real() - see below
    
    There are the following users of read_guest_real():
    - ar_translation() in gaccess.c which already returns PGM_*
    - setup_apcb10(), setup_apcb00(), setup_apcb11() in vsie.c which always
      return -EFAULT on read_guest_read() nonzero return - no change
    - shadow_crycb(), handle_stfle() always present this as validity, this
      could be handled better but doesn't change current behaviour - no change
    
    There are the following users of write_guest_real():
    - kvm_s390_store_status_unloaded() always returns -EFAULT on
      write_guest_real() failure.
    
    Fixes: 2293897805c2 ("KVM: s390: add architecture compliant guest access functions")
    Cc: stable@vger.kernel.org
    Signed-off-by: Nico Boehr <nrb@linux.ibm.com>
    Reviewed-by: Heiko Carstens <hca@linux.ibm.com>
    Link: https://lore.kernel.org/r/20240917151904.74314-2-nrb@linux.ibm.com
    Acked-by: Janosch Frank <frankja@linux.ibm.com>
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

KVM: s390: gaccess: Cleanup access to guest pages [+ + +]
Author: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Date:   Fri Nov 26 17:45:49 2021 +0100

    KVM: s390: gaccess: Cleanup access to guest pages
    
    [ Upstream commit bad13799e0305deb258372b7298a86be4c78aaba ]
    
    Introduce a helper function for guest frame access.
    
    Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-Id: <20211126164549.7046-4-scgl@linux.ibm.com>
    Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

KVM: s390: gaccess: Refactor access address range check [+ + +]
Author: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Date:   Fri Nov 26 17:45:48 2021 +0100

    KVM: s390: gaccess: Refactor access address range check
    
    [ Upstream commit 7faa543df19bf62d4583a64d3902705747f2ad29 ]
    
    Do not round down the first address to the page boundary, just translate
    it normally, which gives the value we care about in the first place.
    Given this, translating a single address is just the special case of
    translating a range spanning a single page.
    
    Make the output optional, so the function can be used to just check a
    range.
    
    Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-Id: <20211126164549.7046-3-scgl@linux.ibm.com>
    Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

KVM: s390: gaccess: Refactor gpa and length calculation [+ + +]
Author: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
Date:   Fri Nov 26 17:45:47 2021 +0100

    KVM: s390: gaccess: Refactor gpa and length calculation
    
    [ Upstream commit 416e7f0c9d613bf84e182eba9547ae8f9f5bfa4c ]
    
    Improve readability by renaming the length variable and
    not calculating the offset manually.
    
    Signed-off-by: Janis Schoetterl-Glausch <scgl@linux.ibm.com>
    Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
    Reviewed-by: David Hildenbrand <david@redhat.com>
    Reviewed-by: Claudio Imbrenda <imbrenda@linux.ibm.com>
    Message-Id: <20211126164549.7046-2-scgl@linux.ibm.com>
    Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
Linux: Linux 5.15.170 [+ + +]
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Fri Nov 1 01:52:38 2024 +0100

    Linux 5.15.170
    
    Link: https://lore.kernel.org/r/20241028062252.611837461@linuxfoundation.org
    Tested-by: Mark Brown <broonie@kernel.org>
    Tested-by: SeongJae Park <sj@kernel.org>
    Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Tested-by: Hardik Garg <hargar@linux.microsoft.com>
    Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: kernelci.org bot <bot@kernelci.org>
    Tested-by: Ron Economos <re@w6rz.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
macsec: don't increment counters for an unrelated SA [+ + +]
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Fri Oct 11 17:16:37 2024 +0200

    macsec: don't increment counters for an unrelated SA
    
    [ Upstream commit cf58aefb1332db322060cad4a330d5f9292b0f41 ]
    
    On RX, we shouldn't be incrementing the stats for an arbitrary SA in
    case the actual SA hasn't been set up. Those counters are intended to
    track packets for their respective AN when the SA isn't currently
    configured. Due to the way MACsec is implemented, we don't keep
    counters unless the SA is configured, so we can't track those packets,
    and those counters will remain at 0.
    
    The RXSC's stats keeps track of those packets without telling us which
    AN they belonged to. We could add counters for non-existent SAs, and
    then find a way to integrate them in the dump to userspace, but I
    don't think it's worth the effort.
    
    Fixes: 91ec9bd57f35 ("macsec: Fix traffic counters/statistics")
    Reported-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Link: https://patch.msgid.link/f5ac92aaa5b89343232615f4c03f9f95042c6aa0.1728657709.git.sd@queasysnail.net
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/smc: Fix searching in list of known pnetids in smc_pnet_add_pnetid [+ + +]
Author: Li RongQing <lirongqing@baidu.com>
Date:   Mon Oct 14 19:53:21 2024 +0800

    net/smc: Fix searching in list of known pnetids in smc_pnet_add_pnetid
    
    [ Upstream commit 82ac39ebd6db0c9f7a97a934bda1e3e101a9d201 ]
    
    pnetid of pi (not newly allocated pe) should be compared
    
    Fixes: e888a2e8337c ("net/smc: introduce list of pnetids for Ethernet devices")
    Reviewed-by: D. Wythe <alibuda@linux.alibaba.com>
    Reviewed-by: Wen Gu <guwen@linux.alibaba.com>
    Signed-off-by: Li RongQing <lirongqing@baidu.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Gerd Bayer <gbayer@linux.ibm.com>
    Link: https://patch.msgid.link/20241014115321.33234-1-lirongqing@baidu.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net/sun3_82586: fix potential memory leak in sun3_82586_send_packet() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Tue Oct 15 22:41:48 2024 +0800

    net/sun3_82586: fix potential memory leak in sun3_82586_send_packet()
    
    [ Upstream commit 2cb3f56e827abb22c4168ad0c1bbbf401bb2f3b8 ]
    
    The sun3_82586_send_packet() returns NETDEV_TX_OK without freeing skb
    in case of skb->len being too long, add dev_kfree_skb() to fix it.
    
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Message-ID: <20241015144148.7918-1-wanghai38@huawei.com>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x [+ + +]
Author: Peter Rashleigh <peter@rashleigh.ca>
Date:   Tue Oct 15 21:08:22 2024 -0700

    net: dsa: mv88e6xxx: Fix error when setting port policy on mv88e6393x
    
    [ Upstream commit 12bc14949c4a7272b509af0f1022a0deeb215fd8 ]
    
    mv88e6393x_port_set_policy doesn't correctly shift the ptr value when
    converting the policy format between the old and new styles, so the
    target register ends up with the ptr being written over the data bits.
    
    Shift the pointer to align with the format expected by
    mv88e6393x_port_policy_write().
    
    Fixes: 6584b26020fc ("net: dsa: mv88e6xxx: implement .port_set_policy for Amethyst")
    Signed-off-by: Peter Rashleigh <peter@rashleigh.ca>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Message-ID: <20241016040822.3917-1-peter@rashleigh.ca>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Sat Oct 12 19:04:34 2024 +0800

    net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit()
    
    [ Upstream commit cf57b5d7a2aad456719152ecd12007fe031628a3 ]
    
    The greth_start_xmit_gbit() returns NETDEV_TX_OK without freeing skb
    in case of skb->len being too long, add dev_kfree_skb() to fix it.
    
    Fixes: d4c41139df6e ("net: Add Aeroflex Gaisler 10/100/1G Ethernet MAC driver")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Gerhard Engleder <gerhard@engleder-embedded.com>
    Link: https://patch.msgid.link/20241012110434.49265-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: phy: dp83822: Fix reset pin definitions [+ + +]
Author: Michel Alex <Alex.Michel@wiedemann-group.com>
Date:   Wed Oct 16 12:11:15 2024 +0000

    net: phy: dp83822: Fix reset pin definitions
    
    commit de96f6a3003513c796bbe4e23210a446913f5c00 upstream.
    
    This change fixes a rare issue where the PHY fails to detect a link
    due to incorrect reset behavior.
    
    The SW_RESET definition was incorrectly assigned to bit 14, which is the
    Digital Restart bit according to the datasheet. This commit corrects
    SW_RESET to bit 15 and assigns DIG_RESTART to bit 14 as per the
    datasheet specifications.
    
    The SW_RESET define is only used in the phy_reset function, which fully
    re-initializes the PHY after the reset is performed. The change in the
    bit definitions should not have any negative impact on the functionality
    of the PHY.
    
    v2:
    - added Fixes tag
    - improved commit message
    
    Cc: stable@vger.kernel.org
    Fixes: 5dc39fd5ef35 ("net: phy: DP83822: Add ability to advertise Fiber connection")
    Signed-off-by: Alex Michel <alex.michel@wiedemann-group.com>
    Reviewed-by: Andrew Lunn <andrew@lunn.ch>
    Message-ID: <AS1P250MB0608A798661549BF83C4B43EA9462@AS1P250MB0608.EURP250.PROD.OUTLOOK.COM>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

net: plip: fix break; causing plip to never transmit [+ + +]
Author: Jakub Boehm <boehm.jakub@gmail.com>
Date:   Tue Oct 15 17:16:04 2024 +0200

    net: plip: fix break; causing plip to never transmit
    
    [ Upstream commit f99cf996ba5a315f8b9f13cc21dff0604a0eb749 ]
    
    Since commit
      71ae2cb30531 ("net: plip: Fix fall-through warnings for Clang")
    
    plip was not able to send any packets, this patch replaces one
    unintended break; with fallthrough; which was originally missed by
    commit 9525d69a3667 ("net: plip: mark expected switch fall-throughs").
    
    I have verified with a real hardware PLIP connection that everything
    works once again after applying this patch.
    
    Fixes: 71ae2cb30531 ("net: plip: Fix fall-through warnings for Clang")
    Signed-off-by: Jakub Boehm <boehm.jakub@gmail.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Message-ID: <20241015-net-plip-tx-fix-v1-1-32d8be1c7e0b@gmail.com>
    Signed-off-by: Andrew Lunn <andrew@lunn.ch>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: sched: fix use-after-free in taprio_change() [+ + +]
Author: Dmitry Antipov <dmantipov@yandex.ru>
Date:   Fri Oct 18 08:13:38 2024 +0300

    net: sched: fix use-after-free in taprio_change()
    
    [ Upstream commit f504465970aebb2467da548f7c1efbbf36d0f44b ]
    
    In 'taprio_change()', 'admin' pointer may become dangling due to sched
    switch / removal caused by 'advance_sched()', and critical section
    protected by 'q->current_entry_lock' is too small to prevent from such
    a scenario (which causes use-after-free detected by KASAN). Fix this
    by prefer 'rcu_replace_pointer()' over 'rcu_assign_pointer()' to update
    'admin' immediately before an attempt to schedule freeing.
    
    Fixes: a3d43c0d56f1 ("taprio: Add support adding an admin schedule")
    Reported-by: syzbot+b65e0af58423fc8a73aa@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=b65e0af58423fc8a73aa
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
    Link: https://patch.msgid.link/20241018051339.418890-1-dmantipov@yandex.ru
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: systemport: fix potential memory leak in bcm_sysport_xmit() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Mon Oct 14 22:51:15 2024 +0800

    net: systemport: fix potential memory leak in bcm_sysport_xmit()
    
    [ Upstream commit c401ed1c709948e57945485088413e1bb5e94bd1 ]
    
    The bcm_sysport_xmit() returns NETDEV_TX_OK without freeing skb
    in case of dma_map_single() fails, add dev_kfree_skb() to fix it.
    
    Fixes: 80105befdb4b ("net: systemport: add Broadcom SYSTEMPORT Ethernet MAC driver")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://patch.msgid.link/20241014145115.44977-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: usb: usbnet: fix name regression [+ + +]
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Oct 17 09:18:37 2024 +0200

    net: usb: usbnet: fix name regression
    
    [ Upstream commit 8a7d12d674ac6f2147c18f36d1e15f1a48060edf ]
    
    The fix for MAC addresses broke detection of the naming convention
    because it gave network devices no random MAC before bind()
    was called. This means that the check for the local assignment bit
    was always negative as the address was zeroed from allocation,
    instead of from overwriting the MAC with a unique hardware address.
    
    The correct check for whether bind() has altered the MAC is
    done with is_zero_ether_addr
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Reported-by: Greg Thelen <gthelen@google.com>
    Diagnosed-by: John Sperbeck <jsperbeck@google.com>
    Fixes: bab8eb0dd4cb9 ("usbnet: modern method to get random MAC")
    Link: https://patch.msgid.link/20241017071849.389636-1-oneukum@suse.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: usb: usbnet: fix race in probe failure [+ + +]
Author: Oliver Neukum <oneukum@suse.com>
Date:   Thu Oct 10 15:19:14 2024 +0200

    net: usb: usbnet: fix race in probe failure
    
    [ Upstream commit b62f4c186c70aa235fef2da68d07325d85ca3ade ]
    
    The same bug as in the disconnect code path also exists
    in the case of a failure late during the probe process.
    The flag must also be set.
    
    Signed-off-by: Oliver Neukum <oneukum@suse.com>
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Link: https://patch.msgid.link/20241010131934.1499695-1-oneukum@suse.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: wwan: fix global oob in wwan_rtnl_policy [+ + +]
Author: Lin Ma <linma@zju.edu.cn>
Date:   Tue Oct 15 21:16:21 2024 +0800

    net: wwan: fix global oob in wwan_rtnl_policy
    
    [ Upstream commit 47dd5447cab8ce30a847a0337d5341ae4c7476a7 ]
    
    The variable wwan_rtnl_link_ops assign a *bigger* maxtype which leads to
    a global out-of-bounds read when parsing the netlink attributes. Exactly
    same bug cause as the oob fixed in commit b33fb5b801c6 ("net: qualcomm:
    rmnet: fix global oob in rmnet_policy").
    
    ==================================================================
    BUG: KASAN: global-out-of-bounds in validate_nla lib/nlattr.c:388 [inline]
    BUG: KASAN: global-out-of-bounds in __nla_validate_parse+0x19d7/0x29a0 lib/nlattr.c:603
    Read of size 1 at addr ffffffff8b09cb60 by task syz.1.66276/323862
    
    CPU: 0 PID: 323862 Comm: syz.1.66276 Not tainted 6.1.70 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014
    Call Trace:
     <TASK>
     __dump_stack lib/dump_stack.c:88 [inline]
     dump_stack_lvl+0x177/0x231 lib/dump_stack.c:106
     print_address_description mm/kasan/report.c:284 [inline]
     print_report+0x14f/0x750 mm/kasan/report.c:395
     kasan_report+0x139/0x170 mm/kasan/report.c:495
     validate_nla lib/nlattr.c:388 [inline]
     __nla_validate_parse+0x19d7/0x29a0 lib/nlattr.c:603
     __nla_parse+0x3c/0x50 lib/nlattr.c:700
     nla_parse_nested_deprecated include/net/netlink.h:1269 [inline]
     __rtnl_newlink net/core/rtnetlink.c:3514 [inline]
     rtnl_newlink+0x7bc/0x1fd0 net/core/rtnetlink.c:3623
     rtnetlink_rcv_msg+0x794/0xef0 net/core/rtnetlink.c:6122
     netlink_rcv_skb+0x1de/0x420 net/netlink/af_netlink.c:2508
     netlink_unicast_kernel net/netlink/af_netlink.c:1326 [inline]
     netlink_unicast+0x74b/0x8c0 net/netlink/af_netlink.c:1352
     netlink_sendmsg+0x882/0xb90 net/netlink/af_netlink.c:1874
     sock_sendmsg_nosec net/socket.c:716 [inline]
     __sock_sendmsg net/socket.c:728 [inline]
     ____sys_sendmsg+0x5cc/0x8f0 net/socket.c:2499
     ___sys_sendmsg+0x21c/0x290 net/socket.c:2553
     __sys_sendmsg net/socket.c:2582 [inline]
     __do_sys_sendmsg net/socket.c:2591 [inline]
     __se_sys_sendmsg+0x19e/0x270 net/socket.c:2589
     do_syscall_x64 arch/x86/entry/common.c:51 [inline]
     do_syscall_64+0x45/0x90 arch/x86/entry/common.c:81
     entry_SYSCALL_64_after_hwframe+0x63/0xcd
    RIP: 0033:0x7f67b19a24ad
    RSP: 002b:00007f67b17febb8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    RAX: ffffffffffffffda RBX: 00007f67b1b45f80 RCX: 00007f67b19a24ad
    RDX: 0000000000000000 RSI: 0000000020005e40 RDI: 0000000000000004
    RBP: 00007f67b1a1e01d R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000
    R13: 00007ffd2513764f R14: 00007ffd251376e0 R15: 00007f67b17fed40
     </TASK>
    
    The buggy address belongs to the variable:
     wwan_rtnl_policy+0x20/0x40
    
    The buggy address belongs to the physical page:
    page:ffffea00002c2700 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0xb09c
    flags: 0xfff00000001000(reserved|node=0|zone=1|lastcpupid=0x7ff)
    raw: 00fff00000001000 ffffea00002c2708 ffffea00002c2708 0000000000000000
    raw: 0000000000000000 0000000000000000 00000001ffffffff 0000000000000000
    page dumped because: kasan: bad access detected
    page_owner info is not present (never set?)
    
    Memory state around the buggy address:
     ffffffff8b09ca00: 05 f9 f9 f9 05 f9 f9 f9 00 01 f9 f9 00 01 f9 f9
     ffffffff8b09ca80: 00 00 00 05 f9 f9 f9 f9 00 00 03 f9 f9 f9 f9 f9
    >ffffffff8b09cb00: 00 00 00 00 05 f9 f9 f9 00 00 00 00 f9 f9 f9 f9
                                                           ^
     ffffffff8b09cb80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    ==================================================================
    
    According to the comment of `nla_parse_nested_deprecated`, use correct size
    `IFLA_WWAN_MAX` here to fix this issue.
    
    Fixes: 88b710532e53 ("wwan: add interface creation support")
    Signed-off-by: Lin Ma <linma@zju.edu.cn>
    Reviewed-by: Loic Poulain <loic.poulain@linaro.org>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/20241015131621.47503-1-linma@zju.edu.cn
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

net: xilinx: axienet: fix potential memory leak in axienet_start_xmit() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Mon Oct 14 22:37:04 2024 +0800

    net: xilinx: axienet: fix potential memory leak in axienet_start_xmit()
    
    [ Upstream commit 99714e37e8333bbc22496fe80f241d5b35380e83 ]
    
    The axienet_start_xmit() returns NETDEV_TX_OK without freeing skb
    in case of dma_map_single() fails, add dev_kfree_skb_any() to fix it.
    
    Fixes: 71791dc8bdea ("net: axienet: Check for DMA mapping errors")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Reviewed-by: Radhey Shyam Pandey <radhey.shyam.pandey@amd.com>
    Link: https://patch.msgid.link/20241014143704.31938-1-wanghai38@huawei.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
netfilter: xtables: fix typo causing some targets not to load on IPv6 [+ + +]
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Sun Oct 20 14:49:51 2024 +0200

    netfilter: xtables: fix typo causing some targets not to load on IPv6
    
    [ Upstream commit 306ed1728e8438caed30332e1ab46b28c25fe3d8 ]
    
    - There is no NFPROTO_IPV6 family for mark and NFLOG.
    - TRACE is also missing module autoload with NFPROTO_IPV6.
    
    This results in ip6tables failing to restore a ruleset. This issue has been
    reported by several users providing incomplete patches.
    
    Very similar to Ilya Katsnelson's patch including a missing chunk in the
    TRACE extension.
    
    Fixes: 0bfcb7b71e73 ("netfilter: xtables: avoid NFPROTO_UNSPEC where needed")
    Reported-by: Ignat Korchagin <ignat@cloudflare.com>
    Reported-by: Ilya Katsnelson <me@0upti.me>
    Reported-by: Krzysztof Olędzki <ole@ans.pl>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
nilfs2: fix kernel bug due to missing clearing of buffer delay flag [+ + +]
Author: Ryusuke Konishi <konishi.ryusuke@gmail.com>
Date:   Wed Oct 16 06:32:07 2024 +0900

    nilfs2: fix kernel bug due to missing clearing of buffer delay flag
    
    commit 6ed469df0bfbef3e4b44fca954a781919db9f7ab upstream.
    
    Syzbot reported that after nilfs2 reads a corrupted file system image
    and degrades to read-only, the BUG_ON check for the buffer delay flag
    in submit_bh_wbc() may fail, causing a kernel bug.
    
    This is because the buffer delay flag is not cleared when clearing the
    buffer state flags to discard a page/folio or a buffer head. So, fix
    this.
    
    This became necessary when the use of nilfs2's own page clear routine
    was expanded.  This state inconsistency does not occur if the buffer
    is written normally by log writing.
    
    Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com>
    Link: https://lore.kernel.org/r/20241015213300.7114-1-konishi.ryusuke@gmail.com
    Fixes: 8c26c4e2694a ("nilfs2: fix issue with flush kernel thread after remount in RO mode because of driver's internal error or metadata corruption")
    Reported-by: syzbot+985ada84bf055a575c07@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=985ada84bf055a575c07
    Cc: stable@vger.kernel.org
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
octeontx2-af: Fix potential integer overflows on integer shifts [+ + +]
Author: Colin Ian King <colin.i.king@gmail.com>
Date:   Thu Oct 10 16:45:19 2024 +0100

    octeontx2-af: Fix potential integer overflows on integer shifts
    
    [ Upstream commit 637c4f6fe40befa04f19c38b5d15429cbb9191d9 ]
    
    The left shift int 32 bit integer constants 1 is evaluated using 32 bit
    arithmetic and then assigned to a 64 bit unsigned integer. In the case
    where the shift is 32 or more this can lead to an overflow. Avoid this
    by shifting using the BIT_ULL macro instead.
    
    Fixes: 019aba04f08c ("octeontx2-af: Modify SMQ flush sequence to drop packets")
    Signed-off-by: Colin Ian King <colin.i.king@gmail.com>
    Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
    Link: https://patch.msgid.link/20241010154519.768785-1-colin.i.king@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
openat2: explicitly return -E2BIG for (usize > PAGE_SIZE) [+ + +]
Author: Aleksa Sarai <cyphar@cyphar.com>
Date:   Thu Oct 10 07:40:36 2024 +1100

    openat2: explicitly return -E2BIG for (usize > PAGE_SIZE)
    
    commit f92f0a1b05698340836229d791b3ffecc71b265a upstream.
    
    While we do currently return -EFAULT in this case, it seems prudent to
    follow the behaviour of other syscalls like clone3. It seems quite
    unlikely that anyone depends on this error code being EFAULT, but we can
    always revert this if it turns out to be an issue.
    
    Cc: stable@vger.kernel.org # v5.6+
    Fixes: fddb5d430ad9 ("open: introduce openat2(2) syscall")
    Signed-off-by: Aleksa Sarai <cyphar@cyphar.com>
    Link: https://lore.kernel.org/r/20241010-extensible-structs-check_fields-v3-3-d2833dfe6edd@cyphar.com
    Signed-off-by: Christian Brauner <brauner@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
platform/x86: dell-sysman: add support for alienware products [+ + +]
Author: Crag Wang <crag_wang@dell.com>
Date:   Fri Oct 4 23:27:58 2024 +0800

    platform/x86: dell-sysman: add support for alienware products
    
    [ Upstream commit a561509b4187a8908eb7fbb2d1bf35bbc20ec74b ]
    
    Alienware supports firmware-attributes and has its own OEM string.
    
    Signed-off-by: Crag Wang <crag_wang@dell.com>
    Link: https://lore.kernel.org/r/20241004152826.93992-1-crag_wang@dell.com
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

platform/x86: dell-wmi: Ignore suspend notifications [+ + +]
Author: Armin Wolf <W_Armin@gmx.de>
Date:   Tue Oct 15 00:05:29 2024 +0200

    platform/x86: dell-wmi: Ignore suspend notifications
    
    commit a7990957fa53326fe9b47f0349373ed99bb69aaa upstream.
    
    Some machines like the Dell G15 5155 emit WMI events when
    suspending/resuming. Ignore those WMI events.
    
    Tested-by: siddharth.manthan@gmail.com
    Signed-off-by: Armin Wolf <W_Armin@gmx.de>
    Acked-by: Pali Rohár <pali@kernel.org>
    Link: https://lore.kernel.org/r/20241014220529.397390-1-W_Armin@gmx.de
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

 
posix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime() [+ + +]
Author: Jinjie Ruan <ruanjinjie@huawei.com>
Date:   Fri Oct 18 18:07:48 2024 +0800

    posix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime()
    
    [ Upstream commit 6e62807c7fbb3c758d233018caf94dfea9c65dbd ]
    
    If get_clock_desc() succeeds, it calls fget() for the clockid's fd,
    and get the clk->rwsem read lock, so the error path should release
    the lock to make the lock balance and fput the clockid's fd to make
    the refcount balance and release the fd related resource.
    
    However the below commit left the error path locked behind resulting in
    unbalanced locking. Check timespec64_valid_strict() before
    get_clock_desc() to fix it, because the "ts" is not changed
    after that.
    
    Fixes: d8794ac20a29 ("posix-clock: Fix missing timespec64 check in pc_clock_settime()")
    Acked-by: Richard Cochran <richardcochran@gmail.com>
    Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
    Acked-by: Anna-Maria Behnsen <anna-maria@linutronix.de>
    [pabeni@redhat.com: fixed commit message typo]
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
r8169: avoid unsolicited interrupts [+ + +]
Author: Heiner Kallweit <hkallweit1@gmail.com>
Date:   Fri Oct 18 11:08:16 2024 +0200

    r8169: avoid unsolicited interrupts
    
    [ Upstream commit 10ce0db787004875f4dba068ea952207d1d8abeb ]
    
    It was reported that after resume from suspend a PCI error is logged
    and connectivity is broken. Error message is:
    PCI error (cmd = 0x0407, status_errs = 0x0000)
    The message seems to be a red herring as none of the error bits is set,
    and the PCI command register value also is normal. Exception handling
    for a PCI error includes a chip reset what apparently brakes connectivity
    here. The interrupt status bit triggering the PCI error handling isn't
    actually used on PCIe chip versions, so it's not clear why this bit is
    set by the chip. Fix this by ignoring this bit on PCIe chip versions.
    
    Fixes: 0e4851502f84 ("r8169: merge with version 8.001.00 of Realtek's r8168 driver")
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219388
    Tested-by: Atlas Yu <atlas.yu@canonical.com>
    Signed-off-by: Heiner Kallweit <hkallweit1@gmail.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Link: https://patch.msgid.link/78e2f535-438f-4212-ad94-a77637ac6c9c@gmail.com
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
RDMA/bnxt_re: Add a check for memory allocation [+ + +]
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Wed Sep 18 20:05:58 2024 -0700

    RDMA/bnxt_re: Add a check for memory allocation
    
    [ Upstream commit c5c1ae73b7741fa3b58e6e001b407825bb971225 ]
    
    __alloc_pbl() can return error when memory allocation fails.
    Driver is not checking the status on one of the instances.
    
    Fixes: 0c4dcd602817 ("RDMA/bnxt_re: Refactor hardware queue memory allocation")
    Link: https://patch.msgid.link/r/1726715161-18941-4-git-send-email-selvin.xavier@broadcom.com
    Reviewed-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages [+ + +]
Author: Bhargava Chenna Marreddy <bhargava.marreddy@broadcom.com>
Date:   Tue Oct 8 00:41:41 2024 -0700

    RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages
    
    [ Upstream commit 7988bdbbb85ac85a847baf09879edcd0f70521dc ]
    
    Avoid memory corruption while setting up Level-2 PBL pages for the non MR
    resources when num_pages > 256K.
    
    There will be a single PDE page address (contiguous pages in the case of >
    PAGE_SIZE), but, current logic assumes multiple pages, leading to invalid
    memory access after 256K PBL entries in the PDE.
    
    Fixes: 0c4dcd602817 ("RDMA/bnxt_re: Refactor hardware queue memory allocation")
    Link: https://patch.msgid.link/r/1728373302-19530-10-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Bhargava Chenna Marreddy <bhargava.marreddy@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

RDMA/bnxt_re: Fix incorrect AVID type in WQE structure [+ + +]
Author: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
Date:   Wed Sep 18 20:05:57 2024 -0700

    RDMA/bnxt_re: Fix incorrect AVID type in WQE structure
    
    [ Upstream commit 9ab20f76ae9fad55ebaf36bdff04aea1c2552374 ]
    
    Driver uses internal data structure to construct WQE frame.
    It used avid type as u16 which can accommodate up to 64K AVs.
    When outstanding AVID crosses 64K, driver truncates AVID and
    hence it uses incorrect AVID to WR. This leads to WR failure
    due to invalid AV ID and QP is moved to error state with reason
    set to 19 (INVALID AVID). When RDMA CM path is used, this issue
    hits QP1 and it is moved to error state
    
    Fixes: 1ac5a4047975 ("RDMA/bnxt_re: Add bnxt_re RoCE driver")
    Link: https://patch.msgid.link/r/1726715161-18941-3-git-send-email-selvin.xavier@broadcom.com
    Reviewed-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Reviewed-by: Chandramohan Akula <chandramohan.akula@broadcom.com>
    Signed-off-by: Saravanan Vajravel <saravanan.vajravel@broadcom.com>
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Leon Romanovsky <leon@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

RDMA/bnxt_re: Return more meaningful error [+ + +]
Author: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
Date:   Tue Oct 8 00:41:36 2024 -0700

    RDMA/bnxt_re: Return more meaningful error
    
    [ Upstream commit 98647df0178df215b8239c5c365537283b2852a6 ]
    
    When the HWRM command fails, driver currently returns -EFAULT(Bad
    address). This does not look correct.
    
    Modified to return -EIO(I/O error).
    
    Fixes: cc1ec769b87c ("RDMA/bnxt_re: Fixing the Control path command and response handling")
    Fixes: 65288a22ddd8 ("RDMA/bnxt_re: use shadow qd while posting non blocking rcfw command")
    Link: https://patch.msgid.link/r/1728373302-19530-5-git-send-email-selvin.xavier@broadcom.com
    Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com>
    Signed-off-by: Selvin Xavier <selvin.xavier@broadcom.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP [+ + +]
Author: Anumula Murali Mohan Reddy <anumula@chelsio.com>
Date:   Mon Oct 7 18:53:11 2024 +0530

    RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP
    
    [ Upstream commit c659b405b82ead335bee6eb33f9691bf718e21e8 ]
    
    ip_dev_find() always returns real net_device address, whether traffic is
    running on a vlan or real device, if traffic is over vlan, filling
    endpoint struture with real ndev and an attempt to send a connect request
    will results in RDMA_CM_EVENT_UNREACHABLE error.  This patch fixes the
    issue by using vlan_dev_real_dev().
    
    Fixes: 830662f6f032 ("RDMA/cxgb4: Add support for active and passive open connection with IPv6 address")
    Link: https://patch.msgid.link/r/20241007132311.70593-1-anumula@chelsio.com
    Signed-off-by: Anumula Murali Mohan Reddy <anumula@chelsio.com>
    Signed-off-by: Potnuri Bharat Teja <bharat@chelsio.com>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
RDMA/irdma: Fix misspelling of "accept*" [+ + +]
Author: Alexander Zubkov <green@qrator.net>
Date:   Tue Oct 8 18:19:13 2024 +0200

    RDMA/irdma: Fix misspelling of "accept*"
    
    [ Upstream commit 8cddfa535c931b8d8110c73bfed7354a94cbf891 ]
    
    There is "accept*" misspelled as "accpet*" in the comments.  Fix the
    spelling.
    
    Fixes: 146b9756f14c ("RDMA/irdma: Add connection manager")
    Link: https://patch.msgid.link/r/20241008161913.19965-1-green@qrator.net
    Signed-off-by: Alexander Zubkov <green@qrator.net>
    Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
s390: Initialize psw mask in perf_arch_fetch_caller_regs() [+ + +]
Author: Heiko Carstens <hca@linux.ibm.com>
Date:   Thu Oct 10 17:52:39 2024 +0200

    s390: Initialize psw mask in perf_arch_fetch_caller_regs()
    
    [ Upstream commit 223e7fb979fa06934f1595b6ad0ae1d4ead1147f ]
    
    Also initialize regs->psw.mask in perf_arch_fetch_caller_regs().
    This way user_mode(regs) will return false, like it should.
    
    It looks like all current users initialize regs to zero, so that this
    doesn't fix a bug currently. However it is better to not rely on callers
    to do this.
    
    Fixes: 914d52e46490 ("s390: implement perf_arch_fetch_caller_regs")
    Signed-off-by: Heiko Carstens <hca@linux.ibm.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
scsi: target: core: Fix null-ptr-deref in target_alloc_device() [+ + +]
Author: Wang Hai <wanghai38@huawei.com>
Date:   Fri Oct 11 19:34:44 2024 +0800

    scsi: target: core: Fix null-ptr-deref in target_alloc_device()
    
    [ Upstream commit fca6caeb4a61d240f031914413fcc69534f6dc03 ]
    
    There is a null-ptr-deref issue reported by KASAN:
    
    BUG: KASAN: null-ptr-deref in target_alloc_device+0xbc4/0xbe0 [target_core_mod]
    ...
     kasan_report+0xb9/0xf0
     target_alloc_device+0xbc4/0xbe0 [target_core_mod]
     core_dev_setup_virtual_lun0+0xef/0x1f0 [target_core_mod]
     target_core_init_configfs+0x205/0x420 [target_core_mod]
     do_one_initcall+0xdd/0x4e0
    ...
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    In target_alloc_device(), if allocing memory for dev queues fails, then
    dev will be freed by dev->transport->free_device(), but dev->transport
    is not initialized at that time, which will lead to a null pointer
    reference problem.
    
    Fixing this bug by freeing dev with hba->backend->ops->free_device().
    
    Fixes: 1526d9f10c61 ("scsi: target: Make state_list per CPU")
    Signed-off-by: Wang Hai <wanghai38@huawei.com>
    Link: https://lore.kernel.org/r/20241011113444.40749-1-wanghai38@huawei.com
    Reviewed-by: Mike Christie <michael.christie@oracle.com>
    Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
selinux: improve error checking in sel_write_load() [+ + +]
Author: Paul Moore <paul@paul-moore.com>
Date:   Fri Oct 25 11:20:57 2024 -0300

    selinux: improve error checking in sel_write_load()
    
    [ Upstream commit 42c773238037c90b3302bf37a57ae3b5c3f6004a ]
    
    Move our existing input sanity checking to the top of sel_write_load()
    and add a check to ensure the buffer size is non-zero.
    
    Move a local variable initialization from the declaration to before it
    is used.
    
    Minor style adjustments.
    
    Reported-by: Sam Sun <samsun1006219@gmail.com>
    Signed-off-by: Paul Moore <paul@paul-moore.com>
    [cascardo: keep fsi initialization at its declaration point as it is used earlier]
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
serial: protect uart_port_dtr_rts() in uart_shutdown() too [+ + +]
Author: Jiri Slaby (SUSE) <jirislaby@kernel.org>
Date:   Fri Oct 25 11:05:48 2024 +0000

    serial: protect uart_port_dtr_rts() in uart_shutdown() too
    
    [ Upstream commit 602babaa84d627923713acaf5f7e9a4369e77473 ]
    
    Commit af224ca2df29 (serial: core: Prevent unsafe uart port access, part
    3) added few uport == NULL checks. It added one to uart_shutdown(), so
    the commit assumes, uport can be NULL in there. But right after that
    protection, there is an unprotected "uart_port_dtr_rts(uport, false);"
    call. That is invoked only if HUPCL is set, so I assume that is the
    reason why we do not see lots of these reports.
    
    Or it cannot be NULL at this point at all for some reason :P.
    
    Until the above is investigated, stay on the safe side and move this
    dereference to the if too.
    
    I got this inconsistency from Coverity under CID 1585130. Thanks.
    
    Signed-off-by: Jiri Slaby (SUSE) <jirislaby@kernel.org>
    Cc: Peter Hurley <peter@hurleysoftware.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Link: https://lore.kernel.org/r/20240805102046.307511-3-jirislaby@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    [Adapted over commit 5701cb8bf50e ("tty: Call ->dtr_rts() parameter
    active consistently") not in the tree]
    Signed-off-by: Tomas Krcka <krckatom@amazon.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
smb: client: fix OOBs when building SMB2_IOCTL request [+ + +]
Author: Paulo Alcantara <pc@manguebit.com>
Date:   Tue Oct 15 19:04:04 2024 -0300

    smb: client: fix OOBs when building SMB2_IOCTL request
    
    [ Upstream commit 1ab60323c5201bef25f2a3dc0ccc404d9aca77f1 ]
    
    When using encryption, either enforced by the server or when using
    'seal' mount option, the client will squash all compound request buffers
    down for encryption into a single iov in smb2_set_next_command().
    
    SMB2_ioctl_init() allocates a small buffer (448 bytes) to hold the
    SMB2_IOCTL request in the first iov, and if the user passes an input
    buffer that is greater than 328 bytes, smb2_set_next_command() will
    end up writing off the end of @rqst->iov[0].iov_base as shown below:
    
      mount.cifs //srv/share /mnt -o ...,seal
      ln -s $(perl -e "print('a')for 1..1024") /mnt/link
    
      BUG: KASAN: slab-out-of-bounds in
      smb2_set_next_command.cold+0x1d6/0x24c [cifs]
      Write of size 4116 at addr ffff8881148fcab8 by task ln/859
    
      CPU: 1 UID: 0 PID: 859 Comm: ln Not tainted 6.12.0-rc3 #1
      Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
      1.16.3-2.fc40 04/01/2014
      Call Trace:
       <TASK>
       dump_stack_lvl+0x5d/0x80
       ? smb2_set_next_command.cold+0x1d6/0x24c [cifs]
       print_report+0x156/0x4d9
       ? smb2_set_next_command.cold+0x1d6/0x24c [cifs]
       ? __virt_addr_valid+0x145/0x310
       ? __phys_addr+0x46/0x90
       ? smb2_set_next_command.cold+0x1d6/0x24c [cifs]
       kasan_report+0xda/0x110
       ? smb2_set_next_command.cold+0x1d6/0x24c [cifs]
       kasan_check_range+0x10f/0x1f0
       __asan_memcpy+0x3c/0x60
       smb2_set_next_command.cold+0x1d6/0x24c [cifs]
       smb2_compound_op+0x238c/0x3840 [cifs]
       ? kasan_save_track+0x14/0x30
       ? kasan_save_free_info+0x3b/0x70
       ? vfs_symlink+0x1a1/0x2c0
       ? do_symlinkat+0x108/0x1c0
       ? __pfx_smb2_compound_op+0x10/0x10 [cifs]
       ? kmem_cache_free+0x118/0x3e0
       ? cifs_get_writable_path+0xeb/0x1a0 [cifs]
       smb2_get_reparse_inode+0x423/0x540 [cifs]
       ? __pfx_smb2_get_reparse_inode+0x10/0x10 [cifs]
       ? rcu_is_watching+0x20/0x50
       ? __kmalloc_noprof+0x37c/0x480
       ? smb2_create_reparse_symlink+0x257/0x490 [cifs]
       ? smb2_create_reparse_symlink+0x38f/0x490 [cifs]
       smb2_create_reparse_symlink+0x38f/0x490 [cifs]
       ? __pfx_smb2_create_reparse_symlink+0x10/0x10 [cifs]
       ? find_held_lock+0x8a/0xa0
       ? hlock_class+0x32/0xb0
       ? __build_path_from_dentry_optional_prefix+0x19d/0x2e0 [cifs]
       cifs_symlink+0x24f/0x960 [cifs]
       ? __pfx_make_vfsuid+0x10/0x10
       ? __pfx_cifs_symlink+0x10/0x10 [cifs]
       ? make_vfsgid+0x6b/0xc0
       ? generic_permission+0x96/0x2d0
       vfs_symlink+0x1a1/0x2c0
       do_symlinkat+0x108/0x1c0
       ? __pfx_do_symlinkat+0x10/0x10
       ? strncpy_from_user+0xaa/0x160
       __x64_sys_symlinkat+0xb9/0xf0
       do_syscall_64+0xbb/0x1d0
       entry_SYSCALL_64_after_hwframe+0x77/0x7f
      RIP: 0033:0x7f08d75c13bb
    
    Reported-by: David Howells <dhowells@redhat.com>
    Fixes: e77fe73c7e38 ("cifs: we can not use small padding iovs together with encryption")
    Signed-off-by: Paulo Alcantara (Red Hat) <pc@manguebit.com>
    Signed-off-by: Steve French <stfrench@microsoft.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink(). [+ + +]
Author: Kuniyuki Iwashima <kuniyu@amazon.com>
Date:   Mon Oct 14 15:33:12 2024 -0700

    tcp/dccp: Don't use timer_pending() in reqsk_queue_unlink().
    
    [ Upstream commit e8c526f2bdf1845bedaf6a478816a3d06fa78b8f ]
    
    Martin KaFai Lau reported use-after-free [0] in reqsk_timer_handler().
    
      """
      We are seeing a use-after-free from a bpf prog attached to
      trace_tcp_retransmit_synack. The program passes the req->sk to the
      bpf_sk_storage_get_tracing kernel helper which does check for null
      before using it.
      """
    
    The commit 83fccfc3940c ("inet: fix potential deadlock in
    reqsk_queue_unlink()") added timer_pending() in reqsk_queue_unlink() not
    to call del_timer_sync() from reqsk_timer_handler(), but it introduced a
    small race window.
    
    Before the timer is called, expire_timers() calls detach_timer(timer, true)
    to clear timer->entry.pprev and marks it as not pending.
    
    If reqsk_queue_unlink() checks timer_pending() just after expire_timers()
    calls detach_timer(), TCP will miss del_timer_sync(); the reqsk timer will
    continue running and send multiple SYN+ACKs until it expires.
    
    The reported UAF could happen if req->sk is close()d earlier than the timer
    expiration, which is 63s by default.
    
    The scenario would be
    
      1. inet_csk_complete_hashdance() calls inet_csk_reqsk_queue_drop(),
         but del_timer_sync() is missed
    
      2. reqsk timer is executed and scheduled again
    
      3. req->sk is accept()ed and reqsk_put() decrements rsk_refcnt, but
         reqsk timer still has another one, and inet_csk_accept() does not
         clear req->sk for non-TFO sockets
    
      4. sk is close()d
    
      5. reqsk timer is executed again, and BPF touches req->sk
    
    Let's not use timer_pending() by passing the caller context to
    __inet_csk_reqsk_queue_drop().
    
    Note that reqsk timer is pinned, so the issue does not happen in most
    use cases. [1]
    
    [0]
    BUG: KFENCE: use-after-free read in bpf_sk_storage_get_tracing+0x2e/0x1b0
    
    Use-after-free read at 0x00000000a891fb3a (in kfence-#1):
    bpf_sk_storage_get_tracing+0x2e/0x1b0
    bpf_prog_5ea3e95db6da0438_tcp_retransmit_synack+0x1d20/0x1dda
    bpf_trace_run2+0x4c/0xc0
    tcp_rtx_synack+0xf9/0x100
    reqsk_timer_handler+0xda/0x3d0
    run_timer_softirq+0x292/0x8a0
    irq_exit_rcu+0xf5/0x320
    sysvec_apic_timer_interrupt+0x6d/0x80
    asm_sysvec_apic_timer_interrupt+0x16/0x20
    intel_idle_irq+0x5a/0xa0
    cpuidle_enter_state+0x94/0x273
    cpu_startup_entry+0x15e/0x260
    start_secondary+0x8a/0x90
    secondary_startup_64_no_verify+0xfa/0xfb
    
    kfence-#1: 0x00000000a72cc7b6-0x00000000d97616d9, size=2376, cache=TCPv6
    
    allocated by task 0 on cpu 9 at 260507.901592s:
    sk_prot_alloc+0x35/0x140
    sk_clone_lock+0x1f/0x3f0
    inet_csk_clone_lock+0x15/0x160
    tcp_create_openreq_child+0x1f/0x410
    tcp_v6_syn_recv_sock+0x1da/0x700
    tcp_check_req+0x1fb/0x510
    tcp_v6_rcv+0x98b/0x1420
    ipv6_list_rcv+0x2258/0x26e0
    napi_complete_done+0x5b1/0x2990
    mlx5e_napi_poll+0x2ae/0x8d0
    net_rx_action+0x13e/0x590
    irq_exit_rcu+0xf5/0x320
    common_interrupt+0x80/0x90
    asm_common_interrupt+0x22/0x40
    cpuidle_enter_state+0xfb/0x273
    cpu_startup_entry+0x15e/0x260
    start_secondary+0x8a/0x90
    secondary_startup_64_no_verify+0xfa/0xfb
    
    freed by task 0 on cpu 9 at 260507.927527s:
    rcu_core_si+0x4ff/0xf10
    irq_exit_rcu+0xf5/0x320
    sysvec_apic_timer_interrupt+0x6d/0x80
    asm_sysvec_apic_timer_interrupt+0x16/0x20
    cpuidle_enter_state+0xfb/0x273
    cpu_startup_entry+0x15e/0x260
    start_secondary+0x8a/0x90
    secondary_startup_64_no_verify+0xfa/0xfb
    
    Fixes: 83fccfc3940c ("inet: fix potential deadlock in reqsk_queue_unlink()")
    Reported-by: Martin KaFai Lau <martin.lau@kernel.org>
    Closes: https://lore.kernel.org/netdev/eb6684d0-ffd9-4bdc-9196-33f690c25824@linux.dev/
    Link: https://lore.kernel.org/netdev/b55e2ca0-42f2-4b7c-b445-6ffd87ca74a0@linux.dev/ [1]
    Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
    Reviewed-by: Eric Dumazet <edumazet@google.com>
    Reviewed-by: Martin KaFai Lau <martin.lau@kernel.org>
    Link: https://patch.msgid.link/20241014223312.4254-1-kuniyu@amazon.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
tracing: Consider the NULL character when validating the event length [+ + +]
Author: Leo Yan <leo.yan@arm.com>
Date:   Mon Oct 7 15:47:24 2024 +0100

    tracing: Consider the NULL character when validating the event length
    
    [ Upstream commit 0b6e2e22cb23105fcb171ab92f0f7516c69c8471 ]
    
    strlen() returns a string length excluding the null byte. If the string
    length equals to the maximum buffer length, the buffer will have no
    space for the NULL terminating character.
    
    This commit checks this condition and returns failure for it.
    
    Link: https://lore.kernel.org/all/20241007144724.920954-1-leo.yan@arm.com/
    
    Fixes: dec65d79fd26 ("tracing/probe: Check event name length correctly")
    Signed-off-by: Leo Yan <leo.yan@arm.com>
    Reviewed-by: Steven Rostedt (Google) <rostedt@goodmis.org>
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
udf: fix uninit-value use in udf_get_fileshortad [+ + +]
Author: Gianfranco Trad <gianf.trad@gmail.com>
Date:   Wed Sep 25 09:46:15 2024 +0200

    udf: fix uninit-value use in udf_get_fileshortad
    
    [ Upstream commit 264db9d666ad9a35075cc9ed9ec09d021580fbb1 ]
    
    Check for overflow when computing alen in udf_current_aext to mitigate
    later uninit-value use in udf_get_fileshortad KMSAN bug[1].
    After applying the patch reproducer did not trigger any issue[2].
    
    [1] https://syzkaller.appspot.com/bug?extid=8901c4560b7ab5c2f9df
    [2] https://syzkaller.appspot.com/x/log.txt?x=10242227980000
    
    Reported-by: syzbot+8901c4560b7ab5c2f9df@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=8901c4560b7ab5c2f9df
    Tested-by: syzbot+8901c4560b7ab5c2f9df@syzkaller.appspotmail.com
    Suggested-by: Jan Kara <jack@suse.com>
    Signed-off-by: Gianfranco Trad <gianf.trad@gmail.com>
    Signed-off-by: Jan Kara <jack@suse.cz>
    Link: https://patch.msgid.link/20240925074613.8475-3-gianf.trad@gmail.com
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
usb: dwc3: core: Fix system suspend on TI AM62 platforms [+ + +]
Author: Roger Quadros <rogerq@kernel.org>
Date:   Fri Oct 11 13:53:24 2024 +0300

    usb: dwc3: core: Fix system suspend on TI AM62 platforms
    
    [ Upstream commit 705e3ce37bccdf2ed6f848356ff355f480d51a91 ]
    
    Since commit 6d735722063a ("usb: dwc3: core: Prevent phy suspend during init"),
    system suspend is broken on AM62 TI platforms.
    
    Before that commit, both DWC3_GUSB3PIPECTL_SUSPHY and DWC3_GUSB2PHYCFG_SUSPHY
    bits (hence forth called 2 SUSPHY bits) were being set during core
    initialization and even during core re-initialization after a system
    suspend/resume.
    
    These bits are required to be set for system suspend/resume to work correctly
    on AM62 platforms.
    
    Since that commit, the 2 SUSPHY bits are not set for DEVICE/OTG mode if gadget
    driver is not loaded and started.
    For Host mode, the 2 SUSPHY bits are set before the first system suspend but
    get cleared at system resume during core re-init and are never set again.
    
    This patch resovles these two issues by ensuring the 2 SUSPHY bits are set
    before system suspend and restored to the original state during system resume.
    
    Cc: stable@vger.kernel.org # v6.9+
    Fixes: 6d735722063a ("usb: dwc3: core: Prevent phy suspend during init")
    Link: https://lore.kernel.org/all/1519dbe7-73b6-4afc-bfe3-23f4f75d772f@kernel.org/
    Signed-off-by: Roger Quadros <rogerq@kernel.org>
    Acked-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Tested-by: Markus Schneider-Pargmann <msp@baylibre.com>
    Reviewed-by: Dhruva Gole <d-gole@ti.com>
    Link: https://lore.kernel.org/r/20241011-am62-lpm-usb-v3-1-562d445625b5@kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

usb: gadget: Add function wakeup support [+ + +]
Author: Elson Roy Serrao <quic_eserrao@quicinc.com>
Date:   Fri Mar 24 14:47:59 2023 -0700

    usb: gadget: Add function wakeup support
    
    [ Upstream commit f0db885fb05d35befa81896db6b19eb3ee9ccdfe ]
    
    USB3.2 spec section 9.2.5.4 quotes that a function may signal that
    it wants to exit from Function Suspend by sending a Function
    Wake Notification to the host if it is enabled for function
    remote wakeup. Add an api in composite layer that can be used
    by the function drivers to support this feature. Also expose
    a gadget op so that composite layer can trigger a wakeup request
    to the UDC driver.
    
    Reviewed-by: Thinh Nguyen <Thinh.Nguyen@synopsys.com>
    Signed-off-by: Elson Roy Serrao <quic_eserrao@quicinc.com>
    Link: https://lore.kernel.org/r/1679694482-16430-4-git-send-email-quic_eserrao@quicinc.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 705e3ce37bcc ("usb: dwc3: core: Fix system suspend on TI AM62 platforms")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

usb: typec: altmode should keep reference to parent [+ + +]
Author: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
Date:   Fri Oct 4 09:37:38 2024 -0300

    usb: typec: altmode should keep reference to parent
    
    [ Upstream commit befab3a278c59db0cc88c8799638064f6d3fd6f8 ]
    
    The altmode device release refers to its parent device, but without keeping
    a reference to it.
    
    When registering the altmode, get a reference to the parent and put it in
    the release function.
    
    Before this fix, when using CONFIG_DEBUG_KOBJECT_RELEASE, we see issues
    like this:
    
    [   43.572860] kobject: 'port0.0' (ffff8880057ba008): kobject_release, parent 0000000000000000 (delayed 3000)
    [   43.573532] kobject: 'port0.1' (ffff8880057bd008): kobject_release, parent 0000000000000000 (delayed 1000)
    [   43.574407] kobject: 'port0' (ffff8880057b9008): kobject_release, parent 0000000000000000 (delayed 3000)
    [   43.575059] kobject: 'port1.0' (ffff8880057ca008): kobject_release, parent 0000000000000000 (delayed 4000)
    [   43.575908] kobject: 'port1.1' (ffff8880057c9008): kobject_release, parent 0000000000000000 (delayed 4000)
    [   43.576908] kobject: 'typec' (ffff8880062dbc00): kobject_release, parent 0000000000000000 (delayed 4000)
    [   43.577769] kobject: 'port1' (ffff8880057bf008): kobject_release, parent 0000000000000000 (delayed 3000)
    [   46.612867] ==================================================================
    [   46.613402] BUG: KASAN: slab-use-after-free in typec_altmode_release+0x38/0x129
    [   46.614003] Read of size 8 at addr ffff8880057b9118 by task kworker/2:1/48
    [   46.614538]
    [   46.614668] CPU: 2 UID: 0 PID: 48 Comm: kworker/2:1 Not tainted 6.12.0-rc1-00138-gedbae730ad31 #535
    [   46.615391] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.15.0-1 04/01/2014
    [   46.616042] Workqueue: events kobject_delayed_cleanup
    [   46.616446] Call Trace:
    [   46.616648]  <TASK>
    [   46.616820]  dump_stack_lvl+0x5b/0x7c
    [   46.617112]  ? typec_altmode_release+0x38/0x129
    [   46.617470]  print_report+0x14c/0x49e
    [   46.617769]  ? rcu_read_unlock_sched+0x56/0x69
    [   46.618117]  ? __virt_addr_valid+0x19a/0x1ab
    [   46.618456]  ? kmem_cache_debug_flags+0xc/0x1d
    [   46.618807]  ? typec_altmode_release+0x38/0x129
    [   46.619161]  kasan_report+0x8d/0xb4
    [   46.619447]  ? typec_altmode_release+0x38/0x129
    [   46.619809]  ? process_scheduled_works+0x3cb/0x85f
    [   46.620185]  typec_altmode_release+0x38/0x129
    [   46.620537]  ? process_scheduled_works+0x3cb/0x85f
    [   46.620907]  device_release+0xaf/0xf2
    [   46.621206]  kobject_delayed_cleanup+0x13b/0x17a
    [   46.621584]  process_scheduled_works+0x4f6/0x85f
    [   46.621955]  ? __pfx_process_scheduled_works+0x10/0x10
    [   46.622353]  ? hlock_class+0x31/0x9a
    [   46.622647]  ? lock_acquired+0x361/0x3c3
    [   46.622956]  ? move_linked_works+0x46/0x7d
    [   46.623277]  worker_thread+0x1ce/0x291
    [   46.623582]  ? __kthread_parkme+0xc8/0xdf
    [   46.623900]  ? __pfx_worker_thread+0x10/0x10
    [   46.624236]  kthread+0x17e/0x190
    [   46.624501]  ? kthread+0xfb/0x190
    [   46.624756]  ? __pfx_kthread+0x10/0x10
    [   46.625015]  ret_from_fork+0x20/0x40
    [   46.625268]  ? __pfx_kthread+0x10/0x10
    [   46.625532]  ret_from_fork_asm+0x1a/0x30
    [   46.625805]  </TASK>
    [   46.625953]
    [   46.626056] Allocated by task 678:
    [   46.626287]  kasan_save_stack+0x24/0x44
    [   46.626555]  kasan_save_track+0x14/0x2d
    [   46.626811]  __kasan_kmalloc+0x3f/0x4d
    [   46.627049]  __kmalloc_noprof+0x1bf/0x1f0
    [   46.627362]  typec_register_port+0x23/0x491
    [   46.627698]  cros_typec_probe+0x634/0xbb6
    [   46.628026]  platform_probe+0x47/0x8c
    [   46.628311]  really_probe+0x20a/0x47d
    [   46.628605]  device_driver_attach+0x39/0x72
    [   46.628940]  bind_store+0x87/0xd7
    [   46.629213]  kernfs_fop_write_iter+0x1aa/0x218
    [   46.629574]  vfs_write+0x1d6/0x29b
    [   46.629856]  ksys_write+0xcd/0x13b
    [   46.630128]  do_syscall_64+0xd4/0x139
    [   46.630420]  entry_SYSCALL_64_after_hwframe+0x76/0x7e
    [   46.630820]
    [   46.630946] Freed by task 48:
    [   46.631182]  kasan_save_stack+0x24/0x44
    [   46.631493]  kasan_save_track+0x14/0x2d
    [   46.631799]  kasan_save_free_info+0x3f/0x4d
    [   46.632144]  __kasan_slab_free+0x37/0x45
    [   46.632474]  kfree+0x1d4/0x252
    [   46.632725]  device_release+0xaf/0xf2
    [   46.633017]  kobject_delayed_cleanup+0x13b/0x17a
    [   46.633388]  process_scheduled_works+0x4f6/0x85f
    [   46.633764]  worker_thread+0x1ce/0x291
    [   46.634065]  kthread+0x17e/0x190
    [   46.634324]  ret_from_fork+0x20/0x40
    [   46.634621]  ret_from_fork_asm+0x1a/0x30
    
    Fixes: 8a37d87d72f0 ("usb: typec: Bus type for alternate modes")
    Signed-off-by: Thadeu Lima de Souza Cascardo <cascardo@igalia.com>
    Reviewed-by: Heikki Krogerus <heikki.krogerus@linux.intel.com>
    Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
    Link: https://lore.kernel.org/r/20241004123738.2964524-1-cascardo@igalia.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
x86/resctrl: Avoid overflow in MB settings in bw_validate() [+ + +]
Author: Martin Kletzander <nert.pinx@gmail.com>
Date:   Tue Oct 1 13:43:56 2024 +0200

    x86/resctrl: Avoid overflow in MB settings in bw_validate()
    
    [ Upstream commit 2b5648416e47933939dc310c4ea1e29404f35630 ]
    
    The resctrl schemata file supports specifying memory bandwidth associated with
    the Memory Bandwidth Allocation (MBA) feature via a percentage (this is the
    default) or bandwidth in MiBps (when resctrl is mounted with the "mba_MBps"
    option).
    
    The allowed range for the bandwidth percentage is from
    /sys/fs/resctrl/info/MB/min_bandwidth to 100, using a granularity of
    /sys/fs/resctrl/info/MB/bandwidth_gran. The supported range for the MiBps
    bandwidth is 0 to U32_MAX.
    
    There are two issues with parsing of MiBps memory bandwidth:
    
    * The user provided MiBps is mistakenly rounded up to the granularity
      that is unique to percentage input.
    
    * The user provided MiBps is parsed using unsigned long (thus accepting
      values up to ULONG_MAX), and then assigned to u32 that could result in
      overflow.
    
    Do not round up the MiBps value and parse user provided bandwidth as the u32
    it is intended to be. Use the appropriate kstrtou32() that can detect out of
    range values.
    
    Fixes: 8205a078ba78 ("x86/intel_rdt/mba_sc: Add schemata support")
    Fixes: 6ce1560d35f6 ("x86/resctrl: Switch over to the resctrl mbps_val list")
    Co-developed-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
    Signed-off-by: Martin Kletzander <nert.pinx@gmail.com>
    Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
    Reviewed-by: Reinette Chatre <reinette.chatre@intel.com>
    Reviewed-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
xfrm: extract dst lookup parameters into a struct [+ + +]
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Mon Sep 2 17:07:09 2024 -0700

    xfrm: extract dst lookup parameters into a struct
    
    [ Upstream commit e509996b16728e37d5a909a5c63c1bd64f23b306 ]
    
    Preparation for adding more fields to dst lookup functions without
    changing their signatures.
    
    Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Stable-dep-of: b84697210343 ("xfrm: respect ip protocols rules criteria when performing dst lookups")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

xfrm: fix one more kernel-infoleak in algo dumping [+ + +]
Author: Petr Vaganov <p.vaganov@ideco.ru>
Date:   Tue Oct 8 14:02:58 2024 +0500

    xfrm: fix one more kernel-infoleak in algo dumping
    
    commit 6889cd2a93e1e3606b3f6e958aa0924e836de4d2 upstream.
    
    During fuzz testing, the following issue was discovered:
    
    BUG: KMSAN: kernel-infoleak in _copy_to_iter+0x598/0x2a30
     _copy_to_iter+0x598/0x2a30
     __skb_datagram_iter+0x168/0x1060
     skb_copy_datagram_iter+0x5b/0x220
     netlink_recvmsg+0x362/0x1700
     sock_recvmsg+0x2dc/0x390
     __sys_recvfrom+0x381/0x6d0
     __x64_sys_recvfrom+0x130/0x200
     x64_sys_call+0x32c8/0x3cc0
     do_syscall_64+0xd8/0x1c0
     entry_SYSCALL_64_after_hwframe+0x79/0x81
    
    Uninit was stored to memory at:
     copy_to_user_state_extra+0xcc1/0x1e00
     dump_one_state+0x28c/0x5f0
     xfrm_state_walk+0x548/0x11e0
     xfrm_dump_sa+0x1e0/0x840
     netlink_dump+0x943/0x1c40
     __netlink_dump_start+0x746/0xdb0
     xfrm_user_rcv_msg+0x429/0xc00
     netlink_rcv_skb+0x613/0x780
     xfrm_netlink_rcv+0x77/0xc0
     netlink_unicast+0xe90/0x1280
     netlink_sendmsg+0x126d/0x1490
     __sock_sendmsg+0x332/0x3d0
     ____sys_sendmsg+0x863/0xc30
     ___sys_sendmsg+0x285/0x3e0
     __x64_sys_sendmsg+0x2d6/0x560
     x64_sys_call+0x1316/0x3cc0
     do_syscall_64+0xd8/0x1c0
     entry_SYSCALL_64_after_hwframe+0x79/0x81
    
    Uninit was created at:
     __kmalloc+0x571/0xd30
     attach_auth+0x106/0x3e0
     xfrm_add_sa+0x2aa0/0x4230
     xfrm_user_rcv_msg+0x832/0xc00
     netlink_rcv_skb+0x613/0x780
     xfrm_netlink_rcv+0x77/0xc0
     netlink_unicast+0xe90/0x1280
     netlink_sendmsg+0x126d/0x1490
     __sock_sendmsg+0x332/0x3d0
     ____sys_sendmsg+0x863/0xc30
     ___sys_sendmsg+0x285/0x3e0
     __x64_sys_sendmsg+0x2d6/0x560
     x64_sys_call+0x1316/0x3cc0
     do_syscall_64+0xd8/0x1c0
     entry_SYSCALL_64_after_hwframe+0x79/0x81
    
    Bytes 328-379 of 732 are uninitialized
    Memory access of size 732 starts at ffff88800e18e000
    Data copied to user address 00007ff30f48aff0
    
    CPU: 2 PID: 18167 Comm: syz-executor.0 Not tainted 6.8.11 #1
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.15.0-1 04/01/2014
    
    Fixes copying of xfrm algorithms where some random
    data of the structure fields can end up in userspace.
    Padding in structures may be filled with random (possibly sensitve)
    data and should never be given directly to user-space.
    
    A similar issue was resolved in the commit
    8222d5910dae ("xfrm: Zero padding when dumping algos and encap")
    
    Found by Linux Verification Center (linuxtesting.org) with Syzkaller.
    
    Fixes: c7a5899eb26e ("xfrm: redact SA secret with lockdown confidentiality")
    Cc: stable@vger.kernel.org
    Co-developed-by: Boris Tonofa <b.tonofa@ideco.ru>
    Signed-off-by: Boris Tonofa <b.tonofa@ideco.ru>
    Signed-off-by: Petr Vaganov <p.vaganov@ideco.ru>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

xfrm: respect ip protocols rules criteria when performing dst lookups [+ + +]
Author: Eyal Birger <eyal.birger@gmail.com>
Date:   Mon Sep 2 17:07:10 2024 -0700

    xfrm: respect ip protocols rules criteria when performing dst lookups
    
    [ Upstream commit b8469721034300bbb6dec5b4bf32492c95e16a0c ]
    
    The series in the "fixes" tag added the ability to consider L4 attributes
    in routing rules.
    
    The dst lookup on the outer packet of encapsulated traffic in the xfrm
    code was not adapted to this change, thus routing behavior that relies
    on L4 information is not respected.
    
    Pass the ip protocol information when performing dst lookups.
    
    Fixes: a25724b05af0 ("Merge branch 'fib_rules-support-sport-dport-and-proto-match'")
    Signed-off-by: Eyal Birger <eyal.birger@gmail.com>
    Tested-by: Antony Antony <antony.antony@secunet.com>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

xfrm: validate new SA's prefixlen using SA family when sel.family is unset [+ + +]
Author: Sabrina Dubroca <sd@queasysnail.net>
Date:   Tue Oct 1 18:48:14 2024 +0200

    xfrm: validate new SA's prefixlen using SA family when sel.family is unset
    
    [ Upstream commit 3f0ab59e6537c6a8f9e1b355b48f9c05a76e8563 ]
    
    This expands the validation introduced in commit 07bf7908950a ("xfrm:
    Validate address prefix lengths in the xfrm selector.")
    
    syzbot created an SA with
        usersa.sel.family = AF_UNSPEC
        usersa.sel.prefixlen_s = 128
        usersa.family = AF_INET
    
    Because of the AF_UNSPEC selector, verify_newsa_info doesn't put
    limits on prefixlen_{s,d}. But then copy_from_user_state sets
    x->sel.family to usersa.family (AF_INET). Do the same conversion in
    verify_newsa_info before validating prefixlen_{s,d}, since that's how
    prefixlen is going to be used later on.
    
    Reported-by: syzbot+cc39f136925517aed571@syzkaller.appspotmail.com
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Sabrina Dubroca <sd@queasysnail.net>
    Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
    Signed-off-by: Antony Antony <antony.antony@secunet.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

 
XHCI: Separate PORT and CAPs macros into dedicated file [+ + +]
Author: Frank Li <Frank.Li@nxp.com>
Date:   Wed Jan 24 10:25:23 2024 -0500

    XHCI: Separate PORT and CAPs macros into dedicated file
    
    [ Upstream commit c35ba0ac48355df1d11fcce85945f76c42d250ac ]
    
    Split the PORT and CAPs macro definitions into a separate file to
    facilitate sharing with other files without the need to include the entire
    xhci.h.
    
    Signed-off-by: Frank Li <Frank.Li@nxp.com>
    Link: https://lore.kernel.org/r/20240124152525.3910311-2-Frank.Li@nxp.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 705e3ce37bcc ("usb: dwc3: core: Fix system suspend on TI AM62 platforms")
    Signed-off-by: Sasha Levin <sashal@kernel.org>