Changelog in Linux kernel 5.10.229

 
ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue [+ + +]
Author: Shubham Panwar <[email protected]>
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 <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    [ rjw: Changelog edits ]
    Cc: All applicable <[email protected]>
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ACPI: resource: Add LG 16T90SP to irq1_level_low_skip_override[] [+ + +]
Author: Christian Heusel <[email protected]>
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 <[email protected]>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=219382
    Cc: All applicable <[email protected]>
    Suggested-by: Dirk Holten <[email protected]>
    Signed-off-by: Christian Heusel <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Rafael J. Wysocki <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
ALSA: firewire-lib: Avoid division by zero in apply_constraint_to_size() [+ + +]
Author: Andrey Shumilin <[email protected]>
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 <[email protected]>
    Reviewed-by: Takashi Sakamoto <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ALSA: hda/realtek: Add subwoofer quirk for Acer Predator G9-593 [+ + +]
Author: José Relvas <[email protected]>
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 <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Cc: <[email protected]>
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

ALSA: hda/realtek: Update default depop procedure [+ + +]
Author: Kailang Yang <[email protected]>
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 <[email protected]>
    Link: https://lore.kernel.org/[email protected]
    Signed-off-by: Takashi Iwai <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
arm64/uprobes: change the uprobe_opcode_t typedef to fix the sparse warning [+ + +]
Author: junhua huang <[email protected]>
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 <[email protected]>
    Signed-off-by: junhua huang <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
arm64: Force position-independent veneers [+ + +]
Author: Mark Rutland <[email protected]>
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/[email protected]/
    
    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 <[email protected]>
    Reported-by: Marc Zyngier <[email protected]>
    Cc: Ard Biesheuvel <[email protected]>
    Cc: Nathan Chancellor <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: Will Deacon <[email protected]>
    Acked-by: Ard Biesheuvel <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Catalin Marinas <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

arm64: probes: Fix uprobes for big-endian kernels [+ + +]
Author: Mark Rutland <[email protected]>
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: [email protected]
    Signed-off-by: Mark Rutland <[email protected]>
    Cc: Catalin Marinas <[email protected]>
    Cc: Will Deacon <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
Linux: arm64:uprobe fix the uprobe SWBP_INSN in big-endian [+ + +]
Author: junhua huang <[email protected]>
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 <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Stable-dep-of: 13f8f1e05f1d ("arm64: probes: Fix uprobes for big-endian kernels")
    Signed-off-by: Sasha Levin <[email protected]>

 
ARM: dts: bcm2837-rpi-cm3-io3: Fix HDMI hpd-gpio pin [+ + +]
Author: Florian Klink <[email protected]>
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 <[email protected]>
    Reviewed-by: Stefan Wahren <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Stefan Wahren <[email protected]>
    Fixes: a54fe8a6cf66 ("ARM: dts: add Raspberry Pi Compute Module 3 and IO board")
    Signed-off-by: Florian Fainelli <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
ASoC: cs42l51: Fix some error handling paths in cs42l51_probe() [+ + +]
Author: Christophe JAILLET <[email protected]>
Date:   Sat Oct 26 22:46:34 2024 +0200

    ASoC: cs42l51: Fix some error handling paths in cs42l51_probe()
    
    [ Upstream commit d221b844ee79823ffc29b7badc4010bdb0960224 ]
    
    If devm_gpiod_get_optional() fails, we need to disable previously enabled
    regulators, as done in the other error handling path of the function.
    
    Also, gpiod_set_value_cansleep(, 1) needs to be called to undo a
    potential gpiod_set_value_cansleep(, 0).
    If the "reset" gpio is not defined, this additional call is just a no-op.
    
    This behavior is the same as the one already in the .remove() function.
    
    Fixes: 11b9cd748e31 ("ASoC: cs42l51: add reset management")
    Signed-off-by: Christophe JAILLET <[email protected]>
    Reviewed-by: Charles Keepax <[email protected]>
    Link: https://patch.msgid.link/a5e5f4b9fb03f46abd2c93ed94b5c395972ce0d1.1729975570.git.christophe.jaillet@wanadoo.fr
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ASoC: fsl_sai: Enable 'FIFO continue on error' FCONT bit [+ + +]
Author: Shengjiu Wang <[email protected]>
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 <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ASoC: qcom: Fix NULL Dereference in asoc_qcom_lpass_cpu_platform_probe() [+ + +]
Author: Zichen Xie <[email protected]>
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: [email protected]
    Signed-off-by: Zichen Xie <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Mark Brown <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
be2net: fix potential memory leak in be_xmit() [+ + +]
Author: Wang Hai <[email protected]>
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 <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Reviewed-by: Kalesh AP <[email protected]>
    Message-ID: <[email protected]>
    Signed-off-by: Andrew Lunn <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
block, bfq: fix procress reference leakage for bfqq in merge chain [+ + +]
Author: Yu Kuai <[email protected]>
Date:   Wed Oct 23 11:43:14 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 <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Jens Axboe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
Bluetooth: bnep: fix wild-memory-access in proto_unregister [+ + +]
Author: Ye Bin <[email protected]>
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 <[email protected]>
    Signed-off-by: Luiz Augusto von Dentz <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
bpf: Fix out-of-bounds write in trie_get_next_key() [+ + +]
Author: Byeonguk Jeong <[email protected]>
Date:   Sat Oct 26 14:02:43 2024 +0900

    bpf: Fix out-of-bounds write in trie_get_next_key()
    
    [ Upstream commit 13400ac8fb80c57c2bfb12ebd35ee121ce9b4d21 ]
    
    trie_get_next_key() allocates a node stack with size trie->max_prefixlen,
    while it writes (trie->max_prefixlen + 1) nodes to the stack when it has
    full paths from the root to leaves. For example, consider a trie with
    max_prefixlen is 8, and the nodes with key 0x00/0, 0x00/1, 0x00/2, ...
    0x00/8 inserted. Subsequent calls to trie_get_next_key with _key with
    .prefixlen = 8 make 9 nodes be written on the node stack with size 8.
    
    Fixes: b471f2f1de8b ("bpf: implement MAP_GET_NEXT_KEY command for LPM_TRIE map")
    Signed-off-by: Byeonguk Jeong <[email protected]>
    Reviewed-by: Toke Høiland-Jørgensen <[email protected]>
    Tested-by: Hou Tao <[email protected]>
    Acked-by: Hou Tao <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Alexei Starovoitov <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
cgroup: Fix potential overflow issue when checking max_depth [+ + +]
Author: Xiu Jianfeng <[email protected]>
Date:   Sat Oct 12 07:22:46 2024 +0000

    cgroup: Fix potential overflow issue when checking max_depth
    
    [ Upstream commit 3cc4e13bb1617f6a13e5e6882465984148743cf4 ]
    
    cgroup.max.depth is the maximum allowed descent depth below the current
    cgroup. If the actual descent depth is equal or larger, an attempt to
    create a new child cgroup will fail. However due to the cgroup->max_depth
    is of int type and having the default value INT_MAX, the condition
    'level > cgroup->max_depth' will never be satisfied, and it will cause
    an overflow of the level after it reaches to INT_MAX.
    
    Fix it by starting the level from 0 and using '>=' instead.
    
    It's worth mentioning that this issue is unlikely to occur in reality,
    as it's impossible to have a depth of INT_MAX hierarchy, but should be
    be avoided logically.
    
    Fixes: 1a926e0bbab8 ("cgroup: implement hierarchy limits")
    Signed-off-by: Xiu Jianfeng <[email protected]>
    Reviewed-by: Michal Koutný <[email protected]>
    Signed-off-by: Tejun Heo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
compiler-gcc: be consistent with underscores use for `no_sanitize` [+ + +]
Author: Miguel Ojeda <[email protected]>
Date:   Fri Oct 21 13:59:52 2022 +0200

    compiler-gcc: be consistent with underscores use for `no_sanitize`
    
    [ Upstream commit 6e2be1f2ebcea42ed6044432f72f32434e60b34d ]
    
    Patch series "compiler-gcc: be consistent with underscores use for
    `no_sanitize`".
    
    This patch (of 5):
    
    Other macros that define shorthands for attributes in e.g.
    `compiler_attributes.h` and elsewhere use underscores.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Miguel Ojeda <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    Cc: Marco Elver <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Andrey Konovalov <[email protected]>
    Cc: Arnd Bergmann <[email protected]>
    Cc: Dan Li <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Kumar Kartikeya Dwivedi <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: Uros Bizjak <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 894b00a3350c ("kasan: Fix Software Tag-Based KASAN with GCC")
    Signed-off-by: Sasha Levin <[email protected]>

compiler-gcc: remove attribute support check for `__no_sanitize_address__` [+ + +]
Author: Miguel Ojeda <[email protected]>
Date:   Fri Oct 21 13:59:53 2022 +0200

    compiler-gcc: remove attribute support check for `__no_sanitize_address__`
    
    [ Upstream commit ae37a9a2c2d0960d643d782b426ea1aa9c05727a ]
    
    The attribute was added in GCC 4.8, while the minimum GCC version
    supported by the kernel is GCC 5.1.
    
    Therefore, remove the check.
    
    Link: https://godbolt.org/z/84v56vcn8
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Miguel Ojeda <[email protected]>
    Reviewed-by: Nathan Chancellor <[email protected]>
    Cc: Alexander Potapenko <[email protected]>
    Cc: Andrey Konovalov <[email protected]>
    Cc: Arnd Bergmann <[email protected]>
    Cc: Dan Li <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Kumar Kartikeya Dwivedi <[email protected]>
    Cc: Marco Elver <[email protected]>
    Cc: Nick Desaulniers <[email protected]>
    Cc: Uros Bizjak <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Stable-dep-of: 894b00a3350c ("kasan: Fix Software Tag-Based KASAN with GCC")
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/amd: Guard against bad data for ATIF ACPI method [+ + +]
Author: Mario Limonciello <[email protected]>
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 <[email protected]>
    Signed-off-by: Mario Limonciello <[email protected]>
    Signed-off-by: Alex Deucher <[email protected]>
    (cherry picked from commit c9b7c809b89f24e9372a4e7f02d64c950b07fdee)
    Cc: [email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/msm/dsi: fix 32-bit signed integer extension in pclk_rate calculation [+ + +]
Author: Jonathan Marek <[email protected]>
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 <[email protected]>
    Reviewed-by: Dmitry Baryshkov <[email protected]>
    Reviewed-by: Abhinav Kumar <[email protected]>
    Patchwork: https://patchwork.freedesktop.org/patch/618434/
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Abhinav Kumar <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE) [+ + +]
Author: Wachowski, Karol <[email protected]>
Date:   Mon May 20 12:05:14 2024 +0200

    drm/shmem-helper: Fix BUG_ON() on mmap(PROT_WRITE, MAP_PRIVATE)
    
    commit 39bc27bd688066a63e56f7f64ad34fae03fbe3b8 upstream.
    
    Lack of check for copy-on-write (COW) mapping in drm_gem_shmem_mmap
    allows users to call mmap with PROT_WRITE and MAP_PRIVATE flag
    causing a kernel panic due to BUG_ON in vmf_insert_pfn_prot:
    BUG_ON((vma->vm_flags & VM_PFNMAP) && is_cow_mapping(vma->vm_flags));
    
    Return -EINVAL early if COW mapping is detected.
    
    This bug affects all drm drivers using default shmem helpers.
    It can be reproduced by this simple example:
    void *ptr = mmap(0, size, PROT_WRITE, MAP_PRIVATE, fd, mmap_offset);
    ptr[0] = 0;
    
    Fixes: 2194a63a818d ("drm: Add library for shmem backed GEM objects")
    Cc: Noralf Trønnes <[email protected]>
    Cc: Eric Anholt <[email protected]>
    Cc: Rob Herring <[email protected]>
    Cc: Maarten Lankhorst <[email protected]>
    Cc: Maxime Ripard <[email protected]>
    Cc: Thomas Zimmermann <[email protected]>
    Cc: David Airlie <[email protected]>
    Cc: Daniel Vetter <[email protected]>
    Cc: [email protected]
    Cc: <[email protected]> # v5.2+
    Signed-off-by: Wachowski, Karol <[email protected]>
    Signed-off-by: Jacek Lawrynowicz <[email protected]>
    Signed-off-by: Daniel Vetter <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    [ Artem: bp to fix CVE-2024-39497, in order to adapt this patch to branch 5.10
      add header file mm/internal.h]
    Signed-off-by: Artem Sdvizhkov <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
drm/vboxvideo: Replace fake VLA at end of vbva_mouse_pointer_shape with real VLA [+ + +]
Author: Hans de Goede <[email protected]>
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 <[email protected]>
    Reviewed-by: Jani Nikula <[email protected]>
    Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
    Signed-off-by: Sasha Levin <[email protected]>

 
exec: don't WARN for racy path_noexec check [+ + +]
Author: Mateusz Guzik <[email protected]>
Date:   Tue Oct 22 15:45:51 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 <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    [brauner: keep redundant path_noexec() check]
    Signed-off-by: Christian Brauner <[email protected]>
    [cascardo: keep exit label and use it]
    Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
firmware: arm_sdei: Fix the input parameter of cpuhp_remove_state() [+ + +]
Author: Xiongfeng Wang <[email protected]>
Date:   Wed Oct 16 16:47:40 2024 +0800

    firmware: arm_sdei: Fix the input parameter of cpuhp_remove_state()
    
    [ Upstream commit c83212d79be2c9886d3e6039759ecd388fd5fed1 ]
    
    In sdei_device_freeze(), the input parameter of cpuhp_remove_state() is
    passed as 'sdei_entry_point' by mistake. Change it to 'sdei_hp_state'.
    
    Fixes: d2c48b2387eb ("firmware: arm_sdei: Fix sleep from invalid context BUG")
    Signed-off-by: Xiongfeng Wang <[email protected]>
    Reviewed-by: James Morse <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
genetlink: hold RCU in genlmsg_mcast() [+ + +]
Author: Eric Dumazet <[email protected]>
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 <[email protected]>
    Cc: James Chapman <[email protected]>
    Cc: Tom Parkin <[email protected]>
    Cc: Johannes Berg <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
gtp: allow -1 to be specified as file description from userspace [+ + +]
Author: Pablo Neira Ayuso <[email protected]>
Date:   Tue Oct 22 16:48:25 2024 +0200

    gtp: allow -1 to be specified as file description from userspace
    
    [ Upstream commit 7515e37bce5c428a56a9b04ea7e96b3f53f17150 ]
    
    Existing user space applications maintained by the Osmocom project are
    breaking since a recent fix that addresses incorrect error checking.
    
    Restore operation for user space programs that specify -1 as file
    descriptor to skip GTPv0 or GTPv1 only sockets.
    
    Fixes: defd8b3c37b0 ("gtp: fix a potential NULL pointer dereference")
    Reported-by: Pau Espin Pedrol <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Tested-by: Oliver Smith <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
hv_netvsc: Fix VF namespace also in synthetic NIC NETDEV_REGISTER event [+ + +]
Author: Haiyang Zhang <[email protected]>
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: [email protected]
    Fixes: c0a41b887ce6 ("hv_netvsc: move VF to same namespace as netvsc device")
    Suggested-by: Stephen Hemminger <[email protected]>
    Signed-off-by: Haiyang Zhang <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
iio: light: veml6030: fix microlux value calculation [+ + +]
Author: Javier Carrasco <[email protected]>
Date:   Wed Oct 16 19:04:31 2024 +0200

    iio: light: veml6030: fix microlux value calculation
    
    commit 63dd163cd61dda6f38343776b42331cc6b7e56e0 upstream.
    
    The raw value conversion to obtain a measurement in lux as
    INT_PLUS_MICRO does not calculate the decimal part properly to display
    it as micro (in this case microlux). It only calculates the module to
    obtain the decimal part from a resolution that is 10000 times the
    provided in the datasheet (0.5376 lux/cnt for the veml6030). The
    resulting value must still be multiplied by 100 to make it micro.
    
    This bug was introduced with the original implementation of the driver.
    
    Only the illuminance channel is fixed becuase the scale is non sensical
    for the intensity channels anyway.
    
    Cc: [email protected]
    Fixes: 7b779f573c48 ("iio: light: add driver for veml6030 ambient light sensor")
    Signed-off-by: Javier Carrasco <[email protected]>
    Link: https://patch.msgid.link/20241016-veml6030-fix-processed-micro-v1-1-4a5644796437@gmail.com
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
iomap: update ki_pos a little later in iomap_dio_complete [+ + +]
Author: Christoph Hellwig <[email protected]>
Date:   Tue Oct 22 18:33:46 2024 +0200

    iomap: update ki_pos a little later in iomap_dio_complete
    
    upstream 936e114a245b6e38e0dbf706a67e7611fc993da1 commit.
    
    Move the ki_pos update down a bit to prepare for a better common helper
    that invalidates pages based of an iocb.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Christoph Hellwig <[email protected]>
    Reviewed-by: Damien Le Moal <[email protected]>
    Reviewed-by: Hannes Reinecke <[email protected]>
    Reviewed-by: Darrick J. Wong <[email protected]>
    Cc: Al Viro <[email protected]>
    Cc: Andreas Gruenbacher <[email protected]>
    Cc: Anna Schumaker <[email protected]>
    Cc: Chao Yu <[email protected]>
    Cc: Christian Brauner <[email protected]>
    Cc: Ilya Dryomov <[email protected]>
    Cc: Jaegeuk Kim <[email protected]>
    Cc: Jens Axboe <[email protected]>
    Cc: Johannes Thumshirn <[email protected]>
    Cc: Matthew Wilcox <[email protected]>
    Cc: Miklos Szeredi <[email protected]>
    Cc: Miklos Szeredi <[email protected]>
    Cc: Theodore Ts'o <[email protected]>
    Cc: Trond Myklebust <[email protected]>
    Cc: Xiubo Li <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Mahmoud Adam <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
ipv4: give an IPv4 dev to blackhole_netdev [+ + +]
Author: Xin Long <[email protected]>
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 <[email protected]>
    Reviewed-by: Eric Dumazet <[email protected]>
    Link: https://patch.msgid.link/3000792d45ca44e16c785ebe2b092e610e5b3df1.1728499633.git.lucien.xin@gmail.com
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

ipv4: ip_tunnel: Fix suspicious RCU usage warning in ip_tunnel_init_flow() [+ + +]
Author: Ido Schimmel <[email protected]>
Date:   Tue Oct 22 09:38:22 2024 +0300

    ipv4: ip_tunnel: Fix suspicious RCU usage warning in ip_tunnel_init_flow()
    
    [ Upstream commit ad4a3ca6a8e886f6491910a3ae5d53595e40597d ]
    
    There are code paths from which the function is called without holding
    the RCU read lock, resulting in a suspicious RCU usage warning [1].
    
    Fix by using l3mdev_master_upper_ifindex_by_index() which will acquire
    the RCU read lock before calling
    l3mdev_master_upper_ifindex_by_index_rcu().
    
    [1]
    WARNING: suspicious RCU usage
    6.12.0-rc3-custom-gac8f72681cf2 #141 Not tainted
    -----------------------------
    net/core/dev.c:876 RCU-list traversed in non-reader section!!
    
    other info that might help us debug this:
    
    rcu_scheduler_active = 2, debug_locks = 1
    1 lock held by ip/361:
     #0: ffffffff86fc7cb0 (rtnl_mutex){+.+.}-{3:3}, at: rtnetlink_rcv_msg+0x377/0xf60
    
    stack backtrace:
    CPU: 3 UID: 0 PID: 361 Comm: ip Not tainted 6.12.0-rc3-custom-gac8f72681cf2 #141
    Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
    Call Trace:
     <TASK>
     dump_stack_lvl+0xba/0x110
     lockdep_rcu_suspicious.cold+0x4f/0xd6
     dev_get_by_index_rcu+0x1d3/0x210
     l3mdev_master_upper_ifindex_by_index_rcu+0x2b/0xf0
     ip_tunnel_bind_dev+0x72f/0xa00
     ip_tunnel_newlink+0x368/0x7a0
     ipgre_newlink+0x14c/0x170
     __rtnl_newlink+0x1173/0x19c0
     rtnl_newlink+0x6c/0xa0
     rtnetlink_rcv_msg+0x3cc/0xf60
     netlink_rcv_skb+0x171/0x450
     netlink_unicast+0x539/0x7f0
     netlink_sendmsg+0x8c1/0xd80
     ____sys_sendmsg+0x8f9/0xc20
     ___sys_sendmsg+0x197/0x1e0
     __sys_sendmsg+0x122/0x1f0
     do_syscall_64+0xbb/0x1d0
     entry_SYSCALL_64_after_hwframe+0x77/0x7f
    
    Fixes: db53cd3d88dc ("net: Handle l3mdev in ip_tunnel_init_flow")
    Signed-off-by: Ido Schimmel <[email protected]>
    Reviewed-by: David Ahern <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
jfs: Fix sanity check in dbMount [+ + +]
Author: Dave Kleikamp <[email protected]>
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 <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
kasan: Fix Software Tag-Based KASAN with GCC [+ + +]
Author: Marco Elver <[email protected]>
Date:   Mon Oct 21 14:00:10 2024 +0200

    kasan: Fix Software Tag-Based KASAN with GCC
    
    [ Upstream commit 894b00a3350c560990638bdf89bdf1f3d5491950 ]
    
    Per [1], -fsanitize=kernel-hwaddress with GCC currently does not disable
    instrumentation in functions with __attribute__((no_sanitize_address)).
    
    However, __attribute__((no_sanitize("hwaddress"))) does correctly
    disable instrumentation. Use it instead.
    
    Link: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=117196 [1]
    Link: https://lore.kernel.org/r/[email protected]
    Link: https://lore.kernel.org/r/ZvFGwKfoC4yVjN_X@J2N7QTR9R3
    Link: https://bugzilla.kernel.org/show_bug.cgi?id=218854
    Reported-by: [email protected]
    Tested-by: Andrey Konovalov <[email protected]>
    Cc: Andrew Pinski <[email protected]>
    Cc: Mark Rutland <[email protected]>
    Cc: Will Deacon <[email protected]>
    Signed-off-by: Marco Elver <[email protected]>
    Reviewed-by: Andrey Konovalov <[email protected]>
    Fixes: 7b861a53e46b ("kasan: Bump required compiler version")
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Will Deacon <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
KVM: nSVM: Ignore nCR3[4:0] when loading PDPTEs from memory [+ + +]
Author: Sean Christopherson <[email protected]>
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 <[email protected]>
    Cc: Andy Nguyen <[email protected]>
    Cc: 3pvd <[email protected]>
    Cc: [email protected]
    Signed-off-by: Sean Christopherson <[email protected]>
    Message-ID: <[email protected]>
    Signed-off-by: Paolo Bonzini <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

KVM: s390: gaccess: Check if guest address is in memslot [+ + +]
Author: Nico Boehr <[email protected]>
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: [email protected]
    Signed-off-by: Nico Boehr <[email protected]>
    Reviewed-by: Heiko Carstens <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Acked-by: Janosch Frank <[email protected]>
    Signed-off-by: Heiko Carstens <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

KVM: s390: gaccess: Cleanup access to guest pages [+ + +]
Author: Janis Schoetterl-Glausch <[email protected]>
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 <[email protected]>
    Reviewed-by: Janosch Frank <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Reviewed-by: Claudio Imbrenda <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Janosch Frank <[email protected]>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <[email protected]>

KVM: s390: gaccess: Refactor access address range check [+ + +]
Author: Janis Schoetterl-Glausch <[email protected]>
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 <[email protected]>
    Reviewed-by: Janosch Frank <[email protected]>
    Reviewed-by: Claudio Imbrenda <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Janosch Frank <[email protected]>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <[email protected]>

KVM: s390: gaccess: Refactor gpa and length calculation [+ + +]
Author: Janis Schoetterl-Glausch <[email protected]>
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 <[email protected]>
    Reviewed-by: Janosch Frank <[email protected]>
    Reviewed-by: David Hildenbrand <[email protected]>
    Reviewed-by: Claudio Imbrenda <[email protected]>
    Message-Id: <[email protected]>
    Signed-off-by: Janosch Frank <[email protected]>
    Stable-dep-of: e8061f06185b ("KVM: s390: gaccess: Check if guest address is in memslot")
    Signed-off-by: Sasha Levin <[email protected]>

 
Linux: Linux 5.10.229 [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Fri Nov 8 16:22:04 2024 +0100

    Linux 5.10.229
    
    Link: https://lore.kernel.org/r/[email protected]
    Tested-by: Pavel Machek (CIP) <[email protected]>
    Tested-by: Jon Hunter <[email protected]>
    Tested-by: Florian Fainelli <[email protected]>
    Tested-by: Linux Kernel Functional Testing <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
mac80211: Add support to trigger sta disconnect on hardware restart [+ + +]
Author: Youghandhar Chintala <[email protected]>
Date:   Tue Mar 8 17:23:24 2022 +0530

    mac80211: Add support to trigger sta disconnect on hardware restart
    
    [ Upstream commit 7d352ccf1e9935b5222ca84e8baeb07a0c8f94b9 ]
    
    Currently in case of target hardware restart, we just reconfig and
    re-enable the security keys and enable the network queues to start
    data traffic back from where it was interrupted.
    
    Many ath10k wifi chipsets have sequence numbers for the data
    packets assigned by firmware and the mac sequence number will
    restart from zero after target hardware restart leading to mismatch
    in the sequence number expected by the remote peer vs the sequence
    number of the frame sent by the target firmware.
    
    This mismatch in sequence number will cause out-of-order packets
    on the remote peer and all the frames sent by the device are dropped
    until we reach the sequence number which was sent before we restarted
    the target hardware
    
    In order to fix this, we trigger a sta disconnect, in case of target
    hw restart. After this there will be a fresh connection and thereby
    avoiding the dropping of frames by remote peer.
    
    The right fix would be to pull the entire data path into the host
    which is not feasible or would need lots of complex changes and
    will still be inefficient.
    
    Tested on ath10k using WCN3990, QCA6174
    
    Signed-off-by: Youghandhar Chintala <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    Stable-dep-of: 07a6e3b78a65 ("wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()")
    Signed-off-by: Sasha Levin <[email protected]>

mac80211: always have ieee80211_sta_restart() [+ + +]
Author: Johannes Berg <[email protected]>
Date:   Sat Mar 12 22:19:58 2022 +0100

    mac80211: always have ieee80211_sta_restart()
    
    commit 3fa5a0f5b0d69e31c6476cd81afeca3cc25a4927 upstream.
    
    When CONFIG_PM isn't defined we don't have the function
    ieee80211_sta_restart() compiled in, but we always need
    it now for firmware restart. Move it out of the ifdef.
    
    Fixes: 7d352ccf1e99 ("mac80211: Add support to trigger sta disconnect on hardware restart")
    Link: https://lore.kernel.org/r/20220312221957.1fa96c72db51.I8ecaa5f9402fede0272161e0531ab930b97fba3e@changeid
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mac80211: do drv_reconfig_complete() before restarting all [+ + +]
Author: Johannes Berg <[email protected]>
Date:   Mon Nov 29 15:32:40 2021 +0200

    mac80211: do drv_reconfig_complete() before restarting all
    
    [ Upstream commit 13dee10b30c058ee2c58c5da00339cc0d4201aa6 ]
    
    When we reconfigure, the driver might do some things to complete
    the reconfiguration. It's strange and could be broken in some
    cases because we restart other works (e.g. remain-on-channel and
    TX) before this happens, yet only start queues later.
    
    Change this to do the reconfig complete when reconfiguration is
    actually complete, not when we've already started doing other
    things again.
    
    For iwlwifi, this should fix a race where the reconfig can race
    with TX, for ath10k and ath11k that also use this it won't make
    a difference because they just start queues there, and mac80211
    also stopped the queues and will restart them later as before.
    
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Luca Coelho <[email protected]>
    Link: https://lore.kernel.org/r/iwlwifi.20211129152938.cab99f22fe19.Iefe494687f15fd85f77c1b989d1149c8efdfdc36@changeid
    Signed-off-by: Johannes Berg <[email protected]>
    Stable-dep-of: 07a6e3b78a65 ("wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()")
    Signed-off-by: Sasha Levin <[email protected]>

mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING [+ + +]
Author: Geert Uytterhoeven <[email protected]>
Date:   Tue Sep 24 14:08:57 2024 +0200

    mac80211: MAC80211_MESSAGE_TRACING should depend on TRACING
    
    [ Upstream commit b3e046c31441d182b954fc2f57b2dc38c71ad4bc ]
    
    When tracing is disabled, there is no point in asking the user about
    enabling tracing of all mac80211 debug messages.
    
    Fixes: 3fae0273168026ed ("mac80211: trace debug messages")
    Signed-off-by: Geert Uytterhoeven <[email protected]>
    Link: https://patch.msgid.link/85bbe38ce0df13350f45714e2dc288cc70947a19.1727179690.git.geert@linux-m68k.org
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
macsec: don't increment counters for an unrelated SA [+ + +]
Author: Sabrina Dubroca <[email protected]>
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 <[email protected]>
    Signed-off-by: Sabrina Dubroca <[email protected]>
    Link: https://patch.msgid.link/f5ac92aaa5b89343232615f4c03f9f95042c6aa0.1728657709.git.sd@queasysnail.net
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
misc: sgi-gru: Don't disable preemption in GRU driver [+ + +]
Author: Dimitri Sivanich <[email protected]>
Date:   Thu Sep 19 07:34:50 2024 -0500

    misc: sgi-gru: Don't disable preemption in GRU driver
    
    [ Upstream commit b983b271662bd6104d429b0fd97af3333ba760bf ]
    
    Disabling preemption in the GRU driver is unnecessary, and clashes with
    sleeping locks in several code paths.  Remove preempt_disable and
    preempt_enable from the GRU driver.
    
    Signed-off-by: Dimitri Sivanich <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
mm: add remap_pfn_range_notrack [+ + +]
Author: Christoph Hellwig <[email protected]>
Date:   Thu Apr 29 22:57:29 2021 -0700

    mm: add remap_pfn_range_notrack
    
    commit 74ffa5a3e68504dd289135b1cf0422c19ffb3f2e upstream.
    
    Patch series "add remap_pfn_range_notrack instead of reinventing it in i915", v2.
    
    i915 has some reason to want to avoid the track_pfn_remap overhead in
    remap_pfn_range.  Add a function to the core VM to do just that rather
    than reinventing the functionality poorly in the driver.
    
    Note that the remap_io_sg path does get exercises when using Xorg on my
    Thinkpad X1, so this should be considered lightly tested, I've not managed
    to hit the remap_io_mapping path at all.
    
    This patch (of 4):
    
    Add a version of remap_pfn_range that does not call track_pfn_range.  This
    will be used to fix horrible abuses of VM internals in the i915 driver.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Link: https://lkml.kernel.org/r/[email protected]
    Signed-off-by: Christoph Hellwig <[email protected]>
    Acked-by: Daniel Vetter <[email protected]>
    Cc: Jani Nikula <[email protected]>
    Cc: Joonas Lahtinen <[email protected]>
    Cc: Rodrigo Vivi <[email protected]>
    Cc: Chris Wilson <[email protected]>
    Cc: Peter Zijlstra <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Harshvardhan Jha <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mm: avoid leaving partial pfn mappings around in error case [+ + +]
Author: Linus Torvalds <[email protected]>
Date:   Wed Sep 11 17:11:23 2024 -0700

    mm: avoid leaving partial pfn mappings around in error case
    
    commit 79a61cc3fc0466ad2b7b89618a6157785f0293b3 upstream.
    
    As Jann points out, PFN mappings are special, because unlike normal
    memory mappings, there is no lifetime information associated with the
    mapping - it is just a raw mapping of PFNs with no reference counting of
    a 'struct page'.
    
    That's all very much intentional, but it does mean that it's easy to
    mess up the cleanup in case of errors.  Yes, a failed mmap() will always
    eventually clean up any partial mappings, but without any explicit
    lifetime in the page table mapping itself, it's very easy to do the
    error handling in the wrong order.
    
    In particular, it's easy to mistakenly free the physical backing store
    before the page tables are actually cleaned up and (temporarily) have
    stale dangling PTE entries.
    
    To make this situation less error-prone, just make sure that any partial
    pfn mapping is torn down early, before any other error handling.
    
    Reported-and-tested-by: Jann Horn <[email protected]>
    Cc: Andrew Morton <[email protected]>
    Cc: Jason Gunthorpe <[email protected]>
    Cc: Simona Vetter <[email protected]>
    Signed-off-by: Linus Torvalds <[email protected]>
    Signed-off-by: Harshvardhan Jha <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

mm: shmem: fix data-race in shmem_getattr() [+ + +]
Author: Jeongjun Park <[email protected]>
Date:   Mon Sep 9 21:35:58 2024 +0900

    mm: shmem: fix data-race in shmem_getattr()
    
    commit d949d1d14fa281ace388b1de978e8f2cd52875cf upstream.
    
    I got the following KCSAN report during syzbot testing:
    
    ==================================================================
    BUG: KCSAN: data-race in generic_fillattr / inode_set_ctime_current
    
    write to 0xffff888102eb3260 of 4 bytes by task 6565 on cpu 1:
     inode_set_ctime_to_ts include/linux/fs.h:1638 [inline]
     inode_set_ctime_current+0x169/0x1d0 fs/inode.c:2626
     shmem_mknod+0x117/0x180 mm/shmem.c:3443
     shmem_create+0x34/0x40 mm/shmem.c:3497
     lookup_open fs/namei.c:3578 [inline]
     open_last_lookups fs/namei.c:3647 [inline]
     path_openat+0xdbc/0x1f00 fs/namei.c:3883
     do_filp_open+0xf7/0x200 fs/namei.c:3913
     do_sys_openat2+0xab/0x120 fs/open.c:1416
     do_sys_open fs/open.c:1431 [inline]
     __do_sys_openat fs/open.c:1447 [inline]
     __se_sys_openat fs/open.c:1442 [inline]
     __x64_sys_openat+0xf3/0x120 fs/open.c:1442
     x64_sys_call+0x1025/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:258
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0x54/0x120 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    read to 0xffff888102eb3260 of 4 bytes by task 3498 on cpu 0:
     inode_get_ctime_nsec include/linux/fs.h:1623 [inline]
     inode_get_ctime include/linux/fs.h:1629 [inline]
     generic_fillattr+0x1dd/0x2f0 fs/stat.c:62
     shmem_getattr+0x17b/0x200 mm/shmem.c:1157
     vfs_getattr_nosec fs/stat.c:166 [inline]
     vfs_getattr+0x19b/0x1e0 fs/stat.c:207
     vfs_statx_path fs/stat.c:251 [inline]
     vfs_statx+0x134/0x2f0 fs/stat.c:315
     vfs_fstatat+0xec/0x110 fs/stat.c:341
     __do_sys_newfstatat fs/stat.c:505 [inline]
     __se_sys_newfstatat+0x58/0x260 fs/stat.c:499
     __x64_sys_newfstatat+0x55/0x70 fs/stat.c:499
     x64_sys_call+0x141f/0x2d60 arch/x86/include/generated/asm/syscalls_64.h:263
     do_syscall_x64 arch/x86/entry/common.c:52 [inline]
     do_syscall_64+0x54/0x120 arch/x86/entry/common.c:83
     entry_SYSCALL_64_after_hwframe+0x76/0x7e
    
    value changed: 0x2755ae53 -> 0x27ee44d3
    
    Reported by Kernel Concurrency Sanitizer on:
    CPU: 0 UID: 0 PID: 3498 Comm: udevd Not tainted 6.11.0-rc6-syzkaller-00326-gd1f2d51b711a-dirty #0
    Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/06/2024
    ==================================================================
    
    When calling generic_fillattr(), if you don't hold read lock, data-race
    will occur in inode member variables, which can cause unexpected
    behavior.
    
    Since there is no special protection when shmem_getattr() calls
    generic_fillattr(), data-race occurs by functions such as shmem_unlink()
    or shmem_mknod(). This can cause unexpected results, so commenting it out
    is not enough.
    
    Therefore, when calling generic_fillattr() from shmem_getattr(), it is
    appropriate to protect the inode using inode_lock_shared() and
    inode_unlock_shared() to prevent data-race.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 44a30220bc0a ("shmem: recalculate file inode when fstat")
    Signed-off-by: Jeongjun Park <[email protected]>
    Reported-by: syzbot <[email protected]>
    Cc: Hugh Dickins <[email protected]>
    Cc: Yu Zhao <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT [+ + +]
Author: Pedro Tammela <[email protected]>
Date:   Thu Oct 24 12:55:47 2024 -0400

    net/sched: stop qdisc_tree_reduce_backlog on TC_H_ROOT
    
    [ Upstream commit 2e95c4384438adeaa772caa560244b1a2efef816 ]
    
    In qdisc_tree_reduce_backlog, Qdiscs with major handle ffff: are assumed
    to be either root or ingress. This assumption is bogus since it's valid
    to create egress qdiscs with major handle ffff:
    Budimir Markovic found that for qdiscs like DRR that maintain an active
    class list, it will cause a UAF with a dangling class pointer.
    
    In 066a3b5b2346, the concern was to avoid iterating over the ingress
    qdisc since its parent is itself. The proper fix is to stop when parent
    TC_H_ROOT is reached because the only way to retrieve ingress is when a
    hierarchy which does not contain a ffff: major handle call into
    qdisc_lookup with TC_H_MAJ(TC_H_ROOT).
    
    In the scenario where major ffff: is an egress qdisc in any of the tree
    levels, the updates will also propagate to TC_H_ROOT, which then the
    iteration must stop.
    
    Fixes: 066a3b5b2346 ("[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop")
    Reported-by: Budimir Markovic <[email protected]>
    Suggested-by: Jamal Hadi Salim <[email protected]>
    Tested-by: Victor Nogueira <[email protected]>
    Signed-off-by: Pedro Tammela <[email protected]>
    Signed-off-by: Jamal Hadi Salim <[email protected]>
    
     net/sched/sch_api.c | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    Reviewed-by: Simon Horman <[email protected]>
    
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net/smc: Fix searching in list of known pnetids in smc_pnet_add_pnetid [+ + +]
Author: Li RongQing <[email protected]>
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 <[email protected]>
    Reviewed-by: Wen Gu <[email protected]>
    Signed-off-by: Li RongQing <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Reviewed-by: Gerd Bayer <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net/sun3_82586: fix potential memory leak in sun3_82586_send_packet() [+ + +]
Author: Wang Hai <[email protected]>
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 <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Message-ID: <[email protected]>
    Signed-off-by: Andrew Lunn <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
net: amd: mvme147: Fix probe banner message [+ + +]
Author: Daniel Palmer <[email protected]>
Date:   Mon Oct 7 19:43:17 2024 +0900

    net: amd: mvme147: Fix probe banner message
    
    [ Upstream commit 82c5b53140faf89c31ea2b3a0985a2f291694169 ]
    
    Currently this driver prints this line with what looks like
    a rogue format specifier when the device is probed:
    [    2.840000] eth%d: MVME147 at 0xfffe1800, irq 12, Hardware Address xx:xx:xx:xx:xx:xx
    
    Change the printk() for netdev_info() and move it after the
    registration has completed so it prints out the name of the
    interface properly.
    
    Signed-off-by: Daniel Palmer <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Signed-off-by: David S. Miller <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: ethernet: aeroflex: fix potential memory leak in greth_start_xmit_gbit() [+ + +]
Author: Wang Hai <[email protected]>
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 <[email protected]>
    Reviewed-by: Gerhard Engleder <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: phy: dp83822: Fix reset pin definitions [+ + +]
Author: Michel Alex <[email protected]>
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: [email protected]
    Fixes: 5dc39fd5ef35 ("net: phy: DP83822: Add ability to advertise Fiber connection")
    Signed-off-by: Alex Michel <[email protected]>
    Reviewed-by: Andrew Lunn <[email protected]>
    Message-ID: <AS1P250MB0608A798661549BF83C4B43EA9462@AS1P250MB0608.EURP250.PROD.OUTLOOK.COM>
    Signed-off-by: Andrew Lunn <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

net: sched: fix use-after-free in taprio_change() [+ + +]
Author: Dmitry Antipov <[email protected]>
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: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=b65e0af58423fc8a73aa
    Acked-by: Vinicius Costa Gomes <[email protected]>
    Signed-off-by: Dmitry Antipov <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension [+ + +]
Author: Benoît Monin <[email protected]>
Date:   Thu Oct 24 16:01:54 2024 +0200

    net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension
    
    [ Upstream commit 04c20a9356f283da623903e81e7c6d5df7e4dc3c ]
    
    As documented in skbuff.h, devices with NETIF_F_IPV6_CSUM capability
    can only checksum TCP and UDP over IPv6 if the IP header does not
    contains extension.
    
    This is enforced for UDP packets emitted from user-space to an IPv6
    address as they go through ip6_make_skb(), which calls
    __ip6_append_data() where a check is done on the header size before
    setting CHECKSUM_PARTIAL.
    
    But the introduction of UDP encapsulation with fou6 added a code-path
    where it is possible to get an skb with a partial UDP checksum and an
    IPv6 header with extension:
    * fou6 adds a UDP header with a partial checksum if the inner packet
    does not contains a valid checksum.
    * ip6_tunnel adds an IPv6 header with a destination option extension
    header if encap_limit is non-zero (the default value is 4).
    
    The thread linked below describes in more details how to reproduce the
    problem with GRE-in-UDP tunnel.
    
    Add a check on the network header size in skb_csum_hwoffload_help() to
    make sure no IPv6 packet with extension header is handed to a network
    device with NETIF_F_IPV6_CSUM capability.
    
    Link: https://lore.kernel.org/netdev/[email protected]/T/#u
    Fixes: aa3463d65e7b ("fou: Add encap ops for IPv6 tunnels")
    Signed-off-by: Benoît Monin <[email protected]>
    Reviewed-by: Willem de Bruijn <[email protected]>
    Link: https://patch.msgid.link/5fbeecfc311ea182aa1d1c771725ab8b4cac515e.1729778144.git.benoit.monin@gmx.fr
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: support ip generic csum processing in skb_csum_hwoffload_help [+ + +]
Author: Xin Long <[email protected]>
Date:   Thu Jan 28 17:18:31 2021 +0800

    net: support ip generic csum processing in skb_csum_hwoffload_help
    
    [ Upstream commit 62fafcd63139920eb25b3fbf154177ce3e6f3232 ]
    
    NETIF_F_IP|IPV6_CSUM feature flag indicates UDP and TCP csum offload
    while NETIF_F_HW_CSUM feature flag indicates ip generic csum offload
    for HW, which includes not only for TCP/UDP csum, but also for other
    protocols' csum like GRE's.
    
    However, in skb_csum_hwoffload_help() it only checks features against
    NETIF_F_CSUM_MASK(NETIF_F_HW|IP|IPV6_CSUM). So if it's a non TCP/UDP
    packet and the features doesn't support NETIF_F_HW_CSUM, but supports
    NETIF_F_IP|IPV6_CSUM only, it would still return 0 and leave the HW
    to do csum.
    
    This patch is to support ip generic csum processing by checking
    NETIF_F_HW_CSUM for all protocols, and check (NETIF_F_IP_CSUM |
    NETIF_F_IPV6_CSUM) only for TCP and UDP.
    
    Note that we're using skb->csum_offset to check if it's a TCP/UDP
    proctol, this might be fragile. However, as Alex said, for now we
    only have a few L4 protocols that are requesting Tx csum offload,
    we'd better fix this until a new protocol comes with a same csum
    offset.
    
    v1->v2:
      - not extend skb->csum_not_inet, but use skb->csum_offset to tell
        if it's an UDP/TCP csum packet.
    v2->v3:
      - add a note in the changelog, as Willem suggested.
    
    Suggested-by: Alexander Duyck <[email protected]>
    Signed-off-by: Xin Long <[email protected]>
    Signed-off-by: Jakub Kicinski <[email protected]>
    Stable-dep-of: 04c20a9356f2 ("net: skip offload for NETIF_F_IPV6_CSUM if ipv6 header contains extension")
    Signed-off-by: Sasha Levin <[email protected]>

net: systemport: fix potential memory leak in bcm_sysport_xmit() [+ + +]
Author: Wang Hai <[email protected]>
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 <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jakub Kicinski <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

net: usb: usbnet: fix name regression [+ + +]
Author: Oliver Neukum <[email protected]>
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 <[email protected]>
    Reported-by: Greg Thelen <[email protected]>
    Diagnosed-by: John Sperbeck <[email protected]>
    Fixes: bab8eb0dd4cb9 ("usbnet: modern method to get random MAC")
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
netfilter: nft_payload: sanitize offset and length before calling skb_checksum() [+ + +]
Author: Pablo Neira Ayuso <[email protected]>
Date:   Wed Oct 30 23:13:48 2024 +0100

    netfilter: nft_payload: sanitize offset and length before calling skb_checksum()
    
    [ Upstream commit d5953d680f7e96208c29ce4139a0e38de87a57fe ]
    
    If access to offset + length is larger than the skbuff length, then
    skb_checksum() triggers BUG_ON().
    
    skb_checksum() internally subtracts the length parameter while iterating
    over skbuff, BUG_ON(len) at the end of it checks that the expected
    length to be included in the checksum calculation is fully consumed.
    
    Fixes: 7ec3f7b47b8d ("netfilter: nft_payload: add packet mangling support")
    Reported-by: Slavin Liu <[email protected]>
    Signed-off-by: Pablo Neira Ayuso <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
NFS: remove revoked delegation from server's delegation list [+ + +]
Author: Dai Ngo <[email protected]>
Date:   Tue Oct 8 15:58:07 2024 -0700

    NFS: remove revoked delegation from server's delegation list
    
    [ Upstream commit 7ef60108069b7e3cc66432304e1dd197d5c0a9b5 ]
    
    After the delegation is returned to the NFS server remove it
    from the server's delegations list to reduce the time it takes
    to scan this list.
    
    Network trace captured while running the below script shows the
    time taken to service the CB_RECALL increases gradually due to
    the overhead of traversing the delegation list in
    nfs_delegation_find_inode_server.
    
    The NFS server in this test is a Solaris server which issues
    CB_RECALL when receiving the all-zero stateid in the SETATTR.
    
    mount=/mnt/data
    for i in $(seq 1 20)
    do
       echo $i
       mkdir $mount/testtarfile$i
       time  tar -C $mount/testtarfile$i -xf 5000_files.tar
    done
    
    Signed-off-by: Dai Ngo <[email protected]>
    Reviewed-by: Trond Myklebust <[email protected]>
    Signed-off-by: Anna Schumaker <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
nilfs2: fix kernel bug due to missing clearing of buffer delay flag [+ + +]
Author: Ryusuke Konishi <[email protected]>
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 <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    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: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=985ada84bf055a575c07
    Cc: [email protected]
    Signed-off-by: Christian Brauner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

nilfs2: fix kernel bug due to missing clearing of checked flag [+ + +]
Author: Ryusuke Konishi <[email protected]>
Date:   Fri Oct 18 04:33:10 2024 +0900

    nilfs2: fix kernel bug due to missing clearing of checked flag
    
    commit 41e192ad2779cae0102879612dfe46726e4396aa upstream.
    
    Syzbot reported that in directory operations after nilfs2 detects
    filesystem corruption and degrades to read-only,
    __block_write_begin_int(), which is called to prepare block writes, may
    fail the BUG_ON check for accesses exceeding the folio/page size,
    triggering a kernel bug.
    
    This was found to be because the "checked" flag of a page/folio was not
    cleared when it was discarded by nilfs2's own routine, which causes the
    sanity check of directory entries to be skipped when the directory
    page/folio is reloaded.  So, fix that.
    
    This was necessary when the use of nilfs2's own page discard routine was
    applied to more than just metadata files.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 8c26c4e2694a ("nilfs2: fix issue with flush kernel thread after remount in RO mode because of driver's internal error or metadata corruption")
    Signed-off-by: Ryusuke Konishi <[email protected]>
    Reported-by: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=d6ca2daf692c7a82f959
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

nilfs2: fix potential deadlock with newly created symlinks [+ + +]
Author: Ryusuke Konishi <[email protected]>
Date:   Sun Oct 20 13:51:28 2024 +0900

    nilfs2: fix potential deadlock with newly created symlinks
    
    commit b3a033e3ecd3471248d474ef263aadc0059e516a upstream.
    
    Syzbot reported that page_symlink(), called by nilfs_symlink(), triggers
    memory reclamation involving the filesystem layer, which can result in
    circular lock dependencies among the reader/writer semaphore
    nilfs->ns_segctor_sem, s_writers percpu_rwsem (intwrite) and the
    fs_reclaim pseudo lock.
    
    This is because after commit 21fc61c73c39 ("don't put symlink bodies in
    pagecache into highmem"), the gfp flags of the page cache for symbolic
    links are overwritten to GFP_KERNEL via inode_nohighmem().
    
    This is not a problem for symlinks read from the backing device, because
    the __GFP_FS flag is dropped after inode_nohighmem() is called.  However,
    when a new symlink is created with nilfs_symlink(), the gfp flags remain
    overwritten to GFP_KERNEL.  Then, memory allocation called from
    page_symlink() etc.  triggers memory reclamation including the FS layer,
    which may call nilfs_evict_inode() or nilfs_dirty_inode().  And these can
    cause a deadlock if they are called while nilfs->ns_segctor_sem is held:
    
    Fix this issue by dropping the __GFP_FS flag from the page cache GFP flags
    of newly created symlinks in the same way that nilfs_new_inode() and
    __nilfs_read_inode() do, as a workaround until we adopt nofs allocation
    scope consistently or improve the locking constraints.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 21fc61c73c39 ("don't put symlink bodies in pagecache into highmem")
    Signed-off-by: Ryusuke Konishi <[email protected]>
    Reported-by: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=9ef37ac20608f4836256
    Tested-by: [email protected]
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
ocfs2: pass u64 to ocfs2_truncate_inline maybe overflow [+ + +]
Author: Edward Adam Davis <[email protected]>
Date:   Wed Oct 16 19:43:47 2024 +0800

    ocfs2: pass u64 to ocfs2_truncate_inline maybe overflow
    
    [ Upstream commit bc0a2f3a73fcdac651fca64df39306d1e5ebe3b0 ]
    
    Syzbot reported a kernel BUG in ocfs2_truncate_inline.  There are two
    reasons for this: first, the parameter value passed is greater than
    ocfs2_max_inline_data_with_xattr, second, the start and end parameters of
    ocfs2_truncate_inline are "unsigned int".
    
    So, we need to add a sanity check for byte_start and byte_len right before
    ocfs2_truncate_inline() in ocfs2_remove_inode_range(), if they are greater
    than ocfs2_max_inline_data_with_xattr return -EINVAL.
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: 1afc32b95233 ("ocfs2: Write support for inline data")
    Signed-off-by: Edward Adam Davis <[email protected]>
    Reported-by: [email protected]
    Closes: https://syzkaller.appspot.com/bug?extid=81092778aac03460d6b7
    Reviewed-by: Joseph Qi <[email protected]>
    Cc: Joel Becker <[email protected]>
    Cc: Joseph Qi <[email protected]>
    Cc: Mark Fasheh <[email protected]>
    Cc: Junxiao Bi <[email protected]>
    Cc: Changwei Ge <[email protected]>
    Cc: Gang He <[email protected]>
    Cc: Jun Piao <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
openat2: explicitly return -E2BIG for (usize > PAGE_SIZE) [+ + +]
Author: Aleksa Sarai <[email protected]>
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: [email protected] # v5.6+
    Fixes: fddb5d430ad9 ("open: introduce openat2(2) syscall")
    Signed-off-by: Aleksa Sarai <[email protected]>
    Link: https://lore.kernel.org/r/20241010-extensible-structs-check_fields-v3-3-d2833dfe6edd@cyphar.com
    Signed-off-by: Christian Brauner <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
posix-clock: posix-clock: Fix unbalanced locking in pc_clock_settime() [+ + +]
Author: Jinjie Ruan <[email protected]>
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 <[email protected]>
    Signed-off-by: Jinjie Ruan <[email protected]>
    Acked-by: Anna-Maria Behnsen <[email protected]>
    [[email protected]: fixed commit message typo]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
r8169: avoid unsolicited interrupts [+ + +]
Author: Heiner Kallweit <[email protected]>
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 <[email protected]>
    Signed-off-by: Heiner Kallweit <[email protected]>
    Reviewed-by: Simon Horman <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Paolo Abeni <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
RDMA/bnxt_re: Add a check for memory allocation [+ + +]
Author: Kalesh AP <[email protected]>
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/[email protected]
    Reviewed-by: Selvin Xavier <[email protected]>
    Signed-off-by: Kalesh AP <[email protected]>
    Signed-off-by: Selvin Xavier <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

RDMA/bnxt_re: Fix a bug while setting up Level-2 PBL pages [+ + +]
Author: Bhargava Chenna Marreddy <[email protected]>
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/[email protected]
    Signed-off-by: Bhargava Chenna Marreddy <[email protected]>
    Signed-off-by: Selvin Xavier <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

RDMA/bnxt_re: Fix incorrect AVID type in WQE structure [+ + +]
Author: Saravanan Vajravel <[email protected]>
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/[email protected]
    Reviewed-by: Selvin Xavier <[email protected]>
    Reviewed-by: Chandramohan Akula <[email protected]>
    Signed-off-by: Saravanan Vajravel <[email protected]>
    Signed-off-by: Kalesh AP <[email protected]>
    Signed-off-by: Selvin Xavier <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>
RDMA/bnxt_re: Return more meaningful error [+ + +]
Author: Kalesh AP <[email protected]>
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/[email protected]
    Signed-off-by: Kalesh AP <[email protected]>
    Signed-off-by: Selvin Xavier <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

RDMA/bnxt_re: synchronize the qp-handle table array [+ + +]
Author: Selvin Xavier <[email protected]>
Date:   Mon Oct 14 06:36:15 2024 -0700

    RDMA/bnxt_re: synchronize the qp-handle table array
    
    [ Upstream commit 76d3ddff7153cc0bcc14a63798d19f5d0693ea71 ]
    
    There is a race between the CREQ tasklet and destroy qp when accessing the
    qp-handle table. There is a chance of reading a valid qp-handle in the
    CREQ tasklet handler while the QP is already moving ahead with the
    destruction.
    
    Fixing this race by implementing a table-lock to synchronize the access.
    
    Fixes: f218d67ef004 ("RDMA/bnxt_re: Allow posting when QPs are in error")
    Fixes: 84cf229f4001 ("RDMA/bnxt_re: Fix the qp table indexing")
    Link: https://patch.msgid.link/r/[email protected]
    Signed-off-by: Kalesh AP <[email protected]>
    Signed-off-by: Selvin Xavier <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
RDMA/cxgb4: Dump vendor specific QP details [+ + +]
Author: Leon Romanovsky <[email protected]>
Date:   Mon Oct 7 20:55:17 2024 +0300

    RDMA/cxgb4: Dump vendor specific QP details
    
    [ Upstream commit 89f8c6f197f480fe05edf91eb9359d5425869d04 ]
    
    Restore the missing functionality to dump vendor specific QP details,
    which was mistakenly removed in the commit mentioned in Fixes line.
    
    Fixes: 5cc34116ccec ("RDMA: Add dedicated QP resource tracker function")
    Link: https://patch.msgid.link/r/ed9844829135cfdcac7d64285688195a5cd43f82.1728323026.git.leonro@nvidia.com
    Reported-by: Dr. David Alan Gilbert <[email protected]>
    Closes: https://lore.kernel.org/all/Zv_4qAxuC0dLmgXP@gallifrey
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

RDMA/cxgb4: Fix RDMA_CM_EVENT_UNREACHABLE error for iWARP [+ + +]
Author: Anumula Murali Mohan Reddy <[email protected]>
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/[email protected]
    Signed-off-by: Anumula Murali Mohan Reddy <[email protected]>
    Signed-off-by: Potnuri Bharat Teja <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
RDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down [+ + +]
Author: Patrisious Haddad <[email protected]>
Date:   Thu Oct 10 11:50:23 2024 +0300

    RDMA/mlx5: Round max_rd_atomic/max_dest_rd_atomic up instead of down
    
    [ Upstream commit 78ed28e08e74da6265e49e19206e1bcb8b9a7f0d ]
    
    After the cited commit below max_dest_rd_atomic and max_rd_atomic values
    are being rounded down to the next power of 2. As opposed to the old
    behavior and mlx4 driver where they used to be rounded up instead.
    
    In order to stay consistent with older code and other drivers, revert to
    using fls round function which rounds up to the next power of 2.
    
    Fixes: f18e26af6aba ("RDMA/mlx5: Convert modify QP to use MLX5_SET macros")
    Link: https://patch.msgid.link/r/d85515d6ef21a2fa8ef4c8293dce9b58df8a6297.1728550179.git.leon@kernel.org
    Signed-off-by: Patrisious Haddad <[email protected]>
    Reviewed-by: Maher Sanalla <[email protected]>
    Signed-off-by: Leon Romanovsky <[email protected]>
    Signed-off-by: Jason Gunthorpe <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
Revert "driver core: Fix uevent_show() vs driver detach race" [+ + +]
Author: Greg Kroah-Hartman <[email protected]>
Date:   Tue Oct 29 01:23:04 2024 +0100

    Revert "driver core: Fix uevent_show() vs driver detach race"
    
    commit 9a71892cbcdb9d1459c84f5a4c722b14354158a5 upstream.
    
    This reverts commit 15fffc6a5624b13b428bb1c6e9088e32a55eb82c.
    
    This commit causes a regression, so revert it for now until it can come
    back in a way that works for everyone.
    
    Link: https://lore.kernel.org/all/172790598832.1168608.4519484276671503678.stgit@dwillia2-xfh.jf.intel.com/
    Fixes: 15fffc6a5624 ("driver core: Fix uevent_show() vs driver detach race")
    Cc: stable <[email protected]>
    Cc: Ashish Sangwan <[email protected]>
    Cc: Namjae Jeon <[email protected]>
    Cc: Dirk Behme <[email protected]>
    Cc: Greg Kroah-Hartman <[email protected]>
    Cc: Rafael J. Wysocki <[email protected]>
    Cc: Dan Williams <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
Revert "drm/mipi-dsi: Set the fwnode for mipi_dsi_device" [+ + +]
Author: Jason-JH.Lin <[email protected]>
Date:   Tue Oct 29 09:24:53 2024 +0800

    Revert "drm/mipi-dsi: Set the fwnode for mipi_dsi_device"
    
    This reverts commit 139c27648f8d3b2283f74715d8e7f0df7f5e55ca which is
    commit a26cc2934331b57b5a7164bff344f0a2ec245fc0 upstream.
    
    Reason for revert:
    1. The commit [1] does not land on linux-5.15, so this patch does not
    fix anything.
    
    2. Since the fw_devlink improvements series [2] does not land on
    linux-5.15, using device_set_fwnode() causes the panel to flash during
    bootup.
    
    Incorrect link management may lead to incorrect device initialization,
    affecting firmware node links and consumer relationships.
    The fwnode setting of panel to the DSI device would cause a DSI
    initialization error without series[2], so this patch was reverted to
    avoid using the incomplete fw_devlink functionality.
    
    [1] commit 3fb16866b51d ("driver core: fw_devlink: Make cycle detection more robust")
    [2] Link: https://lore.kernel.org/all/[email protected]
    
    Cc: [email protected] # 5.15.169
    Cc: [email protected] # 5.10.228
    Cc: [email protected] # 5.4.284
    Signed-off-by: Jason-JH.Lin <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
riscv: efi: Set NX compat flag in PE/COFF header [+ + +]
Author: Heinrich Schuchardt <[email protected]>
Date:   Sun Sep 29 16:02:33 2024 +0200

    riscv: efi: Set NX compat flag in PE/COFF header
    
    [ Upstream commit d41373a4b910961df5a5e3527d7bde6ad45ca438 ]
    
    The IMAGE_DLLCHARACTERISTICS_NX_COMPAT informs the firmware that the
    EFI binary does not rely on pages that are both executable and
    writable.
    
    The flag is used by some distro versions of GRUB to decide if the EFI
    binary may be executed.
    
    As the Linux kernel neither has RWX sections nor needs RWX pages for
    relocation we should set the flag.
    
    Cc: Ard Biesheuvel <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Heinrich Schuchardt <[email protected]>
    Reviewed-by: Emil Renner Berthing <[email protected]>
    Fixes: cb7d2dd5612a ("RISC-V: Add PE/COFF header for EFI stub")
    Acked-by: Ard Biesheuvel <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

riscv: Remove duplicated GET_RM [+ + +]
Author: Chunyan Zhang <[email protected]>
Date:   Tue Oct 8 17:41:39 2024 +0800

    riscv: Remove duplicated GET_RM
    
    [ Upstream commit 164f66de6bb6ef454893f193c898dc8f1da6d18b ]
    
    The macro GET_RM defined twice in this file, one can be removed.
    
    Reviewed-by: Alexandre Ghiti <[email protected]>
    Signed-off-by: Chunyan Zhang <[email protected]>
    Fixes: 956d705dd279 ("riscv: Unaligned load/store handling for M_MODE")
    Cc: [email protected]
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

riscv: Remove unused GENERATING_ASM_OFFSETS [+ + +]
Author: Chunyan Zhang <[email protected]>
Date:   Tue Oct 8 17:41:38 2024 +0800

    riscv: Remove unused GENERATING_ASM_OFFSETS
    
    [ Upstream commit 46d4e5ac6f2f801f97bcd0ec82365969197dc9b1 ]
    
    The macro is not used in the current version of kernel, it looks like
    can be removed to avoid a build warning:
    
    ../arch/riscv/kernel/asm-offsets.c: At top level:
    ../arch/riscv/kernel/asm-offsets.c:7: warning: macro "GENERATING_ASM_OFFSETS" is not used [-Wunused-macros]
        7 | #define GENERATING_ASM_OFFSETS
    
    Fixes: 9639a44394b9 ("RISC-V: Provide a cleaner raw_smp_processor_id()")
    Cc: [email protected]
    Reviewed-by: Alexandre Ghiti <[email protected]>
    Tested-by: Alexandre Ghiti <[email protected]>
    Signed-off-by: Chunyan Zhang <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

riscv: Use '%u' to format the output of 'cpu' [+ + +]
Author: WangYuli <[email protected]>
Date:   Thu Oct 17 11:20:10 2024 +0800

    riscv: Use '%u' to format the output of 'cpu'
    
    [ Upstream commit e0872ab72630dada3ae055bfa410bf463ff1d1e0 ]
    
    'cpu' is an unsigned integer, so its conversion specifier should
    be %u, not %d.
    
    Suggested-by: Wentao Guan <[email protected]>
    Suggested-by: Maciej W. Rozycki <[email protected]>
    Link: https://lore.kernel.org/all/[email protected]/
    Signed-off-by: WangYuli <[email protected]>
    Reviewed-by: Charlie Jenkins <[email protected]>
    Tested-by: Charlie Jenkins <[email protected]>
    Fixes: f1e58583b9c7 ("RISC-V: Support cpu hotplug")
    Cc: [email protected]
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

riscv: vdso: Prevent the compiler from inserting calls to memset() [+ + +]
Author: Alexandre Ghiti <[email protected]>
Date:   Wed Oct 16 10:36:24 2024 +0200

    riscv: vdso: Prevent the compiler from inserting calls to memset()
    
    [ Upstream commit bf40167d54d55d4b54d0103713d86a8638fb9290 ]
    
    The compiler is smart enough to insert a call to memset() in
    riscv_vdso_get_cpus(), which generates a dynamic relocation.
    
    So prevent this by using -fno-builtin option.
    
    Fixes: e2c0cdfba7f6 ("RISC-V: User-facing API")
    Cc: [email protected]
    Signed-off-by: Alexandre Ghiti <[email protected]>
    Reviewed-by: Guo Ren <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Palmer Dabbelt <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
s390: Initialize psw mask in perf_arch_fetch_caller_regs() [+ + +]
Author: Heiko Carstens <[email protected]>
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 <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
scsi: target: core: Fix null-ptr-deref in target_alloc_device() [+ + +]
Author: Wang Hai <[email protected]>
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 <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Reviewed-by: Mike Christie <[email protected]>
    Signed-off-by: Martin K. Petersen <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
selftests/mm: fix incorrect buffer->mirror size in hmm2 double_map test [+ + +]
Author: Donet Tom <[email protected]>
Date:   Fri Sep 27 00:07:52 2024 -0500

    selftests/mm: fix incorrect buffer->mirror size in hmm2 double_map test
    
    [ Upstream commit 76503e1fa1a53ef041a120825d5ce81c7fe7bdd7 ]
    
    The hmm2 double_map test was failing due to an incorrect buffer->mirror
    size.  The buffer->mirror size was 6, while buffer->ptr size was 6 *
    PAGE_SIZE.  The test failed because the kernel's copy_to_user function was
    attempting to copy a 6 * PAGE_SIZE buffer to buffer->mirror.  Since the
    size of buffer->mirror was incorrect, copy_to_user failed.
    
    This patch corrects the buffer->mirror size to 6 * PAGE_SIZE.
    
    Test Result without this patch
    ==============================
     #  RUN           hmm2.hmm2_device_private.double_map ...
     # hmm-tests.c:1680:double_map:Expected ret (-14) == 0 (0)
     # double_map: Test terminated by assertion
     #          FAIL  hmm2.hmm2_device_private.double_map
     not ok 53 hmm2.hmm2_device_private.double_map
    
    Test Result with this patch
    ===========================
     #  RUN           hmm2.hmm2_device_private.double_map ...
     #            OK  hmm2.hmm2_device_private.double_map
     ok 53 hmm2.hmm2_device_private.double_map
    
    Link: https://lkml.kernel.org/r/[email protected]
    Fixes: fee9f6d1b8df ("mm/hmm/test: add selftests for HMM")
    Signed-off-by: Donet Tom <[email protected]>
    Reviewed-by: Muhammad Usama Anjum <[email protected]>
    Cc: Jérôme Glisse <[email protected]>
    Cc: Kees Cook <[email protected]>
    Cc: Mark Brown <[email protected]>
    Cc: Przemek Kitszel <[email protected]>
    Cc: Ritesh Harjani (IBM) <[email protected]>
    Cc: Shuah Khan <[email protected]>
    Cc: Ralph Campbell <[email protected]>
    Cc: Jason Gunthorpe <[email protected]>
    Cc: <[email protected]>
    Signed-off-by: Andrew Morton <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
selinux: improve error checking in sel_write_load() [+ + +]
Author: Paul Moore <[email protected]>
Date:   Fri Oct 25 11:21:07 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 <[email protected]>
    Signed-off-by: Paul Moore <[email protected]>
    [cascardo: keep fsi initialization at its declaration point as it is used earlier]
    Signed-off-by: Thadeu Lima de Souza Cascardo <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
serial: protect uart_port_dtr_rts() in uart_shutdown() too [+ + +]
Author: Jiri Slaby (SUSE) <[email protected]>
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) <[email protected]>
    Cc: Peter Hurley <[email protected]>
    Cc: Greg Kroah-Hartman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    [Adapted over commit 5701cb8bf50e ("tty: Call ->dtr_rts() parameter
    active consistently") not in the tree]
    Signed-off-by: Tomas Krcka <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
smb: client: fix OOBs when building SMB2_IOCTL request [+ + +]
Author: Paulo Alcantara <[email protected]>
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 <[email protected]>
    Fixes: e77fe73c7e38 ("cifs: we can not use small padding iovs together with encryption")
    Signed-off-by: Paulo Alcantara (Red Hat) <[email protected]>
    Signed-off-by: Steve French <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
staging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg() [+ + +]
Author: Zicheng Qu <[email protected]>
Date:   Tue Oct 22 13:43:54 2024 +0000

    staging: iio: frequency: ad9832: fix division by zero in ad9832_calc_freqreg()
    
    commit 6bd301819f8f69331a55ae2336c8b111fc933f3d upstream.
    
    In the ad9832_write_frequency() function, clk_get_rate() might return 0.
    This can lead to a division by zero when calling ad9832_calc_freqreg().
    The check if (fout > (clk_get_rate(st->mclk) / 2)) does not protect
    against the case when fout is 0. The ad9832_write_frequency() function
    is called from ad9832_write(), and fout is derived from a text buffer,
    which can contain any value.
    
    Link: https://lore.kernel.org/all/2024100904-CVE-2024-47663-9bdc@gregkh/
    Fixes: ea707584bac1 ("Staging: IIO: DDS: AD9832 / AD9835 driver")
    Cc: [email protected]
    Signed-off-by: Zicheng Qu <[email protected]>
    Reviewed-by: Nuno Sa <[email protected]>
    Reviewed-by: Dan Carpenter <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jonathan Cameron <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
tracing: Consider the NULL character when validating the event length [+ + +]
Author: Leo Yan <[email protected]>
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/[email protected]/
    
    Fixes: dec65d79fd26 ("tracing/probe: Check event name length correctly")
    Signed-off-by: Leo Yan <[email protected]>
    Reviewed-by: Steven Rostedt (Google) <[email protected]>
    Signed-off-by: Masami Hiramatsu (Google) <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
usb: phy: Fix API devm_usb_put_phy() can not release the phy [+ + +]
Author: Zijun Hu <[email protected]>
Date:   Sun Oct 20 17:33:42 2024 +0800

    usb: phy: Fix API devm_usb_put_phy() can not release the phy
    
    commit fdce49b5da6e0fb6d077986dec3e90ef2b094b50 upstream.
    
    For devm_usb_put_phy(), its comment says it needs to invoke usb_put_phy()
    to release the phy, but it does not do that actually, so it can not fully
    undo what the API devm_usb_get_phy() does, that is wrong, fixed by using
    devres_release() instead of devres_destroy() within the API.
    
    Fixes: cedf8602373a ("usb: phy: move bulk of otg/otg.c to phy/phy.c")
    Cc: [email protected]
    Signed-off-by: Zijun Hu <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

usb: typec: altmode should keep reference to parent [+ + +]
Author: Thadeu Lima de Souza Cascardo <[email protected]>
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 <[email protected]>
    Reviewed-by: Heikki Krogerus <[email protected]>
    Reviewed-by: Dmitry Baryshkov <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
usbip: tools: Fix detach_port() invalid port error path [+ + +]
Author: Zongmin Zhou <[email protected]>
Date:   Thu Oct 24 10:27:00 2024 +0800

    usbip: tools: Fix detach_port() invalid port error path
    
    commit e7cd4b811c9e019f5acbce85699c622b30194c24 upstream.
    
    The detach_port() doesn't return error
    when detach is attempted on an invalid port.
    
    Fixes: 40ecdeb1a187 ("usbip: usbip_detach: fix to check for invalid ports")
    Cc: [email protected]
    Reviewed-by: Hongren Zheng <[email protected]>
    Reviewed-by: Shuah Khan <[email protected]>
    Signed-off-by: Zongmin Zhou <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
vt: prevent kernel-infoleak in con_font_get() [+ + +]
Author: Jeongjun Park <[email protected]>
Date:   Fri Oct 11 02:46:19 2024 +0900

    vt: prevent kernel-infoleak in con_font_get()
    
    commit f956052e00de211b5c9ebaa1958366c23f82ee9e upstream.
    
    font.data may not initialize all memory spaces depending on the implementation
    of vc->vc_sw->con_font_get. This may cause info-leak, so to prevent this, it
    is safest to modify it to initialize the allocated memory space to 0, and it
    generally does not affect the overall performance of the system.
    
    Cc: [email protected]
    Reported-by: [email protected]
    Fixes: 05e2600cb0a4 ("VT: Bump font size limitation to 64x128 pixels")
    Signed-off-by: Jeongjun Park <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
wifi: ath10k: Fix memory leak in management tx [+ + +]
Author: Manikanta Pubbisetty <[email protected]>
Date:   Tue Oct 15 12:11:03 2024 +0530

    wifi: ath10k: Fix memory leak in management tx
    
    commit e15d84b3bba187aa372dff7c58ce1fd5cb48a076 upstream.
    
    In the current logic, memory is allocated for storing the MSDU context
    during management packet TX but this memory is not being freed during
    management TX completion. Similar leaks are seen in the management TX
    cleanup logic.
    
    Kmemleak reports this problem as below,
    
    unreferenced object 0xffffff80b64ed250 (size 16):
      comm "kworker/u16:7", pid 148, jiffies 4294687130 (age 714.199s)
      hex dump (first 16 bytes):
        00 2b d8 d8 80 ff ff ff c4 74 e9 fd 07 00 00 00  .+.......t......
      backtrace:
        [<ffffffe6e7b245dc>] __kmem_cache_alloc_node+0x1e4/0x2d8
        [<ffffffe6e7adde88>] kmalloc_trace+0x48/0x110
        [<ffffffe6bbd765fc>] ath10k_wmi_tlv_op_gen_mgmt_tx_send+0xd4/0x1d8 [ath10k_core]
        [<ffffffe6bbd3eed4>] ath10k_mgmt_over_wmi_tx_work+0x134/0x298 [ath10k_core]
        [<ffffffe6e78d5974>] process_scheduled_works+0x1ac/0x400
        [<ffffffe6e78d60b8>] worker_thread+0x208/0x328
        [<ffffffe6e78dc890>] kthread+0x100/0x1c0
        [<ffffffe6e78166c0>] ret_from_fork+0x10/0x20
    
    Free the memory during completion and cleanup to fix the leak.
    
    Protect the mgmt_pending_tx idr_remove() operation in
    ath10k_wmi_tlv_op_cleanup_mgmt_tx_send() using ar->data_lock similar to
    other instances.
    
    Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.2.0-01387-QCAHLSWMTPLZ-1
    
    Fixes: dc405152bb64 ("ath10k: handle mgmt tx completion event")
    Fixes: c730c477176a ("ath10k: Remove msdu from idr when management pkt send fails")
    Cc: [email protected]
    Signed-off-by: Manikanta Pubbisetty <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Jeff Johnson <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

wifi: brcm80211: BRCM_TRACING should depend on TRACING [+ + +]
Author: Geert Uytterhoeven <[email protected]>
Date:   Tue Sep 24 14:09:32 2024 +0200

    wifi: brcm80211: BRCM_TRACING should depend on TRACING
    
    [ Upstream commit b73b2069528f90ec49d5fa1010a759baa2c2be05 ]
    
    When tracing is disabled, there is no point in asking the user about
    enabling Broadcom wireless device tracing.
    
    Fixes: f5c4f10852d42012 ("brcm80211: Allow trace support to be enabled separately from debug")
    Signed-off-by: Geert Uytterhoeven <[email protected]>
    Acked-by: Arend van Spriel <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://patch.msgid.link/81a29b15eaacc1ac1fb421bdace9ac0c3385f40f.1727179742.git.geert@linux-m68k.org
    Signed-off-by: Sasha Levin <[email protected]>

wifi: iwlegacy: Clear stale interrupts before resuming device [+ + +]
Author: Ville Syrjälä <[email protected]>
Date:   Tue Oct 1 23:07:45 2024 +0300

    wifi: iwlegacy: Clear stale interrupts before resuming device
    
    commit 07c90acb071b9954e1fecb1e4f4f13d12c544b34 upstream.
    
    iwl4965 fails upon resume from hibernation on my laptop. The reason
    seems to be a stale interrupt which isn't being cleared out before
    interrupts are enabled. We end up with a race beween the resume
    trying to bring things back up, and the restart work (queued form
    the interrupt handler) trying to bring things down. Eventually
    the whole thing blows up.
    
    Fix the problem by clearing out any stale interrupts before
    interrupts get enabled during resume.
    
    Here's a debug log of the indicent:
    [   12.042589] ieee80211 phy0: il_isr ISR inta 0x00000080, enabled 0xaa00008b, fh 0x00000000
    [   12.042625] ieee80211 phy0: il4965_irq_tasklet inta 0x00000080, enabled 0x00000000, fh 0x00000000
    [   12.042651] iwl4965 0000:10:00.0: RF_KILL bit toggled to enable radio.
    [   12.042653] iwl4965 0000:10:00.0: On demand firmware reload
    [   12.042690] ieee80211 phy0: il4965_irq_tasklet End inta 0x00000000, enabled 0xaa00008b, fh 0x00000000, flags 0x00000282
    [   12.052207] ieee80211 phy0: il4965_mac_start enter
    [   12.052212] ieee80211 phy0: il_prep_station Add STA to driver ID 31: ff:ff:ff:ff:ff:ff
    [   12.052244] ieee80211 phy0: il4965_set_hw_ready hardware  ready
    [   12.052324] ieee80211 phy0: il_apm_init Init card's basic functions
    [   12.052348] ieee80211 phy0: il_apm_init L1 Enabled; Disabling L0S
    [   12.055727] ieee80211 phy0: il4965_load_bsm Begin load bsm
    [   12.056140] ieee80211 phy0: il4965_verify_bsm Begin verify bsm
    [   12.058642] ieee80211 phy0: il4965_verify_bsm BSM bootstrap uCode image OK
    [   12.058721] ieee80211 phy0: il4965_load_bsm BSM write complete, poll 1 iterations
    [   12.058734] ieee80211 phy0: __il4965_up iwl4965 is coming up
    [   12.058737] ieee80211 phy0: il4965_mac_start Start UP work done.
    [   12.058757] ieee80211 phy0: __il4965_down iwl4965 is going down
    [   12.058761] ieee80211 phy0: il_scan_cancel_timeout Scan cancel timeout
    [   12.058762] ieee80211 phy0: il_do_scan_abort Not performing scan to abort
    [   12.058765] ieee80211 phy0: il_clear_ucode_stations Clearing ucode stations in driver
    [   12.058767] ieee80211 phy0: il_clear_ucode_stations No active stations found to be cleared
    [   12.058819] ieee80211 phy0: _il_apm_stop Stop card, put in low power state
    [   12.058827] ieee80211 phy0: _il_apm_stop_master stop master
    [   12.058864] ieee80211 phy0: il4965_clear_free_frames 0 frames on pre-allocated heap on clear.
    [   12.058869] ieee80211 phy0: Hardware restart was requested
    [   16.132299] iwl4965 0000:10:00.0: START_ALIVE timeout after 4000ms.
    [   16.132303] ------------[ cut here ]------------
    [   16.132304] Hardware became unavailable upon resume. This could be a software issue prior to suspend or a hardware issue.
    [   16.132338] WARNING: CPU: 0 PID: 181 at net/mac80211/util.c:1826 ieee80211_reconfig+0x8f/0x14b0 [mac80211]
    [   16.132390] Modules linked in: ctr ccm sch_fq_codel xt_tcpudp xt_multiport xt_state iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv4 ip_tables x_tables binfmt_misc joydev mousedev btusb btrtl btintel btbcm bluetooth ecdh_generic ecc iTCO_wdt i2c_dev iwl4965 iwlegacy coretemp snd_hda_codec_analog pcspkr psmouse mac80211 snd_hda_codec_generic libarc4 sdhci_pci cqhci sha256_generic sdhci libsha256 firewire_ohci snd_hda_intel snd_intel_dspcfg mmc_core snd_hda_codec snd_hwdep firewire_core led_class iosf_mbi snd_hda_core uhci_hcd lpc_ich crc_itu_t cfg80211 ehci_pci ehci_hcd snd_pcm usbcore mfd_core rfkill snd_timer snd usb_common soundcore video parport_pc parport intel_agp wmi intel_gtt backlight e1000e agpgart evdev
    [   16.132456] CPU: 0 UID: 0 PID: 181 Comm: kworker/u8:6 Not tainted 6.11.0-cl+ #143
    [   16.132460] Hardware name: Hewlett-Packard HP Compaq 6910p/30BE, BIOS 68MCU Ver. F.19 07/06/2010
    [   16.132463] Workqueue: async async_run_entry_fn
    [   16.132469] RIP: 0010:ieee80211_reconfig+0x8f/0x14b0 [mac80211]
    [   16.132501] Code: da 02 00 00 c6 83 ad 05 00 00 00 48 89 df e8 98 1b fc ff 85 c0 41 89 c7 0f 84 e9 02 00 00 48 c7 c7 a0 e6 48 a0 e8 d1 77 c4 e0 <0f> 0b eb 2d 84 c0 0f 85 8b 01 00 00 c6 87 ad 05 00 00 00 e8 69 1b
    [   16.132504] RSP: 0018:ffffc9000029fcf0 EFLAGS: 00010282
    [   16.132507] RAX: 0000000000000000 RBX: ffff8880072008e0 RCX: 0000000000000001
    [   16.132509] RDX: ffffffff81f21a18 RSI: 0000000000000086 RDI: 0000000000000001
    [   16.132510] RBP: ffff8880072003c0 R08: 0000000000000000 R09: 0000000000000003
    [   16.132512] R10: 0000000000000000 R11: ffff88807e5b0000 R12: 0000000000000001
    [   16.132514] R13: 0000000000000000 R14: 0000000000000000 R15: 00000000ffffff92
    [   16.132515] FS:  0000000000000000(0000) GS:ffff88807c200000(0000) knlGS:0000000000000000
    [   16.132517] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   16.132519] CR2: 000055dd43786c08 CR3: 000000000978f000 CR4: 00000000000006f0
    [   16.132521] Call Trace:
    [   16.132525]  <TASK>
    [   16.132526]  ? __warn+0x77/0x120
    [   16.132532]  ? ieee80211_reconfig+0x8f/0x14b0 [mac80211]
    [   16.132564]  ? report_bug+0x15c/0x190
    [   16.132568]  ? handle_bug+0x36/0x70
    [   16.132571]  ? exc_invalid_op+0x13/0x60
    [   16.132573]  ? asm_exc_invalid_op+0x16/0x20
    [   16.132579]  ? ieee80211_reconfig+0x8f/0x14b0 [mac80211]
    [   16.132611]  ? snd_hdac_bus_init_cmd_io+0x24/0x200 [snd_hda_core]
    [   16.132617]  ? pick_eevdf+0x133/0x1c0
    [   16.132622]  ? check_preempt_wakeup_fair+0x70/0x90
    [   16.132626]  ? wakeup_preempt+0x4a/0x60
    [   16.132628]  ? ttwu_do_activate.isra.0+0x5a/0x190
    [   16.132632]  wiphy_resume+0x79/0x1a0 [cfg80211]
    [   16.132675]  ? wiphy_suspend+0x2a0/0x2a0 [cfg80211]
    [   16.132697]  dpm_run_callback+0x75/0x1b0
    [   16.132703]  device_resume+0x97/0x200
    [   16.132707]  async_resume+0x14/0x20
    [   16.132711]  async_run_entry_fn+0x1b/0xa0
    [   16.132714]  process_one_work+0x13d/0x350
    [   16.132718]  worker_thread+0x2be/0x3d0
    [   16.132722]  ? cancel_delayed_work_sync+0x70/0x70
    [   16.132725]  kthread+0xc0/0xf0
    [   16.132729]  ? kthread_park+0x80/0x80
    [   16.132732]  ret_from_fork+0x28/0x40
    [   16.132735]  ? kthread_park+0x80/0x80
    [   16.132738]  ret_from_fork_asm+0x11/0x20
    [   16.132741]  </TASK>
    [   16.132742] ---[ end trace 0000000000000000 ]---
    [   16.132930] ------------[ cut here ]------------
    [   16.132932] WARNING: CPU: 0 PID: 181 at net/mac80211/driver-ops.c:41 drv_stop+0xe7/0xf0 [mac80211]
    [   16.132957] Modules linked in: ctr ccm sch_fq_codel xt_tcpudp xt_multiport xt_state iptable_filter iptable_nat nf_nat nf_conntrack nf_defrag_ipv4 ip_tables x_tables binfmt_misc joydev mousedev btusb btrtl btintel btbcm bluetooth ecdh_generic ecc iTCO_wdt i2c_dev iwl4965 iwlegacy coretemp snd_hda_codec_analog pcspkr psmouse mac80211 snd_hda_codec_generic libarc4 sdhci_pci cqhci sha256_generic sdhci libsha256 firewire_ohci snd_hda_intel snd_intel_dspcfg mmc_core snd_hda_codec snd_hwdep firewire_core led_class iosf_mbi snd_hda_core uhci_hcd lpc_ich crc_itu_t cfg80211 ehci_pci ehci_hcd snd_pcm usbcore mfd_core rfkill snd_timer snd usb_common soundcore video parport_pc parport intel_agp wmi intel_gtt backlight e1000e agpgart evdev
    [   16.133014] CPU: 0 UID: 0 PID: 181 Comm: kworker/u8:6 Tainted: G        W          6.11.0-cl+ #143
    [   16.133018] Tainted: [W]=WARN
    [   16.133019] Hardware name: Hewlett-Packard HP Compaq 6910p/30BE, BIOS 68MCU Ver. F.19 07/06/2010
    [   16.133021] Workqueue: async async_run_entry_fn
    [   16.133025] RIP: 0010:drv_stop+0xe7/0xf0 [mac80211]
    [   16.133048] Code: 48 85 c0 74 0e 48 8b 78 08 89 ea 48 89 de e8 e0 87 04 00 65 ff 0d d1 de c4 5f 0f 85 42 ff ff ff e8 be 52 c2 e0 e9 38 ff ff ff <0f> 0b 5b 5d c3 0f 1f 40 00 41 54 49 89 fc 55 53 48 89 f3 2e 2e 2e
    [   16.133050] RSP: 0018:ffffc9000029fc50 EFLAGS: 00010246
    [   16.133053] RAX: 0000000000000000 RBX: ffff8880072008e0 RCX: ffff88800377f6c0
    [   16.133054] RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff8880072008e0
    [   16.133056] RBP: 0000000000000000 R08: ffffffff81f238d8 R09: 0000000000000000
    [   16.133058] R10: ffff8880080520f0 R11: 0000000000000000 R12: ffff888008051c60
    [   16.133060] R13: ffff8880072008e0 R14: 0000000000000000 R15: ffff8880072011d8
    [   16.133061] FS:  0000000000000000(0000) GS:ffff88807c200000(0000) knlGS:0000000000000000
    [   16.133063] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [   16.133065] CR2: 000055dd43786c08 CR3: 000000000978f000 CR4: 00000000000006f0
    [   16.133067] Call Trace:
    [   16.133069]  <TASK>
    [   16.133070]  ? __warn+0x77/0x120
    [   16.133075]  ? drv_stop+0xe7/0xf0 [mac80211]
    [   16.133098]  ? report_bug+0x15c/0x190
    [   16.133100]  ? handle_bug+0x36/0x70
    [   16.133103]  ? exc_invalid_op+0x13/0x60
    [   16.133105]  ? asm_exc_invalid_op+0x16/0x20
    [   16.133109]  ? drv_stop+0xe7/0xf0 [mac80211]
    [   16.133132]  ieee80211_do_stop+0x55a/0x810 [mac80211]
    [   16.133161]  ? fq_codel_reset+0xa5/0xc0 [sch_fq_codel]
    [   16.133164]  ieee80211_stop+0x4f/0x180 [mac80211]
    [   16.133192]  __dev_close_many+0xa2/0x120
    [   16.133195]  dev_close_many+0x90/0x150
    [   16.133198]  dev_close+0x5d/0x80
    [   16.133200]  cfg80211_shutdown_all_interfaces+0x40/0xe0 [cfg80211]
    [   16.133223]  wiphy_resume+0xb2/0x1a0 [cfg80211]
    [   16.133247]  ? wiphy_suspend+0x2a0/0x2a0 [cfg80211]
    [   16.133269]  dpm_run_callback+0x75/0x1b0
    [   16.133273]  device_resume+0x97/0x200
    [   16.133277]  async_resume+0x14/0x20
    [   16.133280]  async_run_entry_fn+0x1b/0xa0
    [   16.133283]  process_one_work+0x13d/0x350
    [   16.133287]  worker_thread+0x2be/0x3d0
    [   16.133290]  ? cancel_delayed_work_sync+0x70/0x70
    [   16.133294]  kthread+0xc0/0xf0
    [   16.133296]  ? kthread_park+0x80/0x80
    [   16.133299]  ret_from_fork+0x28/0x40
    [   16.133302]  ? kthread_park+0x80/0x80
    [   16.133304]  ret_from_fork_asm+0x11/0x20
    [   16.133307]  </TASK>
    [   16.133308] ---[ end trace 0000000000000000 ]---
    [   16.133335] ieee80211 phy0: PM: dpm_run_callback(): wiphy_resume [cfg80211] returns -110
    [   16.133360] ieee80211 phy0: PM: failed to restore async: error -110
    
    Cc: [email protected]
    Cc: Stanislaw Gruszka <[email protected]>
    Cc: Kalle Valo <[email protected]>
    Cc: [email protected]
    Signed-off-by: Ville Syrjälä <[email protected]>
    Acked-by: Stanislaw Gruszka <[email protected]>
    Signed-off-by: Kalle Valo <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

wifi: iwlwifi: mvm: disconnect station vifs if recovery failed [+ + +]
Author: Emmanuel Grumbach <[email protected]>
Date:   Sun Jan 28 08:53:56 2024 +0200

    wifi: iwlwifi: mvm: disconnect station vifs if recovery failed
    
    [ Upstream commit e50a88e5cb8792cc416866496288c5f4d1eb4b1f ]
    
    This will allow to reconnect immediately instead of leaving the
    connection in a limbo state.
    
    Signed-off-by: Emmanuel Grumbach <[email protected]>
    Reviewed-by: Gregory Greenman <[email protected]>
    Signed-off-by: Miri Korenblit <[email protected]>
    Link: https://msgid.link/20240128084842.e90531cd3a36.Iebdc9483983c0d8497f9dcf9d79ec37332a5fdcc@changeid
    Signed-off-by: Johannes Berg <[email protected]>
    Stable-dep-of: 07a6e3b78a65 ("wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()")
    Signed-off-by: Sasha Levin <[email protected]>

wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd() [+ + +]
Author: Daniel Gabay <[email protected]>
Date:   Thu Oct 10 14:05:05 2024 +0300

    wifi: iwlwifi: mvm: Fix response handling in iwl_mvm_send_recovery_cmd()
    
    [ Upstream commit 07a6e3b78a65f4b2796a8d0d4adb1a15a81edead ]
    
    1. The size of the response packet is not validated.
    2. The response buffer is not freed.
    
    Resolve these issues by switching to iwl_mvm_send_cmd_status(),
    which handles both size validation and frees the buffer.
    
    Fixes: f130bb75d881 ("iwlwifi: add FW recovery flow")
    Signed-off-by: Daniel Gabay <[email protected]>
    Signed-off-by: Miri Korenblit <[email protected]>
    Link: https://patch.msgid.link/20241010140328.76c73185951e.Id3b6ca82ced2081f5ee4f33c997491d0ebda83f7@changeid
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower [+ + +]
Author: Felix Fietkau <[email protected]>
Date:   Wed Oct 2 11:56:30 2024 +0200

    wifi: mac80211: do not pass a stopped vif to the driver in .get_txpower
    
    commit 393b6bc174b0dd21bb2a36c13b36e62fc3474a23 upstream.
    
    Avoid potentially crashing in the driver because of uninitialized private data
    
    Fixes: 5b3dc42b1b0d ("mac80211: add support for driver tx power reporting")
    Cc: [email protected]
    Signed-off-by: Felix Fietkau <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

wifi: mac80211: skip non-uploaded keys in ieee80211_iter_keys [+ + +]
Author: Felix Fietkau <[email protected]>
Date:   Sun Oct 6 17:36:30 2024 +0200

    wifi: mac80211: skip non-uploaded keys in ieee80211_iter_keys
    
    [ Upstream commit 52009b419355195912a628d0a9847922e90c348c ]
    
    Sync iterator conditions with ieee80211_iter_keys_rcu.
    
    Fixes: 830af02f24fb ("mac80211: allow driver to iterate keys")
    Signed-off-by: Felix Fietkau <[email protected]>
    Link: https://patch.msgid.link/[email protected]
    Signed-off-by: Johannes Berg <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
x86/bugs: Use code segment selector for VERW operand [+ + +]
Author: Pawan Gupta <[email protected]>
Date:   Thu Sep 26 09:10:31 2024 -0700

    x86/bugs: Use code segment selector for VERW operand
    
    commit e4d2102018542e3ae5e297bc6e229303abff8a0f upstream.
    
    Robert Gill reported below #GP in 32-bit mode when dosemu software was
    executing vm86() system call:
    
      general protection fault: 0000 [#1] PREEMPT SMP
      CPU: 4 PID: 4610 Comm: dosemu.bin Not tainted 6.6.21-gentoo-x86 #1
      Hardware name: Dell Inc. PowerEdge 1950/0H723K, BIOS 2.7.0 10/30/2010
      EIP: restore_all_switch_stack+0xbe/0xcf
      EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000000
      ESI: 00000000 EDI: 00000000 EBP: 00000000 ESP: ff8affdc
      DS: 0000 ES: 0000 FS: 0000 GS: 0033 SS: 0068 EFLAGS: 00010046
      CR0: 80050033 CR2: 00c2101c CR3: 04b6d000 CR4: 000406d0
      Call Trace:
       show_regs+0x70/0x78
       die_addr+0x29/0x70
       exc_general_protection+0x13c/0x348
       exc_bounds+0x98/0x98
       handle_exception+0x14d/0x14d
       exc_bounds+0x98/0x98
       restore_all_switch_stack+0xbe/0xcf
       exc_bounds+0x98/0x98
       restore_all_switch_stack+0xbe/0xcf
    
    This only happens in 32-bit mode when VERW based mitigations like MDS/RFDS
    are enabled. This is because segment registers with an arbitrary user value
    can result in #GP when executing VERW. Intel SDM vol. 2C documents the
    following behavior for VERW instruction:
    
      #GP(0) - If a memory operand effective address is outside the CS, DS, ES,
               FS, or GS segment limit.
    
    CLEAR_CPU_BUFFERS macro executes VERW instruction before returning to user
    space. Use %cs selector to reference VERW operand. This ensures VERW will
    not #GP for an arbitrary user %ds.
    
    [ mingo: Fixed the SOB chain. ]
    
    Fixes: a0e2dab44d22 ("x86/entry_32: Add VERW just before userspace transition")
    Reported-by: Robert Gill <[email protected]>
    Reviewed-by: Andrew Cooper <[email protected]
    Cc: [email protected] # 5.10+
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218707
    Closes: https://lore.kernel.org/all/[email protected]/
    Suggested-by: Dave Hansen <[email protected]>
    Suggested-by: Brian Gerst <[email protected]>
    Signed-off-by: Pawan Gupta <[email protected]>
    Signed-off-by: Dave Hansen <[email protected]>
    Signed-off-by: Ingo Molnar <[email protected]>
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

 
xfrm: extract dst lookup parameters into a struct [+ + +]
Author: Eyal Birger <[email protected]>
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 <[email protected]>
    Signed-off-by: Steffen Klassert <[email protected]>
    Stable-dep-of: b84697210343 ("xfrm: respect ip protocols rules criteria when performing dst lookups")
    Signed-off-by: Sasha Levin <[email protected]>

xfrm: respect ip protocols rules criteria when performing dst lookups [+ + +]
Author: Eyal Birger <[email protected]>
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 <[email protected]>
    Tested-by: Antony Antony <[email protected]>
    Signed-off-by: Steffen Klassert <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

xfrm: validate new SA's prefixlen using SA family when sel.family is unset [+ + +]
Author: Sabrina Dubroca <[email protected]>
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: [email protected]
    Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
    Signed-off-by: Sabrina Dubroca <[email protected]>
    Signed-off-by: Steffen Klassert <[email protected]>
    Signed-off-by: Antony Antony <[email protected]>
    Signed-off-by: Sasha Levin <[email protected]>

 
xhci: Fix Link TRB DMA in command ring stopped completion event [+ + +]
Author: Faisal Hassan <[email protected]>
Date:   Tue Oct 22 21:26:31 2024 +0530

    xhci: Fix Link TRB DMA in command ring stopped completion event
    
    commit 075919f6df5dd82ad0b1894898b315fbb3c29b84 upstream.
    
    During the aborting of a command, the software receives a command
    completion event for the command ring stopped, with the TRB pointing
    to the next TRB after the aborted command.
    
    If the command we abort is located just before the Link TRB in the
    command ring, then during the 'command ring stopped' completion event,
    the xHC gives the Link TRB in the event's cmd DMA, which causes a
    mismatch in handling command completion event.
    
    To address this situation, move the 'command ring stopped' completion
    event check slightly earlier, since the specific command it stopped
    on isn't of significant concern.
    
    Fixes: 7f84eef0dafb ("USB: xhci: No-op command queueing and irq handler.")
    Cc: [email protected]
    Signed-off-by: Faisal Hassan <[email protected]>
    Acked-by: Mathias Nyman <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>

xhci: Use pm_runtime_get to prevent RPM on unsupported systems [+ + +]
Author: Basavaraj Natikar <[email protected]>
Date:   Thu Oct 24 19:07:18 2024 +0530

    xhci: Use pm_runtime_get to prevent RPM on unsupported systems
    
    commit 31004740e42846a6f0bb255e6348281df3eb8032 upstream.
    
    Use pm_runtime_put in the remove function and pm_runtime_get to disable
    RPM on platforms that don't support runtime D3, as re-enabling it through
    sysfs auto power control may cause the controller to malfunction. This
    can lead to issues such as hotplug devices not being detected due to
    failed interrupt generation.
    
    Fixes: a5d6264b638e ("xhci: Enable RPM on controllers that support low-power states")
    Cc: stable <[email protected]>
    Signed-off-by: Basavaraj Natikar <[email protected]>
    Reviewed-by: Mario Limonciello <[email protected]>
    Link: https://lore.kernel.org/r/[email protected]
    Signed-off-by: Greg Kroah-Hartman <[email protected]>