commit 6eae1503ddf94b4c3581092d566b17ed12d80f20
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Thu Aug 11 13:06:47 2022 +0200

    Linux 5.10.136
    
    Link: https://lore.kernel.org/r/20220809175512.853274191@linuxfoundation.org
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Pavel Machek (CIP) <pavel@denx.de>
    Tested-by: Rudi Heitbaum <rudi@heitbaum.com>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Sudip Mukherjee <sudip.mukherjee@codethink.co.uk>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Jon Hunter <jonathanh@nvidia.com>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1bea03b44ea2267988cce064f5887b01d421b28c
Author: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
Date:   Tue Aug 2 15:47:02 2022 -0700

    x86/speculation: Add LFENCE to RSB fill sequence
    
    commit ba6e31af2be96c4d0536f2152ed6f7b6c11bca47 upstream.
    
    RSB fill sequence does not have any protection for miss-prediction of
    conditional branch at the end of the sequence. CPU can speculatively
    execute code immediately after the sequence, while RSB filling hasn't
    completed yet.
    
      #define __FILL_RETURN_BUFFER(reg, nr, sp)       \
              mov     $(nr/2), reg;                   \
      771:                                            \
              ANNOTATE_INTRA_FUNCTION_CALL;           \
              call    772f;                           \
      773:    /* speculation trap */                  \
              UNWIND_HINT_EMPTY;                      \
              pause;                                  \
              lfence;                                 \
              jmp     773b;                           \
      772:                                            \
              ANNOTATE_INTRA_FUNCTION_CALL;           \
              call    774f;                           \
      775:    /* speculation trap */                  \
              UNWIND_HINT_EMPTY;                      \
              pause;                                  \
              lfence;                                 \
              jmp     775b;                           \
      774:                                            \
              add     $(BITS_PER_LONG/8) * 2, sp;     \
              dec     reg;                            \
              jnz     771b;        <----- CPU can miss-predict here.
    
    Before RSB is filled, RETs that come in program order after this macro
    can be executed speculatively, making them vulnerable to RSB-based
    attacks.
    
    Mitigate it by adding an LFENCE after the conditional branch to prevent
    speculation while RSB is being filled.
    
    Suggested-by: Andrew Cooper <andrew.cooper3@citrix.com>
    Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 509c2c9fe75ea7493eebbb6bb2f711f37530ae19
Author: Daniel Sneddon <daniel.sneddon@linux.intel.com>
Date:   Tue Aug 2 15:47:01 2022 -0700

    x86/speculation: Add RSB VM Exit protections
    
    commit 2b1299322016731d56807aa49254a5ea3080b6b3 upstream.
    
    tl;dr: The Enhanced IBRS mitigation for Spectre v2 does not work as
    documented for RET instructions after VM exits. Mitigate it with a new
    one-entry RSB stuffing mechanism and a new LFENCE.
    
    == Background ==
    
    Indirect Branch Restricted Speculation (IBRS) was designed to help
    mitigate Branch Target Injection and Speculative Store Bypass, i.e.
    Spectre, attacks. IBRS prevents software run in less privileged modes
    from affecting branch prediction in more privileged modes. IBRS requires
    the MSR to be written on every privilege level change.
    
    To overcome some of the performance issues of IBRS, Enhanced IBRS was
    introduced.  eIBRS is an "always on" IBRS, in other words, just turn
    it on once instead of writing the MSR on every privilege level change.
    When eIBRS is enabled, more privileged modes should be protected from
    less privileged modes, including protecting VMMs from guests.
    
    == Problem ==
    
    Here's a simplification of how guests are run on Linux' KVM:
    
    void run_kvm_guest(void)
    {
            // Prepare to run guest
            VMRESUME();
            // Clean up after guest runs
    }
    
    The execution flow for that would look something like this to the
    processor:
    
    1. Host-side: call run_kvm_guest()
    2. Host-side: VMRESUME
    3. Guest runs, does "CALL guest_function"
    4. VM exit, host runs again
    5. Host might make some "cleanup" function calls
    6. Host-side: RET from run_kvm_guest()
    
    Now, when back on the host, there are a couple of possible scenarios of
    post-guest activity the host needs to do before executing host code:
    
    * on pre-eIBRS hardware (legacy IBRS, or nothing at all), the RSB is not
    touched and Linux has to do a 32-entry stuffing.
    
    * on eIBRS hardware, VM exit with IBRS enabled, or restoring the host
    IBRS=1 shortly after VM exit, has a documented side effect of flushing
    the RSB except in this PBRSB situation where the software needs to stuff
    the last RSB entry "by hand".
    
    IOW, with eIBRS supported, host RET instructions should no longer be
    influenced by guest behavior after the host retires a single CALL
    instruction.
    
    However, if the RET instructions are "unbalanced" with CALLs after a VM
    exit as is the RET in #6, it might speculatively use the address for the
    instruction after the CALL in #3 as an RSB prediction. This is a problem
    since the (untrusted) guest controls this address.
    
    Balanced CALL/RET instruction pairs such as in step #5 are not affected.
    
    == Solution ==
    
    The PBRSB issue affects a wide variety of Intel processors which
    support eIBRS. But not all of them need mitigation. Today,
    X86_FEATURE_RSB_VMEXIT triggers an RSB filling sequence that mitigates
    PBRSB. Systems setting RSB_VMEXIT need no further mitigation - i.e.,
    eIBRS systems which enable legacy IBRS explicitly.
    
    However, such systems (X86_FEATURE_IBRS_ENHANCED) do not set RSB_VMEXIT
    and most of them need a new mitigation.
    
    Therefore, introduce a new feature flag X86_FEATURE_RSB_VMEXIT_LITE
    which triggers a lighter-weight PBRSB mitigation versus RSB_VMEXIT.
    
    The lighter-weight mitigation performs a CALL instruction which is
    immediately followed by a speculative execution barrier (INT3). This
    steers speculative execution to the barrier -- just like a retpoline
    -- which ensures that speculation can never reach an unbalanced RET.
    Then, ensure this CALL is retired before continuing execution with an
    LFENCE.
    
    In other words, the window of exposure is opened at VM exit where RET
    behavior is troublesome. While the window is open, force RSB predictions
    sampling for RET targets to a dead end at the INT3. Close the window
    with the LFENCE.
    
    There is a subset of eIBRS systems which are not vulnerable to PBRSB.
    Add these systems to the cpu_vuln_whitelist[] as NO_EIBRS_PBRSB.
    Future systems that aren't vulnerable will set ARCH_CAP_PBRSB_NO.
    
      [ bp: Massage, incorporate review comments from Andy Cooper. ]
    
    Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
    Co-developed-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e5b556a7b2711a39e3aa13aeff26560c17417b8b
Author: Ning Qiang <sohu0106@126.com>
Date:   Wed Jul 13 23:37:34 2022 +0800

    macintosh/adb: fix oob read in do_adb_query() function
    
    commit fd97e4ad6d3b0c9fce3bca8ea8e6969d9ce7423b upstream.
    
    In do_adb_query() function of drivers/macintosh/adb.c, req->data is copied
    form userland. The parameter "req->data[2]" is missing check, the array
    size of adb_handler[] is 16, so adb_handler[req->data[2]].original_address and
    adb_handler[req->data[2]].handler_id will lead to oob read.
    
    Cc: stable <stable@kernel.org>
    Signed-off-by: Ning Qiang <sohu0106@126.com>
    Reviewed-by: Kees Cook <keescook@chromium.org>
    Reviewed-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Acked-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Link: https://lore.kernel.org/r/20220713153734.2248-1-sohu0106@126.com
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 75742ffc3630203e95844c72c7144f507e2a557d
Author: Hilda Wu <hildawu@realtek.com>
Date:   Thu Jul 14 19:25:23 2022 +0800

    Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3586
    
    commit 6ad353dfc8ee3230a5e123c21da50f1b64cc4b39 upstream.
    
    Add the support ID(0x13D3, 0x3586) to usb_device_id table for
    Realtek RTL8852C.
    
    The device info from /sys/kernel/debug/usb/devices as below.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=13d3 ProdID=3586 Rev= 0.00
    S:  Manufacturer=Realtek
    S:  Product=Bluetooth Radio
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Hilda Wu <hildawu@realtek.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 40e2e7f1bf0301d1ed7437b10d9e1c92cb51bf81
Author: Hilda Wu <hildawu@realtek.com>
Date:   Thu Jul 14 19:25:22 2022 +0800

    Bluetooth: btusb: Add Realtek RTL8852C support ID 0x13D3:0x3587
    
    commit 8f0054dd29373cd877db87751c143610561d549d upstream.
    
    Add the support ID(0x13D3, 0x3587) to usb_device_id table for
    Realtek RTL8852C.
    
    The device info from /sys/kernel/debug/usb/devices as below.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=13d3 ProdID=3587 Rev= 0.00
    S:  Manufacturer=Realtek
    S:  Product=Bluetooth Radio
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Hilda Wu <hildawu@realtek.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 9c45bb363e26e86ebaf20f6d2009bedf19fc0d39
Author: Hilda Wu <hildawu@realtek.com>
Date:   Thu Jul 14 19:25:21 2022 +0800

    Bluetooth: btusb: Add Realtek RTL8852C support ID 0x0CB8:0xC558
    
    commit 5b75ee37ebb73f58468d4cca172434324af203f1 upstream.
    
    Add the support ID(0x0CB8, 0xC558) to usb_device_id table for
    Realtek RTL8852C.
    
    The device info from /sys/kernel/debug/usb/devices as below.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=0cb8 ProdID=c558 Rev= 0.00
    S:  Manufacturer=Realtek
    S:  Product=Bluetooth Radio
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Hilda Wu <hildawu@realtek.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 3a292cb18132cb7af3a146613f1c9a47ef6f8463
Author: Hilda Wu <hildawu@realtek.com>
Date:   Thu Jul 14 19:25:20 2022 +0800

    Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04C5:0x1675
    
    commit 893fa8bc9952a36fb682ee12f0a994b5817a36d2 upstream.
    
    Add the support ID(0x04c5, 0x1675) to usb_device_id table for
    Realtek RTL8852C.
    
    The device info from /sys/kernel/debug/usb/devices as below.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=04c5 ProdID=1675 Rev= 0.00
    S:  Manufacturer=Realtek
    S:  Product=Bluetooth Radio
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Hilda Wu <hildawu@realtek.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1a2a2e34569cf85cad743ee8095d07c3cba5473b
Author: Hilda Wu <hildawu@realtek.com>
Date:   Thu Jul 14 19:25:19 2022 +0800

    Bluetooth: btusb: Add Realtek RTL8852C support ID 0x04CA:0x4007
    
    commit c379c96cc221767af9688a5d4758a78eea30883a upstream.
    
    Add the support ID(0x04CA, 0x4007) to usb_device_id table for
    Realtek RTL8852C.
    
    The device info from /sys/kernel/debug/usb/devices as below.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
    D:  Ver= 1.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=04ca ProdID=4007 Rev= 0.00
    S:  Manufacturer=Realtek
    S:  Product=Bluetooth Radio
    S:  SerialNumber=00e04c000001
    C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=500mA
    I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
    E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
    I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
    I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
    I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
    I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
    I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
    
    Signed-off-by: Hilda Wu <hildawu@realtek.com>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e81f95d03060090c4bd4d1d7cea15fb9542224ba
Author: Aaron Ma <aaron.ma@canonical.com>
Date:   Thu Jun 2 17:28:22 2022 +0800

    Bluetooth: btusb: Add support of IMC Networks PID 0x3568
    
    commit c69ecb0ea4c96b8b191cbaa0b420222a37867655 upstream.
    
    It is 13d3:3568 for MediaTek MT7922 USB Bluetooth chip.
    
    T:  Bus=03 Lev=01 Prnt=01 Port=02 Cnt=01 Dev#=  2 Spd=480 MxCh= 0
    D:  Ver= 2.10 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
    P:  Vendor=13d3 ProdID=3568 Rev=01.00
    S:  Manufacturer=MediaTek Inc.
    S:  Product=Wireless_Device
    S:  SerialNumber=...
    C:  #Ifs= 3 Cfg#= 1 Atr=e0 MxPwr=100mA
    I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=125us
    E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
    E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
    I:  If#= 2 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=(none)
    E:  Ad=0a(O) Atr=03(Int.) MxPS=  64 Ivl=125us
    E:  Ad=8a(I) Atr=03(Int.) MxPS=  64 Ivl=125us
    
    Signed-off-by: Aaron Ma <aaron.ma@canonical.com>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 918ce738e28bb79d84dd208ff9b5dacd8f533058
Author: Hakan Jansson <hakan.jansson@infineon.com>
Date:   Thu Jun 30 14:45:22 2022 +0200

    Bluetooth: hci_bcm: Add DT compatible for CYW55572
    
    commit f8cad62002a7699fd05a23b558b980b5a77defe0 upstream.
    
    CYW55572 is a Wi-Fi + Bluetooth combo device from Infineon.
    
    Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 033a4455d9d6ccba0f8acbf297d3094b78ee409e
Author: Ahmad Fatoum <a.fatoum@pengutronix.de>
Date:   Tue May 24 07:56:41 2022 +0200

    Bluetooth: hci_bcm: Add BCM4349B1 variant
    
    commit 4f17c2b6694d0c4098f33b07ee3a696976940aa5 upstream.
    
    The BCM4349B1, aka CYW/BCM89359, is a WiFi+BT chip and its Bluetooth
    portion can be controlled over serial.
    
    Two subversions are added for the chip, because ROM firmware reports
    002.002.013 (at least for the chips I have here), while depending on
    patchram firmware revision, either 002.002.013 or 002.002.014 is
    reported.
    
    Signed-off-by: Ahmad Fatoum <a.fatoum@pengutronix.de>
    Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
    Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 50763f0ac0706e63c0ba550adccfca25eb3d0667
Author: Raghavendra Rao Ananta <rananta@google.com>
Date:   Wed Jun 15 18:57:06 2022 +0000

    selftests: KVM: Handle compiler optimizations in ucall
    
    [ Upstream commit 9e2f6498efbbc880d7caa7935839e682b64fe5a6 ]
    
    The selftests, when built with newer versions of clang, is found
    to have over optimized guests' ucall() function, and eliminating
    the stores for uc.cmd (perhaps due to no immediate readers). This
    resulted in the userspace side always reading a value of '0', and
    causing multiple test failures.
    
    As a result, prevent the compiler from optimizing the stores in
    ucall() with WRITE_ONCE().
    
    Suggested-by: Ricardo Koller <ricarkol@google.com>
    Suggested-by: Reiji Watanabe <reijiw@google.com>
    Signed-off-by: Raghavendra Rao Ananta <rananta@google.com>
    Message-Id: <20220615185706.1099208-1-rananta@google.com>
    Reviewed-by: Andrew Jones <drjones@redhat.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit a56e1ccdb7bb455d0b23a7b4de0016153d513aae
Author: Dmitry Klochkov <kdmitry556@gmail.com>
Date:   Tue Jun 14 15:11:41 2022 +0300

    tools/kvm_stat: fix display of error when multiple processes are found
    
    [ Upstream commit 933b5f9f98da29af646b51b36a0753692908ef64 ]
    
    Instead of printing an error message, kvm_stat script fails when we
    restrict statistics to a guest by its name and there are multiple guests
    with such name:
    
      # kvm_stat -g my_vm
      Traceback (most recent call last):
        File "/usr/bin/kvm_stat", line 1819, in <module>
          main()
        File "/usr/bin/kvm_stat", line 1779, in main
          options = get_options()
        File "/usr/bin/kvm_stat", line 1718, in get_options
          options = argparser.parse_args()
        File "/usr/lib64/python3.10/argparse.py", line 1825, in parse_args
          args, argv = self.parse_known_args(args, namespace)
        File "/usr/lib64/python3.10/argparse.py", line 1858, in parse_known_args
          namespace, args = self._parse_known_args(args, namespace)
        File "/usr/lib64/python3.10/argparse.py", line 2067, in _parse_known_args
          start_index = consume_optional(start_index)
        File "/usr/lib64/python3.10/argparse.py", line 2007, in consume_optional
          take_action(action, args, option_string)
        File "/usr/lib64/python3.10/argparse.py", line 1935, in take_action
          action(self, namespace, argument_values, option_string)
        File "/usr/bin/kvm_stat", line 1649, in __call__
          ' to specify the desired pid'.format(" ".join(pids)))
      TypeError: sequence item 0: expected str instance, int found
    
    To avoid this, it's needed to convert pids int values to strings before
    pass them to join().
    
    Signed-off-by: Dmitry Klochkov <kdmitry556@gmail.com>
    Message-Id: <20220614121141.160689-1-kdmitry556@gmail.com>
    Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>

commit 3c77292d52b341831cb09c24ca4112a1e4f9e91f
Author: GUO Zihua <guozihua@huawei.com>
Date:   Fri Jul 22 14:31:57 2022 +0800

    crypto: arm64/poly1305 - fix a read out-of-bound
    
    commit 7ae19d422c7da84b5f13bc08b98bd737a08d3a53 upstream.
    
    A kasan error was reported during fuzzing:
    
    BUG: KASAN: slab-out-of-bounds in neon_poly1305_blocks.constprop.0+0x1b4/0x250 [poly1305_neon]
    Read of size 4 at addr ffff0010e293f010 by task syz-executor.5/1646715
    CPU: 4 PID: 1646715 Comm: syz-executor.5 Kdump: loaded Not tainted 5.10.0.aarch64 #1
    Hardware name: Huawei TaiShan 2280 /BC11SPCD, BIOS 1.59 01/31/2019
    Call trace:
     dump_backtrace+0x0/0x394
     show_stack+0x34/0x4c arch/arm64/kernel/stacktrace.c:196
     __dump_stack lib/dump_stack.c:77 [inline]
     dump_stack+0x158/0x1e4 lib/dump_stack.c:118
     print_address_description.constprop.0+0x68/0x204 mm/kasan/report.c:387
     __kasan_report+0xe0/0x140 mm/kasan/report.c:547
     kasan_report+0x44/0xe0 mm/kasan/report.c:564
     check_memory_region_inline mm/kasan/generic.c:187 [inline]
     __asan_load4+0x94/0xd0 mm/kasan/generic.c:252
     neon_poly1305_blocks.constprop.0+0x1b4/0x250 [poly1305_neon]
     neon_poly1305_do_update+0x6c/0x15c [poly1305_neon]
     neon_poly1305_update+0x9c/0x1c4 [poly1305_neon]
     crypto_shash_update crypto/shash.c:131 [inline]
     shash_finup_unaligned+0x84/0x15c crypto/shash.c:179
     crypto_shash_finup+0x8c/0x140 crypto/shash.c:193
     shash_digest_unaligned+0xb8/0xe4 crypto/shash.c:201
     crypto_shash_digest+0xa4/0xfc crypto/shash.c:217
     crypto_shash_tfm_digest+0xb4/0x150 crypto/shash.c:229
     essiv_skcipher_setkey+0x164/0x200 [essiv]
     crypto_skcipher_setkey+0xb0/0x160 crypto/skcipher.c:612
     skcipher_setkey+0x3c/0x50 crypto/algif_skcipher.c:305
     alg_setkey+0x114/0x2a0 crypto/af_alg.c:220
     alg_setsockopt+0x19c/0x210 crypto/af_alg.c:253
     __sys_setsockopt+0x190/0x2e0 net/socket.c:2123
     __do_sys_setsockopt net/socket.c:2134 [inline]
     __se_sys_setsockopt net/socket.c:2131 [inline]
     __arm64_sys_setsockopt+0x78/0x94 net/socket.c:2131
     __invoke_syscall arch/arm64/kernel/syscall.c:36 [inline]
     invoke_syscall+0x64/0x100 arch/arm64/kernel/syscall.c:48
     el0_svc_common.constprop.0+0x220/0x230 arch/arm64/kernel/syscall.c:155
     do_el0_svc+0xb4/0xd4 arch/arm64/kernel/syscall.c:217
     el0_svc+0x24/0x3c arch/arm64/kernel/entry-common.c:353
     el0_sync_handler+0x160/0x164 arch/arm64/kernel/entry-common.c:369
     el0_sync+0x160/0x180 arch/arm64/kernel/entry.S:683
    
    This error can be reproduced by the following code compiled as ko on a
    system with kasan enabled:
    
    #include <linux/module.h>
    #include <linux/crypto.h>
    #include <crypto/hash.h>
    #include <crypto/poly1305.h>
    
    char test_data[] = "\x00\x01\x02\x03\x04\x05\x06\x07"
                       "\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f"
                       "\x10\x11\x12\x13\x14\x15\x16\x17"
                       "\x18\x19\x1a\x1b\x1c\x1d\x1e";
    
    int init(void)
    {
            struct crypto_shash *tfm = NULL;
            char *data = NULL, *out = NULL;
    
            tfm = crypto_alloc_shash("poly1305", 0, 0);
            data = kmalloc(POLY1305_KEY_SIZE - 1, GFP_KERNEL);
            out = kmalloc(POLY1305_DIGEST_SIZE, GFP_KERNEL);
            memcpy(data, test_data, POLY1305_KEY_SIZE - 1);
            crypto_shash_tfm_digest(tfm, data, POLY1305_KEY_SIZE - 1, out);
    
            kfree(data);
            kfree(out);
            return 0;
    }
    
    void deinit(void)
    {
    }
    
    module_init(init)
    module_exit(deinit)
    MODULE_LICENSE("GPL");
    
    The root cause of the bug sits in neon_poly1305_blocks. The logic
    neon_poly1305_blocks() performed is that if it was called with both s[]
    and r[] uninitialized, it will first try to initialize them with the
    data from the first "block" that it believed to be 32 bytes in length.
    First 16 bytes are used as the key and the next 16 bytes for s[]. This
    would lead to the aforementioned read out-of-bound. However, after
    calling poly1305_init_arch(), only 16 bytes were deducted from the input
    and s[] is initialized yet again with the following 16 bytes. The second
    initialization of s[] is certainly redundent which indicates that the
    first initialization should be for r[] only.
    
    This patch fixes the issue by calling poly1305_init_arm64() instead of
    poly1305_init_arch(). This is also the implementation for the same
    algorithm on arm platform.
    
    Fixes: f569ca164751 ("crypto: arm64/poly1305 - incorporate OpenSSL/CRYPTOGAMS NEON implementation")
    Cc: stable@vger.kernel.org
    Signed-off-by: GUO Zihua <guozihua@huawei.com>
    Reviewed-by: Eric Biggers <ebiggers@google.com>
    Acked-by: Will Deacon <will@kernel.org>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e2c63e1afdb30d71d7b96c5d776bfc9761bba666
Author: Tony Luck <tony.luck@intel.com>
Date:   Wed Jun 22 10:09:06 2022 -0700

    ACPI: APEI: Better fix to avoid spamming the console with old error logs
    
    commit c3481b6b75b4797657838f44028fd28226ab48e0 upstream.
    
    The fix in commit 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT
    table data") does not work as intended on systems where the BIOS has a
    fixed size block of memory for the BERT table, relying on s/w to quit
    when it finds a record with estatus->block_status == 0. On these systems
    all errors are suppressed because the check:
    
            if (region_len < ACPI_BERT_PRINT_MAX_LEN)
    
    always fails.
    
    New scheme skips individual CPER records that are too large, and also
    limits the total number of records that will be printed to 5.
    
    Fixes: 3f8dec116210 ("ACPI/APEI: Limit printable size of BERT table data")
    Cc: All applicable <stable@vger.kernel.org>
    Signed-off-by: Tony Luck <tony.luck@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 6ccff35588d22bcd7e797163434a796baa540a94
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Thu Jul 7 20:09:53 2022 +0200

    ACPI: video: Shortening quirk list by identifying Clevo by board_name only
    
    commit f0341e67b3782603737f7788e71bd3530012a4f4 upstream.
    
    Taking a recent change in the i8042 quirklist to this one: Clevo
    board_names are somewhat unique, and if not: The generic Board_-/Sys_Vendor
    string "Notebook" doesn't help much anyway. So identifying the devices just
    by the board_name helps keeping the list significantly shorter and might
    even hit more devices requiring the fix.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Fixes: c844d22fe0c0 ("ACPI: video: Force backlight native for Clevo NL5xRU and NL5xNU")
    Cc: All applicable <stable@vger.kernel.org>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a2b472b152f9e407f013486dd1673e6c3b6f1fd5
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Thu Jul 7 20:09:52 2022 +0200

    ACPI: video: Force backlight native for some TongFang devices
    
    commit c752089f7cf5b5800c6ace4cdd1a8351ee78a598 upstream.
    
    The TongFang PF5PU1G, PF4NU1F, PF5NU1G, and PF5LUXG/TUXEDO BA15 Gen10,
    Pulse 14/15 Gen1, and Pulse 15 Gen2 have the same problem as the Clevo
    NL5xRU and NL5xNU/TUXEDO Aura 15 Gen1 and Gen2:
    They have a working native and video interface. However the default
    detection mechanism first registers the video interface before
    unregistering it again and switching to the native interface during boot.
    This results in a dangling SBIOS request for backlight change for some
    reason, causing the backlight to switch to ~2% once per boot on the first
    power cord connect or disconnect event. Setting the native interface
    explicitly circumvents this buggy behaviour by avoiding the unregistering
    process.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Cc: All applicable <stable@vger.kernel.org>
    Reviewed-by: Hans de Goede <hdegoede@redhat.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit a01a4e9f5dc93335c716fa4023b1901956e8c904
Author: George Kennedy <george.kennedy@oracle.com>
Date:   Thu Dec 16 13:25:32 2021 -0500

    tun: avoid double free in tun_free_netdev
    
    commit 158b515f703e75e7d68289bf4d98c664e1d632df upstream.
    
    Avoid double free in tun_free_netdev() by moving the
    dev->tstats and tun->security allocs to a new ndo_init routine
    (tun_net_init()) that will be called by register_netdevice().
    ndo_init is paired with the desctructor (tun_free_netdev()),
    so if there's an error in register_netdevice() the destructor
    will handle the frees.
    
    BUG: KASAN: double-free or invalid-free in selinux_tun_dev_free_security+0x1a/0x20 security/selinux/hooks.c:5605
    
    CPU: 0 PID: 25750 Comm: syz-executor416 Not tainted 5.16.0-rc2-syzk #1
    Hardware name: Red Hat KVM, BIOS
    Call Trace:
    <TASK>
    __dump_stack lib/dump_stack.c:88 [inline]
    dump_stack_lvl+0x89/0xb5 lib/dump_stack.c:106
    print_address_description.constprop.9+0x28/0x160 mm/kasan/report.c:247
    kasan_report_invalid_free+0x55/0x80 mm/kasan/report.c:372
    ____kasan_slab_free mm/kasan/common.c:346 [inline]
    __kasan_slab_free+0x107/0x120 mm/kasan/common.c:374
    kasan_slab_free include/linux/kasan.h:235 [inline]
    slab_free_hook mm/slub.c:1723 [inline]
    slab_free_freelist_hook mm/slub.c:1749 [inline]
    slab_free mm/slub.c:3513 [inline]
    kfree+0xac/0x2d0 mm/slub.c:4561
    selinux_tun_dev_free_security+0x1a/0x20 security/selinux/hooks.c:5605
    security_tun_dev_free_security+0x4f/0x90 security/security.c:2342
    tun_free_netdev+0xe6/0x150 drivers/net/tun.c:2215
    netdev_run_todo+0x4df/0x840 net/core/dev.c:10627
    rtnl_unlock+0x13/0x20 net/core/rtnetlink.c:112
    __tun_chr_ioctl+0x80c/0x2870 drivers/net/tun.c:3302
    tun_chr_ioctl+0x2f/0x40 drivers/net/tun.c:3311
    vfs_ioctl fs/ioctl.c:51 [inline]
    __do_sys_ioctl fs/ioctl.c:874 [inline]
    __se_sys_ioctl fs/ioctl.c:860 [inline]
    __x64_sys_ioctl+0x19d/0x220 fs/ioctl.c:860
    do_syscall_x64 arch/x86/entry/common.c:50 [inline]
    do_syscall_64+0x3a/0x80 arch/x86/entry/common.c:80
    entry_SYSCALL_64_after_hwframe+0x44/0xae
    
    Reported-by: syzkaller <syzkaller@googlegroups.com>
    Signed-off-by: George Kennedy <george.kennedy@oracle.com>
    Suggested-by: Jakub Kicinski <kuba@kernel.org>
    Link: https://lore.kernel.org/r/1639679132-19884-1-git-send-email-george.kennedy@oracle.com
    Signed-off-by: Jakub Kicinski <kuba@kernel.org>
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 1069087e2fb11f5fe61f68d83762cf01a25d8061
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Mon Aug 1 17:57:03 2022 +0300

    selftests/bpf: Check dst_port only on the client socket
    
    commit 2d2202ba858c112b03f84d546e260c61425831a1 upstream.
    
    cgroup_skb/egress programs which sock_fields test installs process packets
    flying in both directions, from the client to the server, and in reverse
    direction.
    
    Recently added dst_port check relies on the fact that destination
    port (remote peer port) of the socket which sends the packet is known ahead
    of time. This holds true only for the client socket, which connects to the
    known server port.
    
    Filter out any traffic that is not egressing from the client socket in the
    BPF program that tests reading the dst_port.
    
    Fixes: 8f50f16ff39d ("selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads")
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
    Acked-by: Martin KaFai Lau <kafai@fb.com>
    Link: https://lore.kernel.org/bpf/20220317113920.1068535-3-jakub@cloudflare.com
    Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 042fb1c281f357d58308366b5e2ddd8e5f1ad384
Author: Jakub Sitnicki <jakub@cloudflare.com>
Date:   Mon Aug 1 17:57:02 2022 +0300

    selftests/bpf: Extend verifier and bpf_sock tests for dst_port loads
    
    commit 8f50f16ff39dd4e2d43d1548ca66925652f8aff7 upstream.
    
    Add coverage to the verifier tests and tests for reading bpf_sock fields to
    ensure that 32-bit, 16-bit, and 8-bit loads from dst_port field are allowed
    only at intended offsets and produce expected values.
    
    While 16-bit and 8-bit access to dst_port field is straight-forward, 32-bit
    wide loads need be allowed and produce a zero-padded 16-bit value for
    backward compatibility.
    
    Signed-off-by: Jakub Sitnicki <jakub@cloudflare.com>
    Link: https://lore.kernel.org/r/20220130115518.213259-3-jakub@cloudflare.com
    Signed-off-by: Alexei Starovoitov <ast@kernel.org>
    [OP: backport to 5.10: adjusted context in sock_fields.c]
    Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 78c8397132dd4735ac6a7b5a651302f0b9f264ad
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Aug 1 18:59:08 2022 +0300

    ath9k_htc: fix NULL pointer dereference at ath9k_htc_tx_get_packet()
    
    commit 8b3046abc99eefe11438090bcc4ec3a3994b55d0 upstream.
    
    syzbot is reporting lockdep warning at ath9k_wmi_event_tasklet() followed
    by kernel panic at get_htc_epid_queue() from ath9k_htc_tx_get_packet() from
    ath9k_htc_txstatus() [1], for ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID)
    depends on spin_lock_init() from ath9k_init_priv() being already completed.
    
    Since ath9k_wmi_event_tasklet() is set by ath9k_init_wmi() from
    ath9k_htc_probe_device(), it is possible that ath9k_wmi_event_tasklet() is
    called via tasklet interrupt before spin_lock_init() from ath9k_init_priv()
     from ath9k_init_device() from ath9k_htc_probe_device() is called.
    
    Let's hold ath9k_wmi_event_tasklet(WMI_TXSTATUS_EVENTID) no-op until
    ath9k_tx_init() completes.
    
    Link: https://syzkaller.appspot.com/bug?extid=31d54c60c5b254d6f75b [1]
    Reported-by: syzbot <syzbot+31d54c60c5b254d6f75b@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: syzbot <syzbot+31d54c60c5b254d6f75b@syzkaller.appspotmail.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/77b76ac8-2bee-6444-d26c-8c30858b8daa@i-love.sakura.ne.jp
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 4f3b852336602ee37876494077efb3f23afd5ba3
Author: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
Date:   Mon Aug 1 18:59:07 2022 +0300

    ath9k_htc: fix NULL pointer dereference at ath9k_htc_rxep()
    
    commit b0ec7e55fce65f125bd1d7f02e2dc4de62abee34 upstream.
    
    syzbot is reporting lockdep warning followed by kernel panic at
    ath9k_htc_rxep() [1], for ath9k_htc_rxep() depends on ath9k_rx_init()
    being already completed.
    
    Since ath9k_htc_rxep() is set by ath9k_htc_connect_svc(WMI_BEACON_SVC)
     from ath9k_init_htc_services(), it is possible that ath9k_htc_rxep() is
    called via timer interrupt before ath9k_rx_init() from ath9k_init_device()
    is called.
    
    Since we can't call ath9k_init_device() before ath9k_init_htc_services(),
    let's hold ath9k_htc_rxep() no-op until ath9k_rx_init() completes.
    
    Link: https://syzkaller.appspot.com/bug?extid=4d2d56175b934b9a7bf9 [1]
    Reported-by: syzbot <syzbot+4d2d56175b934b9a7bf9@syzkaller.appspotmail.com>
    Signed-off-by: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Tested-by: syzbot <syzbot+4d2d56175b934b9a7bf9@syzkaller.appspotmail.com>
    Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
    Link: https://lore.kernel.org/r/2b88f416-b2cb-7a18-d688-951e6dc3fe92@i-love.sakura.ne.jp
    Signed-off-by: Fedor Pchelkin <pchelkin@ispras.ru>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 45b69848a2fea11c03f3a54241416e36eb94e38c
Author: Ben Hutchings <ben@decadent.org.uk>
Date:   Sat Jul 23 17:22:47 2022 +0200

    x86/speculation: Make all RETbleed mitigations 64-bit only
    
    commit b648ab487f31bc4c38941bc770ea97fe394304bb upstream.
    
    The mitigations for RETBleed are currently ineffective on x86_32 since
    entry_32.S does not use the required macros.  However, for an x86_32
    target, the kconfig symbols for them are still enabled by default and
    /sys/devices/system/cpu/vulnerabilities/retbleed will wrongly report
    that mitigations are in place.
    
    Make all of these symbols depend on X86_64, and only enable RETHUNK by
    default on X86_64.
    
    Fixes: f43b9876e857 ("x86/retbleed: Add fine grained Kconfig knobs")
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Borislav Petkov <bp@suse.de>
    Cc: <stable@vger.kernel.org>
    Link: https://lore.kernel.org/r/YtwSR3NNsWp1ohfV@decadent.org.uk
    [bwh: Backported to 5.10/5.15/5.18: adjust context]
    Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>