commit ddcaf49990615eb5659e8f06f5bab4bc3d65c4a5
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon Jan 15 18:51:28 2024 +0100

    Linux 5.15.147
    
    Link: https://lore.kernel.org/r/20240113094209.301672391@linuxfoundation.org
    Tested-by: SeongJae Park <sj@kernel.org>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: kernelci.org bot <bot@kernelci.org>
    Tested-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 231752a0a05d84dd7b315ac795f6abff0c76f906
Author: Justin Chen <justinpopo6@gmail.com>
Date:   Wed Jul 20 17:28:15 2022 -0700

    net: usb: ax88179_178a: move priv to driver_priv
    
    commit 2bcbd3d8a7b4525cdb741fe82330edb6f5452c7f upstream.
    
    We need more space to save WoL context. So lets allocate memory
    for ax88179_data instead of using struct usbnet data field which
    only supports 5 words. We continue to use the struct usbnet data
    field for multicast filters. However since we no longer have the
    private data stored there, we can shift it to the beginning.
    
    Signed-off-by: Justin Chen <justinpopo6@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Cc: Jeffery Miller <jefferymiller@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d800d18ba13220d36b04495d08f881b0aa35e11d
Author: Justin Chen <justinpopo6@gmail.com>
Date:   Wed Jul 20 17:28:12 2022 -0700

    net: usb: ax88179_178a: remove redundant init code
    
    commit 9718f9ce5b86e2f4e6364762018980f0222c2e5e upstream.
    
    Bind and reset are basically doing the same thing. Remove the duplicate
    code and have bind call into reset.
    
    Signed-off-by: Justin Chen <justinpopo6@gmail.com>
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Cc: Jeffery Miller <jefferymiller@google.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 329197033bb019bf263a10b611dff89acd6a0579
Author: Andrii Nakryiko <andrii@kernel.org>
Date:   Thu Jan 11 22:43:54 2024 +0100

    tracing/kprobes: Fix symbol counting logic by looking at modules as well
    
    commit 926fe783c8a64b33997fec405cf1af3e61aed441 upstream.
    
    Recent changes to count number of matching symbols when creating
    a kprobe event failed to take into account kernel modules. As such, it
    breaks kprobes on kernel module symbols, by assuming there is no match.
    
    Fix this my calling module_kallsyms_on_each_symbol() in addition to
    kallsyms_on_each_match_symbol() to perform a proper counting.
    
    Link: https://lore.kernel.org/all/20231027233126.2073148-1-andrii@kernel.org/
    
    Cc: Francis Laniel <flaniel@linux.microsoft.com>
    Cc: stable@vger.kernel.org
    Cc: Masami Hiramatsu <mhiramat@kernel.org>
    Cc: Steven Rostedt <rostedt@goodmis.org>
    Fixes: b022f0c7e404 ("tracing/kprobes: Return EADDRNOTAVAIL when func matches several symbols")
    Signed-off-by: Andrii Nakryiko <andrii@kernel.org>
    Acked-by: Song Liu <song@kernel.org>
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: Markus Boehme <markubo@amazon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ccb7eef5f2f3ab3a4c3bb00f06933cb691e21516
Author: Jiri Olsa <jolsa@kernel.org>
Date:   Thu Jan 11 22:43:53 2024 +0100

    kallsyms: Make module_kallsyms_on_each_symbol generally available
    
    commit 73feb8d5fa3b755bb51077c0aabfb6aa556fd498 upstream.
    
    Making module_kallsyms_on_each_symbol generally available, so it
    can be used outside CONFIG_LIVEPATCH option in following changes.
    
    Rather than adding another ifdef option let's make the function
    generally available (when CONFIG_KALLSYMS and CONFIG_MODULES
    options are defined).
    
    Cc: Christoph Hellwig <hch@lst.de>
    Acked-by: Song Liu <song@kernel.org>
    Signed-off-by: Jiri Olsa <jolsa@kernel.org>
    Link: https://lore.kernel.org/r/20221025134148.3300700-2-jolsa@kernel.org
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Stable-dep-of: 926fe783c8a6 ("tracing/kprobes: Fix symbol counting logic by looking at modules as well")
    Signed-off-by: Markus Boehme <markubo@amazon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ab3a3aadb373b47a1f401c7626608b1b214cec9e
Author: Phil Sutter <phil@nwl.cc>
Date:   Wed Feb 16 15:55:38 2022 +0100

    netfilter: nf_tables: Reject tables of unsupported family
    
    commit f1082dd31fe461d482d69da2a8eccfeb7bf07ac2 upstream.
    
    An nftables family is merely a hollow container, its family just a
    number and such not reliant on compile-time options other than nftables
    support itself. Add an artificial check so attempts at using a family
    the kernel can't support fail as early as possible. This helps user
    space detect kernels which lack e.g. NFPROTO_INET.
    
    Signed-off-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0eb556b2386d14234f48e801f94784e14692b002
Author: Adrian Hunter <adrian.hunter@intel.com>
Date:   Fri Oct 14 20:09:04 2022 +0300

    perf inject: Fix GEN_ELF_TEXT_OFFSET for jit
    
    commit 89b15d00527b7825ff19130ed83478e80e3fae99 upstream.
    
    When a program header was added, it moved the text section but
    GEN_ELF_TEXT_OFFSET was not updated.
    
    Fix by adding the program header size and aligning.
    
    Fixes: babd04386b1df8c3 ("perf jit: Include program header in ELF files")
    Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
    Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Ian Rogers <irogers@google.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Lieven Hey <lieven.hey@kdab.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lore.kernel.org/r/20221014170905.64069-7-adrian.hunter@intel.com
    Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
    [namhyung: use "linux/kernel.h" instead to avoid build failure]
    Signed-off-by: Namhyung Kim <namhyung@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b8a5308feedda10d4875a912e2e1f6be215a4ead
Author: Jon Maxwell <jmaxwell37@gmail.com>
Date:   Thu Jan 12 12:25:32 2023 +1100

    ipv6: remove max_size check inline with ipv4
    
    commit af6d10345ca76670c1b7c37799f0d5576ccef277 upstream.
    
    In ip6_dst_gc() replace:
    
      if (entries > gc_thresh)
    
    With:
    
      if (entries > ops->gc_thresh)
    
    Sending Ipv6 packets in a loop via a raw socket triggers an issue where a
    route is cloned by ip6_rt_cache_alloc() for each packet sent. This quickly
    consumes the Ipv6 max_size threshold which defaults to 4096 resulting in
    these warnings:
    
    [1]   99.187805] dst_alloc: 7728 callbacks suppressed
    [2] Route cache is full: consider increasing sysctl net.ipv6.route.max_size.
    .
    .
    [300] Route cache is full: consider increasing sysctl net.ipv6.route.max_size.
    
    When this happens the packet is dropped and sendto() gets a network is
    unreachable error:
    
    remaining pkt 200557 errno 101
    remaining pkt 196462 errno 101
    .
    .
    remaining pkt 126821 errno 101
    
    Implement David Aherns suggestion to remove max_size check seeing that Ipv6
    has a GC to manage memory usage. Ipv4 already does not check max_size.
    
    Here are some memory comparisons for Ipv4 vs Ipv6 with the patch:
    
    Test by running 5 instances of a program that sends UDP packets to a raw
    socket 5000000 times. Compare Ipv4 and Ipv6 performance with a similar
    program.
    
    Ipv4:
    
    Before test:
    
    MemFree:        29427108 kB
    Slab:             237612 kB
    
    ip6_dst_cache       1912   2528    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache        2881   3990    192   42    2 : tunables    0    0    0
    
    During test:
    
    MemFree:        29417608 kB
    Slab:             247712 kB
    
    ip6_dst_cache       1912   2528    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache       44394  44394    192   42    2 : tunables    0    0    0
    
    After test:
    
    MemFree:        29422308 kB
    Slab:             238104 kB
    
    ip6_dst_cache       1912   2528    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache        3048   4116    192   42    2 : tunables    0    0    0
    
    Ipv6 with patch:
    
    Errno 101 errors are not observed anymore with the patch.
    
    Before test:
    
    MemFree:        29422308 kB
    Slab:             238104 kB
    
    ip6_dst_cache       1912   2528    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache        3048   4116    192   42    2 : tunables    0    0    0
    
    During Test:
    
    MemFree:        29431516 kB
    Slab:             240940 kB
    
    ip6_dst_cache      11980  12064    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache        3048   4116    192   42    2 : tunables    0    0    0
    
    After Test:
    
    MemFree:        29441816 kB
    Slab:             238132 kB
    
    ip6_dst_cache       1902   2432    256   32    2 : tunables    0    0    0
    xfrm_dst_cache         0      0    320   25    2 : tunables    0    0    0
    ip_dst_cache        3048   4116    192   42    2 : tunables    0    0    0
    
    Tested-by: Andrea Mayer <andrea.mayer@uniroma2.it>
    Signed-off-by: Jon Maxwell <jmaxwell37@gmail.com>
    Reviewed-by: David Ahern <dsahern@kernel.org>
    Link: https://lore.kernel.org/r/20230112012532.311021-1-jmaxwell37@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Cc: "Jitindar Singh, Suraj" <surajjs@amazon.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ba5efd8544fa62ae85daeb36077468bf2ce974ab
Author: John Fastabend <john.fastabend@gmail.com>
Date:   Wed Dec 6 15:27:05 2023 -0800

    net: tls, update curr on splice as well
    
    commit c5a595000e2677e865a39f249c056bc05d6e55fd upstream.
    
    The curr pointer must also be updated on the splice similar to how
    we do this for other copy types.
    
    Fixes: d829e9c4112b ("tls: convert to generic sk_msg interface")
    Signed-off-by: John Fastabend <john.fastabend@gmail.com>
    Reported-by: Jann Horn <jannh@google.com>
    Link: https://lore.kernel.org/r/20231206232706.374377-2-john.fastabend@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 06bb52d2efb38d925a4170b335c26cab665913bc
Author: Wenchao Chen <wenchao.chen@unisoc.com>
Date:   Mon Dec 4 14:49:34 2023 +0800

    mmc: sdhci-sprd: Fix eMMC init failure after hw reset
    
    commit 8abf77c88929b6d20fa4f9928b18d6448d64e293 upstream.
    
    Some eMMC devices that do not close the auto clk gate after hw reset will
    cause eMMC initialization to fail. Let's fix this.
    
    Signed-off-by: Wenchao Chen <wenchao.chen@unisoc.com>
    Fixes: ff874dbc4f86 ("mmc: sdhci-sprd: Disable CLK_AUTO when the clock is less than 400K")
    Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/20231204064934.21236-1-wenchao.chen@unisoc.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6722186854a7b2d143d7d85264687c38f88ca518
Author: Geert Uytterhoeven <geert+renesas@glider.be>
Date:   Mon Dec 4 12:29:53 2023 +0100

    mmc: core: Cancel delayed work before releasing host
    
    commit 1036f69e251380573e256568cf814506e3fb9988 upstream.
    
    On RZ/Five SMARC EVK, where probing of SDHI is deferred due to probe
    deferral of the vqmmc-supply regulator:
    
        ------------[ cut here ]------------
        WARNING: CPU: 0 PID: 0 at kernel/time/timer.c:1738 __run_timers.part.0+0x1d0/0x1e8
        Modules linked in:
        CPU: 0 PID: 0 Comm: swapper Not tainted 6.7.0-rc4 #101
        Hardware name: Renesas SMARC EVK based on r9a07g043f01 (DT)
        epc : __run_timers.part.0+0x1d0/0x1e8
         ra : __run_timers.part.0+0x134/0x1e8
        epc : ffffffff800771a4 ra : ffffffff80077108 sp : ffffffc800003e60
         gp : ffffffff814f5028 tp : ffffffff8140c5c0 t0 : ffffffc800000000
         t1 : 0000000000000001 t2 : ffffffff81201300 s0 : ffffffc800003f20
         s1 : ffffffd8023bc4a0 a0 : 00000000fffee6b0 a1 : 0004010000400000
         a2 : ffffffffc0000016 a3 : ffffffff81488640 a4 : ffffffc800003e60
         a5 : 0000000000000000 a6 : 0000000004000000 a7 : ffffffc800003e68
         s2 : 0000000000000122 s3 : 0000000000200000 s4 : 0000000000000000
         s5 : ffffffffffffffff s6 : ffffffff81488678 s7 : ffffffff814886c0
         s8 : ffffffff814f49c0 s9 : ffffffff81488640 s10: 0000000000000000
         s11: ffffffc800003e60 t3 : 0000000000000240 t4 : 0000000000000a52
         t5 : ffffffd8024ae018 t6 : ffffffd8024ae038
        status: 0000000200000100 badaddr: 0000000000000000 cause: 0000000000000003
        [<ffffffff800771a4>] __run_timers.part.0+0x1d0/0x1e8
        [<ffffffff800771e0>] run_timer_softirq+0x24/0x4a
        [<ffffffff80809092>] __do_softirq+0xc6/0x1fa
        [<ffffffff80028e4c>] irq_exit_rcu+0x66/0x84
        [<ffffffff80800f7a>] handle_riscv_irq+0x40/0x4e
        [<ffffffff80808f48>] call_on_irq_stack+0x1c/0x28
        ---[ end trace 0000000000000000 ]---
    
    What happens?
    
        renesas_sdhi_probe()
        {
            tmio_mmc_host_alloc()
                mmc_alloc_host()
                    INIT_DELAYED_WORK(&host->detect, mmc_rescan);
    
            devm_request_irq(tmio_mmc_irq);
    
            /*
             * After this, the interrupt handler may be invoked at any time
             *
             *  tmio_mmc_irq()
             *  {
             *      __tmio_mmc_card_detect_irq()
             *          mmc_detect_change()
             *              _mmc_detect_change()
             *                  mmc_schedule_delayed_work(&host->detect, delay);
             *  }
             */
    
            tmio_mmc_host_probe()
                tmio_mmc_init_ocr()
                    -EPROBE_DEFER
    
            tmio_mmc_host_free()
                mmc_free_host()
        }
    
    When expire_timers() runs later, it warns because the MMC host structure
    containing the delayed work was freed, and now contains an invalid work
    function pointer.
    
    Fix this by cancelling any pending delayed work before releasing the
    MMC host structure.
    
    Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
    Tested-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@bp.renesas.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/205dc4c91b47e31b64392fe2498c7a449e717b4b.1701689330.git.geert+renesas@glider.be
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit edaefc210e108c6d219ad499ee1a8640da9f9afb
Author: Jorge Ramirez-Ortiz <jorge@foundries.io>
Date:   Fri Dec 1 16:31:43 2023 +0100

    mmc: rpmb: fixes pause retune on all RPMB partitions.
    
    commit e7794c14fd73e5eb4a3e0ecaa5334d5a17377c50 upstream.
    
    When RPMB was converted to a character device, it added support for
    multiple RPMB partitions (Commit 97548575bef3 ("mmc: block: Convert RPMB to
    a character device").
    
    One of the changes in this commit was transforming the variable target_part
    defined in __mmc_blk_ioctl_cmd into a bitmask. This inadvertently regressed
    the validation check done in mmc_blk_part_switch_pre() and
    mmc_blk_part_switch_post(), so let's fix it.
    
    Fixes: 97548575bef3 ("mmc: block: Convert RPMB to a character device")
    Signed-off-by: Jorge Ramirez-Ortiz <jorge@foundries.io>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20231201153143.1449753-1-jorge@foundries.io
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 41f20ac9bdc4fbcec9911abc2e802d85b0dbc90f
Author: Ziyang Huang <hzyitc@outlook.com>
Date:   Wed Oct 11 00:44:00 2023 +0800

    mmc: meson-mx-sdhc: Fix initialization frozen issue
    
    commit 8c124d998ea0c9022e247b11ac51f86ec8afa0e1 upstream.
    
    Commit 4bc31edebde5 ("mmc: core: Set HS clock speed before sending
    HS CMD13") set HS clock (52MHz) before switching to HS mode. For this
    freq, FCLK_DIV5 will be selected and div value is 10 (reg value is 9).
    Then we set rx_clk_phase to 11 or 15 which is out of range and make
    hardware frozen. After we send command request, no irq will be
    interrupted and the mmc driver will keep to wait for request finished,
    even durning rebooting.
    
    So let's set it to Phase 90 which should work in most cases. Then let
    meson_mx_sdhc_execute_tuning() to find the accurate value for data
    transfer.
    
    If this doesn't work, maybe need to define a factor in dts.
    
    Fixes: e4bf1b0970ef ("mmc: host: meson-mx-sdhc: new driver for the Amlogic Meson SDHC host")
    Signed-off-by: Ziyang Huang <hzyitc@outlook.com>
    Tested-by: Anand Moon <linux.amoon@gmail.com>
    Cc: stable@vger.kernel.org
    Link: https://lore.kernel.org/r/TYZPR01MB5556A3E71554A2EC08597EA4C9CDA@TYZPR01MB5556.apcprd01.prod.exchangelabs.com
    Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 91432aebce514cab49f63324c98b4eccb80532c5
Author: Jiajun Xie <jiajun.xie.sh@gmail.com>
Date:   Wed Dec 20 13:28:39 2023 +0800

    mm: fix unmap_mapping_range high bits shift bug
    
    commit 9eab0421fa94a3dde0d1f7e36ab3294fc306c99d upstream.
    
    The bug happens when highest bit of holebegin is 1, suppose holebegin is
    0x8000000111111000, after shift, hba would be 0xfff8000000111111, then
    vma_interval_tree_foreach would look it up fail or leads to the wrong
    result.
    
    error call seq e.g.:
    - mmap(..., offset=0x8000000111111000)
      |- syscall(mmap, ... unsigned long, off):
         |- ksys_mmap_pgoff( ... , off >> PAGE_SHIFT);
    
      here pgoff is correctly shifted to 0x8000000111111,
      but pass 0x8000000111111000 as holebegin to unmap
      would then cause terrible result, as shown below:
    
    - unmap_mapping_range(..., loff_t const holebegin)
      |- pgoff_t hba = holebegin >> PAGE_SHIFT;
              /* hba = 0xfff8000000111111 unexpectedly */
    
    The issue happens in Heterogeneous computing, where the device(e.g.
    gpu) and host share the same virtual address space.
    
    A simple workflow pattern which hit the issue is:
            /* host */
        1. userspace first mmap a file backed VA range with specified offset.
                            e.g. (offset=0x800..., mmap return: va_a)
        2. write some data to the corresponding sys page
                             e.g. (va_a = 0xAABB)
            /* device */
        3. gpu workload touches VA, triggers gpu fault and notify the host.
            /* host */
        4. reviced gpu fault notification, then it will:
                4.1 unmap host pages and also takes care of cpu tlb
                      (use unmap_mapping_range with offset=0x800...)
                4.2 migrate sys page to device
                4.3 setup device page table and resolve device fault.
            /* device */
        5. gpu workload continued, it accessed va_a and got 0xAABB.
        6. gpu workload continued, it wrote 0xBBCC to va_a.
            /* host */
        7. userspace access va_a, as expected, it will:
                7.1 trigger cpu vm fault.
                7.2 driver handling fault to migrate gpu local page to host.
        8. userspace then could correctly get 0xBBCC from va_a
        9. done
    
    But in step 4.1, if we hit the bug this patch mentioned, then userspace
    would never trigger cpu fault, and still get the old value: 0xAABB.
    
    Making holebegin unsigned first fixes the bug.
    
    Link: https://lkml.kernel.org/r/20231220052839.26970-1-jiajun.xie.sh@gmail.com
    Signed-off-by: Jiajun Xie <jiajun.xie.sh@gmail.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 5e44f5da126660a7f7d0e8f3a4ac1180a2f9aa7b
Author: Benjamin Bara <benjamin.bara@skidata.com>
Date:   Thu Jan 4 09:17:08 2024 +0100

    i2c: core: Fix atomic xfer check for non-preempt config
    
    commit a3368e1186e3ce8e38f78cbca019622095b1f331 upstream.
    
    Since commit aa49c90894d0 ("i2c: core: Run atomic i2c xfer when
    !preemptible"), the whole reboot/power off sequence on non-preempt kernels
    is using atomic i2c xfer, as !preemptible() always results to 1.
    
    During device_shutdown(), the i2c might be used a lot and not all busses
    have implemented an atomic xfer handler. This results in a lot of
    avoidable noise, like:
    
    [   12.687169] No atomic I2C transfer handler for 'i2c-0'
    [   12.692313] WARNING: CPU: 6 PID: 275 at drivers/i2c/i2c-core.h:40 i2c_smbus_xfer+0x100/0x118
    ...
    
    Fix this by allowing non-atomic xfer when the interrupts are enabled, as
    it was before.
    
    Link: https://lore.kernel.org/r/20231222230106.73f030a5@yea
    Link: https://lore.kernel.org/r/20240102150350.3180741-1-mwalle@kernel.org
    Link: https://lore.kernel.org/linux-i2c/13271b9b-4132-46ef-abf8-2c311967bb46@mailbox.org/
    Fixes: aa49c90894d0 ("i2c: core: Run atomic i2c xfer when !preemptible")
    Cc: stable@vger.kernel.org # v5.2+
    Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
    Tested-by: Michael Walle <mwalle@kernel.org>
    Tested-by: Tor Vic <torvic9@mailbox.org>
    [wsa: removed a comment which needs more work, code is ok]
    Signed-off-by: Wolfram Sang <wsa@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1d5c1617e1e186c3b4fbbed2b8a93787b32df0c0
Author: Jinghao Jia <jinghao7@illinois.edu>
Date:   Tue Jan 2 17:33:45 2024 -0600

    x86/kprobes: fix incorrect return address calculation in kprobe_emulate_call_indirect
    
    commit f5d03da48d062966c94f0199d20be0b3a37a7982 upstream.
    
    kprobe_emulate_call_indirect currently uses int3_emulate_call to emulate
    indirect calls. However, int3_emulate_call always assumes the size of
    the call to be 5 bytes when calculating the return address. This is
    incorrect for register-based indirect calls in x86, which can be either
    2 or 3 bytes depending on whether REX prefix is used. At kprobe runtime,
    the incorrect return address causes control flow to land onto the wrong
    place after return -- possibly not a valid instruction boundary. This
    can lead to a panic like the following:
    
    [    7.308204][    C1] BUG: unable to handle page fault for address: 000000000002b4d8
    [    7.308883][    C1] #PF: supervisor read access in kernel mode
    [    7.309168][    C1] #PF: error_code(0x0000) - not-present page
    [    7.309461][    C1] PGD 0 P4D 0
    [    7.309652][    C1] Oops: 0000 [#1] SMP
    [    7.309929][    C1] CPU: 1 PID: 0 Comm: swapper/1 Not tainted 6.7.0-rc5-trace-for-next #6
    [    7.310397][    C1] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.16.0-20220807_005459-localhost 04/01/2014
    [    7.311068][    C1] RIP: 0010:__common_interrupt+0x52/0xc0
    [    7.311349][    C1] Code: 01 00 4d 85 f6 74 39 49 81 fe 00 f0 ff ff 77 30 4c 89 f7 4d 8b 5e 68 41 ba 91 76 d8 42 45 03 53 fc 74 02 0f 0b cc ff d3 65 48 <8b> 05 30 c7 ff 7e 65 4c 89 3d 28 c7 ff 7e 5b 41 5c 41 5e 41 5f c3
    [    7.312512][    C1] RSP: 0018:ffffc900000e0fd0 EFLAGS: 00010046
    [    7.312899][    C1] RAX: 0000000000000001 RBX: 0000000000000023 RCX: 0000000000000001
    [    7.313334][    C1] RDX: 00000000000003cd RSI: 0000000000000001 RDI: ffff888100d302a4
    [    7.313702][    C1] RBP: 0000000000000001 R08: 0ef439818636191f R09: b1621ff338a3b482
    [    7.314146][    C1] R10: ffffffff81e5127b R11: ffffffff81059810 R12: 0000000000000023
    [    7.314509][    C1] R13: 0000000000000000 R14: ffff888100d30200 R15: 0000000000000000
    [    7.314951][    C1] FS:  0000000000000000(0000) GS:ffff88813bc80000(0000) knlGS:0000000000000000
    [    7.315396][    C1] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    7.315691][    C1] CR2: 000000000002b4d8 CR3: 0000000003028003 CR4: 0000000000370ef0
    [    7.316153][    C1] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [    7.316508][    C1] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [    7.316948][    C1] Call Trace:
    [    7.317123][    C1]  <IRQ>
    [    7.317279][    C1]  ? __die_body+0x64/0xb0
    [    7.317482][    C1]  ? page_fault_oops+0x248/0x370
    [    7.317712][    C1]  ? __wake_up+0x96/0xb0
    [    7.317964][    C1]  ? exc_page_fault+0x62/0x130
    [    7.318211][    C1]  ? asm_exc_page_fault+0x22/0x30
    [    7.318444][    C1]  ? __cfi_native_send_call_func_single_ipi+0x10/0x10
    [    7.318860][    C1]  ? default_idle+0xb/0x10
    [    7.319063][    C1]  ? __common_interrupt+0x52/0xc0
    [    7.319330][    C1]  common_interrupt+0x78/0x90
    [    7.319546][    C1]  </IRQ>
    [    7.319679][    C1]  <TASK>
    [    7.319854][    C1]  asm_common_interrupt+0x22/0x40
    [    7.320082][    C1] RIP: 0010:default_idle+0xb/0x10
    [    7.320309][    C1] Code: 4c 01 c7 4c 29 c2 e9 72 ff ff ff cc cc cc cc 90 90 90 90 90 90 90 90 90 90 90 b8 0c 67 40 a5 66 90 0f 00 2d 09 b9 3b 00 fb f4 <fa> c3 0f 1f 00 90 90 90 90 90 90 90 90 90 90 90 b8 0c 67 40 a5 e9
    [    7.321449][    C1] RSP: 0018:ffffc9000009bee8 EFLAGS: 00000256
    [    7.321808][    C1] RAX: ffff88813bca8b68 RBX: 0000000000000001 RCX: 000000000001ef0c
    [    7.322227][    C1] RDX: 0000000000000000 RSI: 0000000000000001 RDI: 000000000001ef0c
    [    7.322656][    C1] RBP: ffffc9000009bef8 R08: 8000000000000000 R09: 00000000000008c2
    [    7.323083][    C1] R10: 0000000000000000 R11: ffffffff81058e70 R12: 0000000000000000
    [    7.323530][    C1] R13: ffff8881002b30c0 R14: 0000000000000000 R15: 0000000000000000
    [    7.323948][    C1]  ? __cfi_lapic_next_deadline+0x10/0x10
    [    7.324239][    C1]  default_idle_call+0x31/0x50
    [    7.324464][    C1]  do_idle+0xd3/0x240
    [    7.324690][    C1]  cpu_startup_entry+0x25/0x30
    [    7.324983][    C1]  start_secondary+0xb4/0xc0
    [    7.325217][    C1]  secondary_startup_64_no_verify+0x179/0x17b
    [    7.325498][    C1]  </TASK>
    [    7.325641][    C1] Modules linked in:
    [    7.325906][    C1] CR2: 000000000002b4d8
    [    7.326104][    C1] ---[ end trace 0000000000000000 ]---
    [    7.326354][    C1] RIP: 0010:__common_interrupt+0x52/0xc0
    [    7.326614][    C1] Code: 01 00 4d 85 f6 74 39 49 81 fe 00 f0 ff ff 77 30 4c 89 f7 4d 8b 5e 68 41 ba 91 76 d8 42 45 03 53 fc 74 02 0f 0b cc ff d3 65 48 <8b> 05 30 c7 ff 7e 65 4c 89 3d 28 c7 ff 7e 5b 41 5c 41 5e 41 5f c3
    [    7.327570][    C1] RSP: 0018:ffffc900000e0fd0 EFLAGS: 00010046
    [    7.327910][    C1] RAX: 0000000000000001 RBX: 0000000000000023 RCX: 0000000000000001
    [    7.328273][    C1] RDX: 00000000000003cd RSI: 0000000000000001 RDI: ffff888100d302a4
    [    7.328632][    C1] RBP: 0000000000000001 R08: 0ef439818636191f R09: b1621ff338a3b482
    [    7.329223][    C1] R10: ffffffff81e5127b R11: ffffffff81059810 R12: 0000000000000023
    [    7.329780][    C1] R13: 0000000000000000 R14: ffff888100d30200 R15: 0000000000000000
    [    7.330193][    C1] FS:  0000000000000000(0000) GS:ffff88813bc80000(0000) knlGS:0000000000000000
    [    7.330632][    C1] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    [    7.331050][    C1] CR2: 000000000002b4d8 CR3: 0000000003028003 CR4: 0000000000370ef0
    [    7.331454][    C1] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    [    7.331854][    C1] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    [    7.332236][    C1] Kernel panic - not syncing: Fatal exception in interrupt
    [    7.332730][    C1] Kernel Offset: disabled
    [    7.333044][    C1] ---[ end Kernel panic - not syncing: Fatal exception in interrupt ]---
    
    The relevant assembly code is (from objdump, faulting address
    highlighted):
    
    ffffffff8102ed9d:       41 ff d3                  call   *%r11
    ffffffff8102eda0:       65 48 <8b> 05 30 c7 ff    mov    %gs:0x7effc730(%rip),%rax
    
    The emulation incorrectly sets the return address to be ffffffff8102ed9d
    + 0x5 = ffffffff8102eda2, which is the 8b byte in the middle of the next
    mov. This in turn causes incorrect subsequent instruction decoding and
    eventually triggers the page fault above.
    
    Instead of invoking int3_emulate_call, perform push and jmp emulation
    directly in kprobe_emulate_call_indirect. At this point we can obtain
    the instruction size from p->ainsn.size so that we can calculate the
    correct return address.
    
    Link: https://lore.kernel.org/all/20240102233345.385475-1-jinghao7@illinois.edu/
    
    Fixes: 6256e668b7af ("x86/kprobes: Use int3 instead of debug trap for single-step")
    Cc: stable@vger.kernel.org
    Signed-off-by: Jinghao Jia <jinghao7@illinois.edu>
    Signed-off-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 10086ff58ce4eea8011c2c989b9cd3343f194c21
Author: Takashi Sakamoto <o-takashi@sakamocchi.jp>
Date:   Tue Jan 2 20:01:50 2024 +0900

    firewire: ohci: suppress unexpected system reboot in AMD Ryzen machines and ASM108x/VT630x PCIe cards
    
    commit ac9184fbb8478dab4a0724b279f94956b69be827 upstream.
    
    VIA VT6306/6307/6308 provides PCI interface compliant to 1394 OHCI. When
    the hardware is combined with Asmedia ASM1083/1085 PCIe-to-PCI bus bridge,
    it appears that accesses to its 'Isochronous Cycle Timer' register (offset
    0xf0 on PCI memory space) often causes unexpected system reboot in any
    type of AMD Ryzen machine (both 0x17 and 0x19 families). It does not
    appears in the other type of machine (AMD pre-Ryzen machine, Intel
    machine, at least), or in the other OHCI 1394 hardware (e.g. Texas
    Instruments).
    
    The issue explicitly appears at a commit dcadfd7f7c74 ("firewire: core:
    use union for callback of transaction completion") added to v6.5 kernel.
    It changed 1394 OHCI driver to access to the register every time to
    dispatch local asynchronous transaction. However, the issue exists in
    older version of kernel as long as it runs in AMD Ryzen machine, since
    the access to the register is required to maintain bus time. It is not
    hard to imagine that users experience the unexpected system reboot when
    generating bus reset by plugging any devices in, or reading the register
    by time-aware application programs; e.g. audio sample processing.
    
    This commit suppresses the unexpected system reboot in the combination of
    hardware. It avoids the access itself. As a result, the software stack can
    not provide the hardware time anymore to unit drivers, userspace
    applications, and nodes in the same IEEE 1394 bus. It brings apparent
    disadvantage since time-aware application programs require it, while
    time-unaware applications are available again; e.g. sbp2.
    
    Cc: stable@vger.kernel.org
    Reported-by: Jiri Slaby <jirislaby@kernel.org>
    Closes: https://bugzilla.suse.com/show_bug.cgi?id=1215436
    Reported-by: Mario Limonciello <mario.limonciello@amd.com>
    Closes: https://bugzilla.kernel.org/show_bug.cgi?id=217994
    Reported-by: Tobias Gruetzmacher <tobias-lists@23.gs>
    Closes: https://sourceforge.net/p/linux1394/mailman/message/58711901/
    Closes: https://bugzilla.redhat.com/show_bug.cgi?id=2240973
    Closes: https://bugs.launchpad.net/linux/+bug/2043905
    Link: https://lore.kernel.org/r/20240102110150.244475-1-o-takashi@sakamocchi.jp
    Signed-off-by: Takashi Sakamoto <o-takashi@sakamocchi.jp>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 660b3c3bc8a7e571ff496dad5a94dae599a1c03b
Author: Matthew Wilcox (Oracle) <willy@infradead.org>
Date:   Mon Dec 18 13:58:36 2023 +0000

    mm/memory-failure: check the mapcount of the precise page
    
    [ Upstream commit c79c5a0a00a9457718056b588f312baadf44e471 ]
    
    A process may map only some of the pages in a folio, and might be missed
    if it maps the poisoned page but not the head page.  Or it might be
    unnecessarily hit if it maps the head page, but not the poisoned page.
    
    Link: https://lkml.kernel.org/r/20231218135837.3310403-3-willy@infradead.org
    Fixes: 7af446a841a2 ("HWPOISON, hugetlb: enable error handling path for hugepage")
    Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
    Cc: Dan Williams <dan.j.williams@intel.com>
    Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 80eb449f809c49a780209f283257e3bd3fee8741
Author: Muhammad Usama Anjum <usama.anjum@collabora.com>
Date:   Thu Dec 14 15:19:30 2023 +0500

    selftests: secretmem: floor the memory size to the multiple of page_size
    
    [ Upstream commit 0aac13add26d546ac74c89d2883b3a5f0fbea039 ]
    
    The "locked-in-memory size" limit per process can be non-multiple of
    page_size.  The mmap() fails if we try to allocate locked-in-memory with
    same size as the allowed limit if it isn't multiple of the page_size
    because mmap() rounds off the memory size to be allocated to next multiple
    of page_size.
    
    Fix this by flooring the length to be allocated with mmap() to the
    previous multiple of the page_size.
    
    This was getting triggered on KernelCI regularly because of different
    ulimit settings which wasn't multiple of the page_size.  Find logs
    here: https://linux.kernelci.org/test/plan/id/657654bd8e81e654fae13532/
    The bug in was present from the time test was first added.
    
    Link: https://lkml.kernel.org/r/20231214101931.1155586-1-usama.anjum@collabora.com
    Fixes: 76fe17ef588a ("secretmem: test: add basic selftest for memfd_secret(2)")
    Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
    Reported-by: "kernelci.org bot" <bot@kernelci.org>
    Closes: https://linux.kernelci.org/test/plan/id/657654bd8e81e654fae13532/
    Cc: "James E.J. Bottomley" <James.Bottomley@HansenPartnership.com>
    Cc: Mike Rapoport (IBM) <rppt@kernel.org>
    Cc: Shuah Khan <shuah@kernel.org>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a58ae5ab714d6202bd27f033193bad47fa3a9f9d
Author: Thomas Lange <thomas@corelatus.se>
Date:   Thu Jan 4 09:57:44 2024 +0100

    net: Implement missing SO_TIMESTAMPING_NEW cmsg support
    
    [ Upstream commit 382a32018b74f407008615e0e831d05ed28e81cd ]
    
    Commit 9718475e6908 ("socket: Add SO_TIMESTAMPING_NEW") added the new
    socket option SO_TIMESTAMPING_NEW. However, it was never implemented in
    __sock_cmsg_send thus breaking SO_TIMESTAMPING cmsg for platforms using
    SO_TIMESTAMPING_NEW.
    
    Fixes: 9718475e6908 ("socket: Add SO_TIMESTAMPING_NEW")
    Link: https://lore.kernel.org/netdev/6a7281bf-bc4a-4f75-bb88-7011908ae471@app.fastmail.com/
    Signed-off-by: Thomas Lange <thomas@corelatus.se>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Link: https://lore.kernel.org/r/20240104085744.49164-1-thomas@corelatus.se
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 500c7f32ad4392a811c47f0ca908853e9b8e879a
Author: Michael Chan <michael.chan@broadcom.com>
Date:   Wed Jan 3 16:59:24 2024 -0800

    bnxt_en: Remove mis-applied code from bnxt_cfg_ntp_filters()
    
    [ Upstream commit e009b2efb7a8850498796b360043ac25c8d3d28f ]
    
    The 2 lines to check for the BNXT_HWRM_PF_UNLOAD_SP_EVENT bit was
    mis-applied to bnxt_cfg_ntp_filters() and should have been applied to
    bnxt_sp_task().
    
    Fixes: 19241368443f ("bnxt_en: Send PF driver unload notification to all VFs.")
    Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
    Signed-off-by: Michael Chan <michael.chan@broadcom.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fda00eb3cd41dcd0b4b7d69f1eb7224870820568
Author: Chen Ni <nichen@iscas.ac.cn>
Date:   Wed Jan 3 03:35:34 2024 +0000

    asix: Add check for usbnet_get_endpoints
    
    [ Upstream commit eaac6a2d26b65511e164772bec6918fcbc61938e ]
    
    Add check for usbnet_get_endpoints() and return the error if it fails
    in order to transfer the error.
    
    Fixes: 16626b0cc3d5 ("asix: Add a new driver for the AX88172A")
    Signed-off-by: Chen Ni <nichen@iscas.ac.cn>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0817c1b21561b8c5d8ef8e96d9d26771ebafc7d1
Author: Naveen Mamindlapalli <naveenm@marvell.com>
Date:   Tue Jan 2 19:44:00 2024 +0530

    octeontx2-af: Re-enable MAC TX in otx2_stop processing
    
    [ Upstream commit 818ed8933bd17bc91a9fa8b94a898189c546fc1a ]
    
    During QoS scheduling testing with multiple strict priority flows, the
    netdev tx watchdog timeout routine is invoked when a low priority QoS
    queue doesn't get a chance to transmit the packets because other high
    priority flows are completely subscribing the transmit link. The netdev
    tx watchdog timeout routine will stop MAC RX and TX functionality in
    otx2_stop() routine before cleanup of HW TX queues which results in SMQ
    flush errors because the packets belonging to low priority queues will
    never gets flushed since MAC TX is disabled. This patch fixes the issue
    by re-enabling MAC TX to ensure the packets in HW pipeline gets flushed
    properly.
    
    Fixes: a7faa68b4e7f ("octeontx2-af: Start/Stop traffic in CGX along with NPC")
    Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 20fce91b4fa0135ec4168b3c025dd23622dd7b3b
Author: Naveen Mamindlapalli <naveenm@marvell.com>
Date:   Tue Jan 2 15:26:43 2024 +0530

    octeontx2-af: Always configure NIX TX link credits based on max frame size
    
    [ Upstream commit a0d9528f6daf7fe8de217fa80a94d2989d2a57a7 ]
    
    Currently the NIX TX link credits are initialized based on the max frame
    size that can be transmitted on a link but when the MTU is changed, the
    NIX TX link credits are reprogrammed by the SW based on the new MTU value.
    Since SMQ max packet length is programmed to max frame size by default,
    there is a chance that NIX TX may stall while sending a max frame sized
    packet on the link with insufficient credits to send the packet all at
    once. This patch avoids stall issue by not changing the link credits
    dynamically when the MTU is changed.
    
    Fixes: 1c74b89171c3 ("octeontx2-af: Wait for TX link idle for credits change")
    Signed-off-by: Naveen Mamindlapalli <naveenm@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: Nithin Kumar Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6bbbcff3c798c361cce4f9ba21d13748a0794f01
Author: Sunil Goutham <sgoutham@marvell.com>
Date:   Thu Jul 14 11:05:55 2022 +0530

    octeontx2-af: Set NIX link credits based on max LMAC
    
    [ Upstream commit 459f326e995ce6f02f3dc79ca5bc4e2abe33d156 ]
    
    When number of LMACs active on a CGX/RPM are 3, then
    current NIX link credit config based on per lmac fifo
    length which inturn  is calculated as
    'lmac_fifo_len = total_fifo_len / 3', is incorrect. In HW
    one of the LMAC gets half of the FIFO and rest gets 1/4th.
    
    Signed-off-by: Nithin Dabilpuram <ndabilpuram@marvell.com>
    Signed-off-by: Sunil Goutham <sgoutham@marvell.com>
    Signed-off-by: Geetha Sowjanya <gakula@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: a0d9528f6daf ("octeontx2-af: Always configure NIX TX link credits based on max frame size")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6ef9a28e1bb229b34d30f2211d4666588f0a1f61
Author: Hariprasad Kelam <hkelam@marvell.com>
Date:   Wed Feb 9 12:45:16 2022 +0530

    octeontx2-af: Don't enable Pause frames by default
    
    [ Upstream commit d957b51f7ed66dbe6102f1bba0587fdfc0119a94 ]
    
    Current implementation is such that 802.3x pause frames are
    enabled by default.  As CGX and RPM blocks support PFC
    (priority flow control) also, instead of driver enabling one
    between them enable them upon request from PF or its VFs.
    Also add support to disable pause frames in driver unbind.
    
    Signed-off-by: Hariprasad Kelam <hkelam@marvell.com>
    Signed-off-by: Sunil Kovvuri Goutham <sgoutham@marvell.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: a0d9528f6daf ("octeontx2-af: Always configure NIX TX link credits based on max frame size")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit bc56ed720e064f4ea3908b3fbcd63d94ab98e994
Author: Dinghao Liu <dinghao.liu@zju.edu.cn>
Date:   Wed Dec 27 15:02:27 2023 +0800

    net/qla3xxx: fix potential memleak in ql_alloc_buffer_queues
    
    [ Upstream commit 89f45c30172c80e55c887f32f1af8e184124577b ]
    
    When dma_alloc_coherent() fails, we should free qdev->lrg_buf
    to prevent potential memleak.
    
    Fixes: 1357bfcf7106 ("qla3xxx: Dynamically size the rx buffer queue based on the MTU.")
    Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
    Link: https://lore.kernel.org/r/20231227070227.10527-1-dinghao.liu@zju.edu.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit cfcf5490145a13ac2dbf18596812ef63b2aeb93e
Author: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com>
Date:   Fri Dec 8 15:58:16 2023 +0100

    igc: Fix hicredit calculation
    
    [ Upstream commit 947dfc8138dfaeb6e966e2d661de89eb203e3064 ]
    
    According to the Intel Software Manual for I225, Section 7.5.2.7,
    hicredit should be multiplied by the constant link-rate value, 0x7736.
    
    Currently, the old constant link-rate value, 0x7735, from the boards
    supported on igb are being used, most likely due to a copy'n'paste, as
    the rest of the logic is the same for both drivers.
    
    Update hicredit accordingly.
    
    Fixes: 1ab011b0bf07 ("igc: Add support for CBS offloading")
    Reviewed-by: Kurt Kanzenbach <kurt@linutronix.de>
    Signed-off-by: Rodrigo Cataldo <rodrigo.cadore@l-acoustics.com>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 6c853b57684e1205c8e60b7e7e71bfac1a58b5dc
Author: Andrii Staikov <andrii.staikov@intel.com>
Date:   Thu Dec 21 14:27:35 2023 +0100

    i40e: Restore VF MSI-X state during PCI reset
    
    [ Upstream commit 371e576ff3e8580d91d49026e5d5faebf5565558 ]
    
    During a PCI FLR the MSI-X Enable flag in the VF PCI MSI-X capability
    register will be cleared. This can lead to issues when a VF is
    assigned to a VM because in these cases the VF driver receives no
    indication of the PF PCI error/reset and additionally it is incapable
    of restoring the cleared flag in the hypervisor configuration space
    without fully reinitializing the driver interrupt functionality.
    
    Since the VF driver is unable to easily resolve this condition on its own,
    restore the VF MSI-X flag during the PF PCI reset handling.
    
    Fixes: 19b7960b2da1 ("i40e: implement split PCI error reset handler")
    Co-developed-by: Karen Ostrowska <karen.ostrowska@intel.com>
    Signed-off-by: Karen Ostrowska <karen.ostrowska@intel.com>
    Co-developed-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
    Signed-off-by: Mateusz Palczewski <mateusz.palczewski@intel.com>
    Reviewed-by: Wojciech Drewek <wojciech.drewek@intel.com>
    Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
    Signed-off-by: Andrii Staikov <andrii.staikov@intel.com>
    Tested-by: Rafal Romanowski <rafal.romanowski@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 9400f854facdc59f2d93eb88a211b24cf42c7ac1
Author: Mark Brown <broonie@kernel.org>
Date:   Wed Jan 3 18:34:04 2024 +0000

    ASoC: meson: g12a-tohdmitx: Fix event generation for S/PDIF mux
    
    [ Upstream commit b036d8ef3120b996751495ce25994eea58032a98 ]
    
    When a control changes value the return value from _put() should be 1 so
    we get events generated to userspace notifying applications of the change.
    While the I2S mux gets this right the S/PDIF mux does not, fix the return
    value.
    
    Fixes: c8609f3870f7 ("ASoC: meson: add g12a tohdmitx control")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20240103-meson-enum-val-v1-4-424af7a8fb91@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit e08b666e4415de0b26ed1f070f95dc96f748f93c
Author: Mark Brown <broonie@kernel.org>
Date:   Wed Jan 3 18:34:03 2024 +0000

    ASoC: meson: g12a-toacodec: Fix event generation
    
    [ Upstream commit 172c88244b5f2d3375403ebb504d407be0fded59 ]
    
    When a control changes value the return value from _put() should be 1 so
    we get events generated to userspace notifying applications of the change.
    We are checking if there has been a change and exiting early if not but we
    are not providing the correct return value in the latter case, fix this.
    
    Fixes: af2618a2eee8 ("ASoC: meson: g12a: add internal DAC glue driver")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20240103-meson-enum-val-v1-3-424af7a8fb91@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3a78a57764f0c800ee3262839a209507be612293
Author: Mark Brown <broonie@kernel.org>
Date:   Wed Jan 3 18:34:02 2024 +0000

    ASoC: meson: g12a-tohdmitx: Validate written enum values
    
    [ Upstream commit 1e001206804be3f3d21f4a1cf16e5d059d75643f ]
    
    When writing to an enum we need to verify that the value written is valid
    for the enumeration, the helper function snd_soc_item_enum_to_val() doesn't
    do it since it needs to return an unsigned (and in any case we'd need to
    check the return value).
    
    Fixes: c8609f3870f7 ("ASoC: meson: add g12a tohdmitx control")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20240103-meson-enum-val-v1-2-424af7a8fb91@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f74281f241ffa15d5a1e41ba34518991e086e5e6
Author: Mark Brown <broonie@kernel.org>
Date:   Wed Jan 3 18:34:01 2024 +0000

    ASoC: meson: g12a-toacodec: Validate written enum values
    
    [ Upstream commit 3150b70e944ead909260285dfb5707d0bedcf87b ]
    
    When writing to an enum we need to verify that the value written is valid
    for the enumeration, the helper function snd_soc_item_enum_to_val() doesn't
    do it since it needs to return an unsigned (and in any case we'd need to
    check the return value).
    
    Fixes: af2618a2eee8 ("ASoC: meson: g12a: add internal DAC glue driver")
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Link: https://lore.kernel.org/r/20240103-meson-enum-val-v1-1-424af7a8fb91@kernel.org
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 947db598acb89e63542a1a66a005cef539f937eb
Author: Ke Xiao <xiaoke@sangfor.com.cn>
Date:   Mon Dec 18 15:08:50 2023 +0800

    i40e: fix use-after-free in i40e_aqc_add_filters()
    
    [ Upstream commit 6a15584e99db8918b60e507539c7446375dcf366 ]
    
    Commit 3116f59c12bd ("i40e: fix use-after-free in
    i40e_sync_filters_subtask()") avoided use-after-free issues,
    by increasing refcount during update the VSI filter list to
    the HW. However, it missed the unicast situation.
    
    When deleting an unicast FDB entry, the i40e driver will release
    the mac_filter, and i40e_service_task will concurrently request
    firmware to add the mac_filter, which will lead to the following
    use-after-free issue.
    
    Fix again for both netdev->uc and netdev->mc.
    
    BUG: KASAN: use-after-free in i40e_aqc_add_filters+0x55c/0x5b0 [i40e]
    Read of size 2 at addr ffff888eb3452d60 by task kworker/8:7/6379
    
    CPU: 8 PID: 6379 Comm: kworker/8:7 Kdump: loaded Tainted: G
    Workqueue: i40e i40e_service_task [i40e]
    Call Trace:
     dump_stack+0x71/0xab
     print_address_description+0x6b/0x290
     kasan_report+0x14a/0x2b0
     i40e_aqc_add_filters+0x55c/0x5b0 [i40e]
     i40e_sync_vsi_filters+0x1676/0x39c0 [i40e]
     i40e_service_task+0x1397/0x2bb0 [i40e]
     process_one_work+0x56a/0x11f0
     worker_thread+0x8f/0xf40
     kthread+0x2a0/0x390
     ret_from_fork+0x1f/0x40
    
    Allocated by task 21948:
     kasan_kmalloc+0xa6/0xd0
     kmem_cache_alloc_trace+0xdb/0x1c0
     i40e_add_filter+0x11e/0x520 [i40e]
     i40e_addr_sync+0x37/0x60 [i40e]
     __hw_addr_sync_dev+0x1f5/0x2f0
     i40e_set_rx_mode+0x61/0x1e0 [i40e]
     dev_uc_add_excl+0x137/0x190
     i40e_ndo_fdb_add+0x161/0x260 [i40e]
     rtnl_fdb_add+0x567/0x950
     rtnetlink_rcv_msg+0x5db/0x880
     netlink_rcv_skb+0x254/0x380
     netlink_unicast+0x454/0x610
     netlink_sendmsg+0x747/0xb00
     sock_sendmsg+0xe2/0x120
     __sys_sendto+0x1ae/0x290
     __x64_sys_sendto+0xdd/0x1b0
     do_syscall_64+0xa0/0x370
     entry_SYSCALL_64_after_hwframe+0x65/0xca
    
    Freed by task 21948:
     __kasan_slab_free+0x137/0x190
     kfree+0x8b/0x1b0
     __i40e_del_filter+0x116/0x1e0 [i40e]
     i40e_del_mac_filter+0x16c/0x300 [i40e]
     i40e_addr_unsync+0x134/0x1b0 [i40e]
     __hw_addr_sync_dev+0xff/0x2f0
     i40e_set_rx_mode+0x61/0x1e0 [i40e]
     dev_uc_del+0x77/0x90
     rtnl_fdb_del+0x6a5/0x860
     rtnetlink_rcv_msg+0x5db/0x880
     netlink_rcv_skb+0x254/0x380
     netlink_unicast+0x454/0x610
     netlink_sendmsg+0x747/0xb00
     sock_sendmsg+0xe2/0x120
     __sys_sendto+0x1ae/0x290
     __x64_sys_sendto+0xdd/0x1b0
     do_syscall_64+0xa0/0x370
     entry_SYSCALL_64_after_hwframe+0x65/0xca
    
    Fixes: 3116f59c12bd ("i40e: fix use-after-free in i40e_sync_filters_subtask()")
    Fixes: 41c445ff0f48 ("i40e: main driver core")
    Signed-off-by: Ke Xiao <xiaoke@sangfor.com.cn>
    Signed-off-by: Ding Hui <dinghui@sangfor.com.cn>
    Cc: Di Zhu <zhudi2@huawei.com>
    Reviewed-by: Jan Sokolowski <jan.sokolowski@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
    Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 975d6f66f2b68111846b7350cc64bff56269fbd4
Author: Marc Dionne <marc.dionne@auristor.com>
Date:   Thu Dec 21 09:12:30 2023 -0400

    net: Save and restore msg_namelen in sock_sendmsg
    
    [ Upstream commit 01b2885d9415152bcb12ff1f7788f500a74ea0ed ]
    
    Commit 86a7e0b69bd5 ("net: prevent rewrite of msg_name in
    sock_sendmsg()") made sock_sendmsg save the incoming msg_name pointer
    and restore it before returning, to insulate the caller against
    msg_name being changed by the called code.  If the address length
    was also changed however, we may return with an inconsistent structure
    where the length doesn't match the address, and attempts to reuse it may
    lead to lost packets.
    
    For example, a kernel that doesn't have commit 1c5950fc6fe9 ("udp6: fix
    potential access to stale information") will replace a v4 mapped address
    with its ipv4 equivalent, and shorten namelen accordingly from 28 to 16.
    If the caller attempts to reuse the resulting msg structure, it will have
    the original ipv6 (v4 mapped) address but an incorrect v4 length.
    
    Fixes: 86a7e0b69bd5 ("net: prevent rewrite of msg_name in sock_sendmsg()")
    Signed-off-by: Marc Dionne <marc.dionne@auristor.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b2869e7600f4fdd65979fd74be428bcbc6c7e208
Author: Pablo Neira Ayuso <pablo@netfilter.org>
Date:   Mon Jan 1 20:15:33 2024 +0100

    netfilter: nft_immediate: drop chain reference counter on error
    
    [ Upstream commit b29be0ca8e816119ccdf95cc7d7c7be9bde005f1 ]
    
    In the init path, nft_data_init() bumps the chain reference counter,
    decrement it on error by following the error path which calls
    nft_data_release() to restore it.
    
    Fixes: 4bedf9eee016 ("netfilter: nf_tables: fix chain binding transaction logic")
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 51976846f20232a26d9ea15841abcf492b40c070
Author: Adrian Cinal <adriancinal@gmail.com>
Date:   Thu Dec 28 14:56:38 2023 +0100

    net: bcmgenet: Fix FCS generation for fragmented skbuffs
    
    [ Upstream commit e584f2ff1e6cc9b1d99e8a6b0f3415940d1b3eb3 ]
    
    The flag DMA_TX_APPEND_CRC was only written to the first DMA descriptor
    in the TX path, where each descriptor corresponds to a single skbuff
    fragment (or the skbuff head). This led to packets with no FCS appearing
    on the wire if the kernel allocated the packet in fragments, which would
    always happen when using PACKET_MMAP/TPACKET (cf. tpacket_fill_skb() in
    net/af_packet.c).
    
    Fixes: 1c1008c793fa ("net: bcmgenet: add main driver file")
    Signed-off-by: Adrian Cinal <adriancinal1@gmail.com>
    Acked-by: Doug Berger <opendmb@gmail.com>
    Acked-by: Florian Fainelli <florian.fainelli@broadcom.com>
    Link: https://lore.kernel.org/r/20231228135638.1339245-1-adriancinal1@gmail.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c748c358debead5c079fcbdf0c9250ef3bb20434
Author: Zhipeng Lu <alexious@zju.edu.cn>
Date:   Mon Dec 25 19:29:14 2023 +0800

    sfc: fix a double-free bug in efx_probe_filters
    
    [ Upstream commit d5a306aedba34e640b11d7026dbbafb78ee3a5f6 ]
    
    In efx_probe_filters, the channel->rps_flow_id is freed in a
    efx_for_each_channel marco  when success equals to 0.
    However, after the following call chain:
    
    ef100_net_open
      |-> efx_probe_filters
      |-> ef100_net_stop
            |-> efx_remove_filters
    
    The channel->rps_flow_id is freed again in the efx_for_each_channel of
    efx_remove_filters, triggering a double-free bug.
    
    Fixes: a9dc3d5612ce ("sfc_ef100: RX filter table management and related gubbins")
    Reviewed-by: Simon Horman <horms@kernel.org>
    Reviewed-by: Edward Cree <ecree.xilinx@gmail.com>
    Signed-off-by: Zhipeng Lu <alexious@zju.edu.cn>
    Link: https://lore.kernel.org/r/20231225112915.3544581-1-alexious@zju.edu.cn
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5c161f2220f5c0a4eb712a341289b24520628225
Author: Stefan Wahren <wahrenst@gmx.net>
Date:   Thu Dec 28 20:39:02 2023 +0100

    ARM: sun9i: smp: Fix array-index-out-of-bounds read in sunxi_mc_smp_init
    
    [ Upstream commit 72ad3b772b6d393701df58ba1359b0bb346a19ed ]
    
    Running a multi-arch kernel (multi_v7_defconfig) on a Raspberry Pi 3B+
    with enabled CONFIG_UBSAN triggers the following warning:
    
     UBSAN: array-index-out-of-bounds in arch/arm/mach-sunxi/mc_smp.c:810:29
     index 2 is out of range for type 'sunxi_mc_smp_data [2]'
     CPU: 0 PID: 1 Comm: swapper/0 Not tainted 6.7.0-rc6-00248-g5254c0cbc92d
     Hardware name: BCM2835
      unwind_backtrace from show_stack+0x10/0x14
      show_stack from dump_stack_lvl+0x40/0x4c
      dump_stack_lvl from ubsan_epilogue+0x8/0x34
      ubsan_epilogue from __ubsan_handle_out_of_bounds+0x78/0x80
      __ubsan_handle_out_of_bounds from sunxi_mc_smp_init+0xe4/0x4cc
      sunxi_mc_smp_init from do_one_initcall+0xa0/0x2fc
      do_one_initcall from kernel_init_freeable+0xf4/0x2f4
      kernel_init_freeable from kernel_init+0x18/0x158
      kernel_init from ret_from_fork+0x14/0x28
    
    Since the enabled method couldn't match with any entry from
    sunxi_mc_smp_data, the value of the index shouldn't be used right after
    the loop. So move it after the check of ret in order to have a valid
    index.
    
    Fixes: 1631090e34f5 ("ARM: sun9i: smp: Add is_a83t field")
    Signed-off-by: Stefan Wahren <wahrenst@gmx.net>
    Link: https://lore.kernel.org/r/20231228193903.9078-1-wahrenst@gmx.net
    Reviewed-by: Chen-Yu Tsai <wens@csie.org>
    Signed-off-by: Arnd Bergmann <arnd@arndb.de>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit fd2e7829239ea67a36acc075b3b657453ecae1ee
Author: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Date:   Mon Mar 6 08:07:38 2023 -0800

    net-timestamp: extend SOF_TIMESTAMPING_OPT_ID to HW timestamps
    
    [ Upstream commit 8ca5a5790b9a1ce147484d2a2c4e66d2553f3d6c ]
    
    When the feature was added it was enabled for SW timestamps only but
    with current hardware the same out-of-order timestamps can be seen.
    Let's expand the area for the feature to all types of timestamps.
    
    Signed-off-by: Vadim Fedorenko <vadfed@meta.com>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Stable-dep-of: 7f6ca95d16b9 ("net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit dc5643abc1acde4fccabdf5907f581cddafe61a4
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Fri Dec 9 10:10:08 2022 +0100

    can: raw: add support for SO_MARK
    
    [ Upstream commit 0826e82b8a32e646b7b32ba8b68ba30812028e47 ]
    
    Add support for SO_MARK to the CAN_RAW protocol. This makes it
    possible to add traffic control filters based on the fwmark.
    
    Link: https://lore.kernel.org/all/20221210113653.170346-1-mkl@pengutronix.de
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Stable-dep-of: 7f6ca95d16b9 ("net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 464fb49ca9bb4c48ac48b389096ad4358f6ca376
Author: Marc Kleine-Budde <mkl@pengutronix.de>
Date:   Thu Apr 21 12:31:52 2022 +0200

    can: raw: add support for SO_TXTIME/SCM_TXTIME
    
    [ Upstream commit 51a0d5e51178fcd147c1b8fdab2ed16b561326db ]
    
    This patch calls into sock_cmsg_send() to parse the user supplied
    control information into a struct sockcm_cookie. Then assign the
    requested transmit time to the skb.
    
    This makes it possible to use the Earliest TXTIME First (ETF) packet
    scheduler with the CAN_RAW protocol. The user can send a CAN_RAW frame
    with a TXTIME and the kernel (with the ETF scheduler) will take care
    of sending it to the network interface.
    
    Link: https://lore.kernel.org/all/20220502091946.1916211-3-mkl@pengutronix.de
    Acked-by: Oliver Hartkopp <socketcan@hartkopp.net>
    Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
    Stable-dep-of: 7f6ca95d16b9 ("net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)")
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit ba80ff7a85b663640aa4da2a5000b810a817c9ff
Author: Jörn-Thorben Hinz <jthinz@mailbox.tu-berlin.de>
Date:   Fri Dec 22 00:19:01 2023 +0100

    net: Implement missing getsockopt(SO_TIMESTAMPING_NEW)
    
    [ Upstream commit 7f6ca95d16b96567ce4cf458a2790ff17fa620c3 ]
    
    Commit 9718475e6908 ("socket: Add SO_TIMESTAMPING_NEW") added the new
    socket option SO_TIMESTAMPING_NEW. Setting the option is handled in
    sk_setsockopt(), querying it was not handled in sk_getsockopt(), though.
    
    Following remarks on an earlier submission of this patch, keep the old
    behavior of getsockopt(SO_TIMESTAMPING_OLD) which returns the active
    flags even if they actually have been set through SO_TIMESTAMPING_NEW.
    
    The new getsockopt(SO_TIMESTAMPING_NEW) is stricter, returning flags
    only if they have been set through the same option.
    
    Fixes: 9718475e6908 ("socket: Add SO_TIMESTAMPING_NEW")
    Link: https://lore.kernel.org/lkml/20230703175048.151683-1-jthinz@mailbox.tu-berlin.de/
    Link: https://lore.kernel.org/netdev/0d7cddc9-03fa-43db-a579-14f3e822615b@app.fastmail.com/
    Signed-off-by: Jörn-Thorben Hinz <jthinz@mailbox.tu-berlin.de>
    Reviewed-by: Willem de Bruijn <willemb@google.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5636941e42d5c8525f9ecc403822f4aa873d086a
Author: Kai-Heng Feng <kai.heng.feng@canonical.com>
Date:   Fri Dec 22 12:34:09 2023 +0800

    r8169: Fix PCI error on system resume
    
    [ Upstream commit 9c476269bff2908a20930c58085bf0b05ebd569a ]
    
    Some r8168 NICs stop working upon system resume:
    
    [  688.051096] r8169 0000:02:00.1 enp2s0f1: rtl_ep_ocp_read_cond == 0 (loop: 10, delay: 10000).
    [  688.175131] r8169 0000:02:00.1 enp2s0f1: Link is Down
    ...
    [  691.534611] r8169 0000:02:00.1 enp2s0f1: PCI error (cmd = 0x0407, status_errs = 0x0000)
    
    Not sure if it's related, but those NICs have a BMC device at function
    0:
    02:00.0 Unassigned class [ff00]: Realtek Semiconductor Co., Ltd. Realtek RealManage BMC [10ec:816e] (rev 1a)
    
    Trial and error shows that increase the loop wait on
    rtl_ep_ocp_read_cond to 30 can eliminate the issue, so let
    rtl8168ep_driver_start() to wait a bit longer.
    
    Fixes: e6d6ca6e1204 ("r8169: Add support for another RTL8168FP")
    Signed-off-by: Kai-Heng Feng <kai.heng.feng@canonical.com>
    Reviewed-by: Heiner Kallweit <hkallweit1@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 0ce9a244d33b5e273656aa30e9b1a4bbcab0edf9
Author: Hangyu Hua <hbh25y@gmail.com>
Date:   Thu Dec 21 10:25:31 2023 +0800

    net: sched: em_text: fix possible memory leak in em_text_destroy()
    
    [ Upstream commit 8fcb0382af6f1ef50936f1be05b8149eb2f88496 ]
    
    m->data needs to be freed when em_text_destroy is called.
    
    Fixes: d675c989ed2d ("[PKT_SCHED]: Packet classification based on textsearch (ematch)")
    Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
    Signed-off-by: Hangyu Hua <hbh25y@gmail.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit c0b56aa9d1a6eaf5569a0c0315ba3297bf2194dd
Author: David Thompson <davthompson@nvidia.com>
Date:   Wed Dec 20 18:47:39 2023 -0500

    mlxbf_gige: fix receive packet race condition
    
    [ Upstream commit dcea1bd45e6d111cc8fc1aaefa7e31694089bda3 ]
    
    Under heavy traffic, the BlueField Gigabit interface can
    become unresponsive. This is due to a possible race condition
    in the mlxbf_gige_rx_packet function, where the function exits
    with producer and consumer indices equal but there are remaining
    packet(s) to be processed. In order to prevent this situation,
    read receive consumer index *before* the HW replenish so that
    the mlxbf_gige_rx_packet function returns an accurate return
    value even if a packet is received into just-replenished buffer
    prior to exiting this routine. If the just-replenished buffer
    is received and occupies the last RX ring entry, the interface
    would not recover and instead would encounter RX packet drops
    related to internal buffer shortages since the driver RX logic
    is not being triggered to drain the RX ring. This patch will
    address and prevent this "ring full" condition.
    
    Fixes: f92e1869d74e ("Add Mellanox BlueField Gigabit Ethernet driver")
    Reviewed-by: Asmaa Mnebhi <asmaa@nvidia.com>
    Signed-off-by: David Thompson <davthompson@nvidia.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 271567afd4c2ea5e9ee3a52ec87f2da2e02e2eb3
Author: Chancel Liu <chancel.liu@nxp.com>
Date:   Mon Dec 25 17:06:08 2023 +0900

    ASoC: fsl_rpmsg: Fix error handler with pm_runtime_enable
    
    [ Upstream commit f9d378fc68c43fd41b35133edec9cd902ec334ec ]
    
    There is error message when defer probe happens:
    
    fsl_rpmsg rpmsg_audio: Unbalanced pm_runtime_enable!
    
    Fix the error handler with pm_runtime_enable.
    
    Fixes: b73d9e6225e8 ("ASoC: fsl_rpmsg: Add CPU DAI driver for audio base on rpmsg")
    Signed-off-by: Chancel Liu <chancel.liu@nxp.com>
    Acked-by: Shengjiu Wang <shengjiu.wang@gmail.com>
    Link: https://lore.kernel.org/r/20231225080608.967953-1-chancel.liu@nxp.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1867a9094743e2e974e7560790d4b9c533ed88c0
Author: Kurt Kanzenbach <kurt@linutronix.de>
Date:   Wed Dec 6 15:07:18 2023 +0100

    igc: Check VLAN EtherType mask
    
    [ Upstream commit 7afd49a38e73afd57ff62c8d1cf5af760c4d49c0 ]
    
    Currently the driver accepts VLAN EtherType steering rules regardless of
    the configured mask. And things might fail silently or with confusing error
    messages to the user. The VLAN EtherType can only be matched by full
    mask. Therefore, add a check for that.
    
    For instance the following rule is invalid, but the driver accepts it and
    ignores the user specified mask:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |Added rule with ID 63
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 63
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        VLAN EtherType: 0x8100 mask: 0x0
    |        VLAN: 0x0 mask: 0xffff
    |        User-defined: 0x0 mask: 0xffffffffffffffff
    |        Action: Direct to queue 0
    
    After:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 \
    |             m 0x00ff action 0
    |rmgr: Cannot insert RX class rule: Operation not supported
    
    Fixes: 2b477d057e33 ("igc: Integrate flex filter into ethtool ops")
    Suggested-by: Suman Ghosh <sumang@marvell.com>
    Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit f24370ddf75d4efa34591fdccc4d9b7291055260
Author: Kurt Kanzenbach <kurt@linutronix.de>
Date:   Fri Dec 1 08:50:43 2023 +0100

    igc: Check VLAN TCI mask
    
    [ Upstream commit b5063cbe148b829e8eb97672c2cbccc058835476 ]
    
    Currently the driver accepts VLAN TCI steering rules regardless of the
    configured mask. And things might fail silently or with confusing error
    messages to the user.
    
    There are two ways to handle the VLAN TCI mask:
    
     1. Match on the PCP field using a VLAN prio filter
     2. Match on complete TCI field using a flex filter
    
    Therefore, add checks and code for that.
    
    For instance the following rule is invalid and will be converted into a
    VLAN prio rule which is not correct:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan 0x0001 m 0xf000 \
    |             action 1
    |Added rule with ID 61
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 61
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        VLAN EtherType: 0x0 mask: 0xffff
    |        VLAN: 0x1 mask: 0x1fff
    |        User-defined: 0x0 mask: 0xffffffffffffffff
    |        Action: Direct to queue 1
    
    After:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan 0x0001 m 0xf000 \
    |             action 1
    |rmgr: Cannot insert RX class rule: Operation not supported
    
    Fixes: 7991487ecb2d ("igc: Allow for Flex Filters to be installed")
    Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 4ec5efdb9034f0877f09564c45c5ba11c46328b6
Author: Kurt Kanzenbach <kurt@linutronix.de>
Date:   Fri Dec 1 08:50:42 2023 +0100

    igc: Report VLAN EtherType matching back to user
    
    [ Upstream commit 088464abd48cf3735aee91f9e211b32da9d81117 ]
    
    Currently the driver allows to configure matching by VLAN EtherType.
    However, the retrieval function does not report it back to the user. Add
    it.
    
    Before:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 action 0
    |Added rule with ID 63
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 63
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        Action: Direct to queue 0
    
    After:
    |root@host:~# ethtool -N enp3s0 flow-type ether vlan-etype 0x8100 action 0
    |Added rule with ID 63
    |root@host:~# ethtool --show-ntuple enp3s0
    |4 RX rings available
    |Total 1 rules
    |
    |Filter: 63
    |        Flow Type: Raw Ethernet
    |        Src MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Dest MAC addr: 00:00:00:00:00:00 mask: FF:FF:FF:FF:FF:FF
    |        Ethertype: 0x0 mask: 0xFFFF
    |        VLAN EtherType: 0x8100 mask: 0x0
    |        VLAN: 0x0 mask: 0xffff
    |        User-defined: 0x0 mask: 0xffffffffffffffff
    |        Action: Direct to queue 0
    
    Fixes: 2b477d057e33 ("igc: Integrate flex filter into ethtool ops")
    Signed-off-by: Kurt Kanzenbach <kurt@linutronix.de>
    Acked-by: Vinicius Costa Gomes <vinicius.gomes@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Naama Meir <naamax.meir@linux.intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit b17f8024a5f07a386bbaf5bd9d96b7dd0a942eb9
Author: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
Date:   Wed Nov 29 11:23:11 2023 +0100

    i40e: Fix filter input checks to prevent config with invalid values
    
    [ Upstream commit 3e48041d9820c17e0a51599d12e66c6e12a8d08d ]
    
    Prevent VF from configuring filters with unsupported actions or use
    REDIRECT action with invalid tc number. Current checks could cause
    out of bounds access on PF side.
    
    Fixes: e284fc280473 ("i40e: Add and delete cloud filter")
    Reviewed-by: Andrii Staikov <andrii.staikov@intel.com>
    Signed-off-by: Sudheer Mogilappagari <sudheer.mogilappagari@intel.com>
    Signed-off-by: Aleksandr Loktionov <aleksandr.loktionov@intel.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Tested-by: Bharathi Sreenivas <bharathi.sreenivas@intel.com>
    Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit def90597ef5b057f997acbd1e0b6d73b908b08d2
Author: Khaled Almahallawy <khaled.almahallawy@intel.com>
Date:   Wed Dec 13 13:15:42 2023 -0800

    drm/i915/dp: Fix passing the correct DPCD_REV for drm_dp_set_phy_test_pattern
    
    [ Upstream commit 2bd7a06a1208aaacb4e7a2a5436c23bce8d70801 ]
    
    Using link_status to get DPCD_REV fails when disabling/defaulting
    phy pattern. Use intel_dp->dpcd to access DPCD_REV correctly.
    
    Fixes: 8cdf72711928 ("drm/i915/dp: Program vswing, pre-emphasis, test-pattern")
    Cc: Jani Nikula <jani.nikula@intel.com>
    Cc: Imre Deak <imre.deak@intel.com>
    Cc: Lee Shawn C <shawn.c.lee@intel.com>
    Signed-off-by: Khaled Almahallawy <khaled.almahallawy@intel.com>
    Signed-off-by: Jani Nikula <jani.nikula@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231213211542.3585105-3-khaled.almahallawy@intel.com
    (cherry picked from commit 3ee302ec22d6e1d7d1e6d381b0d507ee80f2135c)
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a7b67635de1a0c4168c9b91877d7ecab1d2a3438
Author: Suman Ghosh <sumang@marvell.com>
Date:   Tue Dec 19 19:56:33 2023 +0530

    octeontx2-af: Fix marking couple of structure as __packed
    
    [ Upstream commit 0ee2384a5a0f3b4eeac8d10bb01a0609d245a4d1 ]
    
    Couple of structures was not marked as __packed. This patch
    fixes the same and mark them as __packed.
    
    Fixes: 42006910b5ea ("octeontx2-af: cleanup KPU config data")
    Signed-off-by: Suman Ghosh <sumang@marvell.com>
    Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 802af3c88ad1e5194bb1ff4f47aaabd9c94b83c6
Author: Siddh Raman Pant <code@siddh.me>
Date:   Tue Dec 19 23:19:43 2023 +0530

    nfc: llcp_core: Hold a ref to llcp_local->dev when holding a ref to llcp_local
    
    [ Upstream commit c95f919567d6f1914f13350af61a1b044ac85014 ]
    
    llcp_sock_sendmsg() calls nfc_llcp_send_ui_frame() which in turn calls
    nfc_alloc_send_skb(), which accesses the nfc_dev from the llcp_sock for
    getting the headroom and tailroom needed for skb allocation.
    
    Parallelly the nfc_dev can be freed, as the refcount is decreased via
    nfc_free_device(), leading to a UAF reported by Syzkaller, which can
    be summarized as follows:
    
    (1) llcp_sock_sendmsg() -> nfc_llcp_send_ui_frame()
            -> nfc_alloc_send_skb() -> Dereference *nfc_dev
    (2) virtual_ncidev_close() -> nci_free_device() -> nfc_free_device()
            -> put_device() -> nfc_release() -> Free *nfc_dev
    
    When a reference to llcp_local is acquired, we do not acquire the same
    for the nfc_dev. This leads to freeing even when the llcp_local is in
    use, and this is the case with the UAF described above too.
    
    Thus, when we acquire a reference to llcp_local, we should acquire a
    reference to nfc_dev, and release the references appropriately later.
    
    References for llcp_local is initialized in nfc_llcp_register_device()
    (which is called by nfc_register_device()). Thus, we should acquire a
    reference to nfc_dev there.
    
    nfc_unregister_device() calls nfc_llcp_unregister_device() which in
    turn calls nfc_llcp_local_put(). Thus, the reference to nfc_dev is
    appropriately released later.
    
    Reported-and-tested-by: syzbot+bbe84a4010eeea00982d@syzkaller.appspotmail.com
    Closes: https://syzkaller.appspot.com/bug?extid=bbe84a4010eeea00982d
    Fixes: c7aa12252f51 ("NFC: Take a reference on the LLCP local pointer when creating a socket")
    Reviewed-by: Suman Ghosh <sumang@marvell.com>
    Signed-off-by: Siddh Raman Pant <code@siddh.me>
    Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 5d3e98ef12f654ce58a83ca64e8178cfb5e0a935
Author: Douglas Anderson <dianders@chromium.org>
Date:   Thu Dec 14 12:37:52 2023 -0800

    drm/bridge: ti-sn65dsi86: Never store more than msg->size bytes in AUX xfer
    
    [ Upstream commit aca58eac52b88138ab98c814afb389a381725cd7 ]
    
    For aux reads, the value `msg->size` indicates the size of the buffer
    provided by `msg->buffer`. We should never in any circumstances write
    more bytes to the buffer since it may overflow the buffer.
    
    In the ti-sn65dsi86 driver there is one code path that reads the
    transfer length from hardware. Even though it's never been seen to be
    a problem, we should make extra sure that the hardware isn't
    increasing the length since doing so would cause us to overrun the
    buffer.
    
    Fixes: 982f589bde7a ("drm/bridge: ti-sn65dsi86: Update reply on aux failures")
    Reviewed-by: Stephen Boyd <swboyd@chromium.org>
    Reviewed-by: Guenter Roeck <groeck@chromium.org>
    Signed-off-by: Douglas Anderson <dianders@chromium.org>
    Link: https://patchwork.freedesktop.org/patch/msgid/20231214123752.v3.2.I7b83c0f31aeedc6b1dc98c7c741d3e1f94f040f8@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 2f8cefc8b6388ed0cb0e9fe38e424cd62b92f1a2
Author: Johannes Berg <johannes.berg@intel.com>
Date:   Fri Dec 15 11:13:34 2023 +0100

    wifi: iwlwifi: pcie: don't synchronize IRQs from IRQ
    
    [ Upstream commit 400f6ebbc175286576c7f7fddf3c347d09d12310 ]
    
    On older devices (before unified image!) we can end up calling
    stop_device from an rfkill interrupt. However, in stop_device
    we attempt to synchronize IRQs, which then of course deadlocks.
    
    Avoid this by checking the context, if running from the IRQ
    thread then don't synchronize. This wouldn't be correct on a
    new device since RSS is supported, but older devices only have
    a single interrupt/queue.
    
    Fixes: 37fb29bd1f90 ("wifi: iwlwifi: pcie: synchronize IRQs before NAPI")
    Reviewed-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
    Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
    Signed-off-by: Johannes Berg <johannes.berg@intel.com>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://msgid.link/20231215111335.59aab00baed7.Iadfe154d6248e7f9dfd69522e5429dbbd72925d7@changeid
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 1f2f662c8bec75d1311e063efaa9107435cf16c8
Author: Bjorn Helgaas <bhelgaas@google.com>
Date:   Mon Jan 1 12:08:18 2024 -0600

    Revert "PCI/ASPM: Remove pcie_aspm_pm_state_change()"
    
    commit f93e71aea6c60ebff8adbd8941e678302d377869 upstream.
    
    This reverts commit 08d0cc5f34265d1a1e3031f319f594bd1970976c.
    
    Michael reported that when attempting to resume from suspend to RAM on ASUS
    mini PC PN51-BB757MDE1 (DMI model: MINIPC PN51-E1), 08d0cc5f3426
    ("PCI/ASPM: Remove pcie_aspm_pm_state_change()") caused a 12-second delay
    with no output, followed by a reboot.
    
    Workarounds include:
    
      - Reverting 08d0cc5f3426 ("PCI/ASPM: Remove pcie_aspm_pm_state_change()")
      - Booting with "pcie_aspm=off"
      - Booting with "pcie_aspm.policy=performance"
      - "echo 0 | sudo tee /sys/bus/pci/devices/0000:03:00.0/link/l1_aspm"
        before suspending
      - Connecting a USB flash drive
    
    Link: https://lore.kernel.org/r/20240102232550.1751655-1-helgaas@kernel.org
    Fixes: 08d0cc5f3426 ("PCI/ASPM: Remove pcie_aspm_pm_state_change()")
    Reported-by: Michael Schaller <michael@5challer.de>
    Link: https://lore.kernel.org/r/76c61361-b8b4-435f-a9f1-32b716763d62@5challer.de
    Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 200cecd6ff1efb1806e7663739ef5aef10c94a46
Author: Siddhesh Dharme <siddheshdharme18@gmail.com>
Date:   Thu Jan 4 11:37:36 2024 +0530

    ALSA: hda/realtek: Fix mute and mic-mute LEDs for HP ProBook 440 G6
    
    commit b6ce6e6c79e4ec650887f1fe391a70e54972001a upstream.
    
    LEDs in 'HP ProBook 440 G6' laptop are controlled by ALC236 codec.
    Enable already existing quirk 'ALC236_FIXUP_HP_MUTE_LED_MICMUTE_VREF'
    to fix mute and mic-mute LEDs.
    
    Signed-off-by: Siddhesh Dharme <siddheshdharme18@gmail.com>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/20240104060736.5149-1-siddheshdharme18@gmail.com
    Signed-off-by: Takashi Iwai <tiwai@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 90ab9a70f0d82b3598c2874550acc66d480a48cf
Author: Sarthak Kukreti <sarthakkukreti@chromium.org>
Date:   Wed Oct 11 13:12:30 2023 -0700

    block: Don't invalidate pagecache for invalid falloc modes
    
    commit 1364a3c391aedfeb32aa025303ead3d7c91cdf9d upstream.
    
    Only call truncate_bdev_range() if the fallocate mode is supported. This
    fixes a bug where data in the pagecache could be invalidated if the
    fallocate() was called on the block device with an invalid mode.
    
    Fixes: 25f4c41415e5 ("block: implement (some of) fallocate for block devices")
    Cc: stable@vger.kernel.org
    Reported-by: "Darrick J. Wong" <djwong@kernel.org>
    Signed-off-by: Sarthak Kukreti <sarthakkukreti@chromium.org>
    Reviewed-by: Christoph Hellwig <hch@lst.de>
    Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
    Signed-off-by: Mike Snitzer <snitzer@kernel.org>
    Fixes: line?  I've never seen those wrapped.
    Link: https://lore.kernel.org/r/20231011201230.750105-1-sarthakkukreti@chromium.org
    Signed-off-by: Jens Axboe <axboe@kernel.dk>
    Signed-off-by: Sarthak Kukreti <sarthakkukreti@chromium.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c496c35310e67760678bd1c338a82908f00f3961
Author: Edward Adam Davis <eadavis@qq.com>
Date:   Sun Dec 24 00:02:49 2023 +0000

    keys, dns: Fix missing size check of V1 server-list header
    
    commit 1997b3cb4217b09e49659b634c94da47f0340409 upstream.
    
    The dns_resolver_preparse() function has a check on the size of the
    payload for the basic header of the binary-style payload, but is missing
    a check for the size of the V1 server-list payload header after
    determining that's what we've been given.
    
    Fix this by getting rid of the the pointer to the basic header and just
    assuming that we have a V1 server-list payload and moving the V1 server
    list pointer inside the if-statement.  Dealing with other types and
    versions can be left for when such have been defined.
    
    This can be tested by doing the following with KASAN enabled:
    
        echo -n -e '\x0\x0\x1\x2' | keyctl padd dns_resolver foo @p
    
    and produces an oops like the following:
    
        BUG: KASAN: slab-out-of-bounds in dns_resolver_preparse+0xc9f/0xd60 net/dns_resolver/dns_key.c:127
        Read of size 1 at addr ffff888028894084 by task syz-executor265/5069
        ...
        Call Trace:
          dns_resolver_preparse+0xc9f/0xd60 net/dns_resolver/dns_key.c:127
          __key_create_or_update+0x453/0xdf0 security/keys/key.c:842
          key_create_or_update+0x42/0x50 security/keys/key.c:1007
          __do_sys_add_key+0x29c/0x450 security/keys/keyctl.c:134
          do_syscall_x64 arch/x86/entry/common.c:52 [inline]
          do_syscall_64+0x40/0x110 arch/x86/entry/common.c:83
          entry_SYSCALL_64_after_hwframe+0x62/0x6a
    
    This patch was originally by Edward Adam Davis, but was modified by
    Linus.
    
    Fixes: b946001d3bb1 ("keys, dns: Allow key types (eg. DNS) to be reclaimed immediately on expiry")
    Reported-and-tested-by: syzbot+94bbb75204a05da3d89f@syzkaller.appspotmail.com
    Link: https://lore.kernel.org/r/0000000000009b39bc060c73e209@google.com/
    Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
    Signed-off-by: Edward Adam Davis <eadavis@qq.com>
    Signed-off-by: David Howells <dhowells@redhat.com>
    Tested-by: David Howells <dhowells@redhat.com>
    Cc: Edward Adam Davis <eadavis@qq.com>
    Cc: Jarkko Sakkinen <jarkko@kernel.org>
    Cc: Jeffrey E Altman <jaltman@auristor.com>
    Cc: Wang Lei <wang840925@gmail.com>
    Cc: Jeff Layton <jlayton@redhat.com>
    Cc: Steve French <sfrench@us.ibm.com>
    Cc: Marc Dionne <marc.dionne@auristor.com>
    Cc: "David S. Miller" <davem@davemloft.net>
    Cc: Eric Dumazet <edumazet@google.com>
    Cc: Jakub Kicinski <kuba@kernel.org>
    Cc: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Simon Horman <horms@kernel.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Jeffrey E Altman <jaltman@auristor.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>