commit ca48fc16c49388400eddd6c6614593ebf7c7726a
Author: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Date:   Mon May 1 08:26:28 2023 +0900

    Linux 6.1.27
    
    Link: https://lore.kernel.org/r/20230428112040.063291126@linuxfoundation.org
    Tested-by: Markus Reichelt <lkt+2023@mareichelt.com>
    Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
    Tested-by: Shuah Khan <skhan@linuxfoundation.org>
    Tested-by: Guenter Roeck <linux@roeck-us.net>
    Tested-by: Ron Economos <re@w6rz.net>
    Tested-by: Bagas Sanjaya <bagasdotme@gmail.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Tested-by: Takeshi Ogasawara <takeshi.ogasawara@futuring-girl.com>
    Tested-by: Salvatore Bonaccorso <carnil@debian.org>
    Tested-by: Florian Fainelli <f.fainelli@gmail.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 0bbec73fdd9ea21090b7c14a957060c1b1982893
Author: Alexandre Ghiti <alexghiti@rivosinc.com>
Date:   Fri Apr 28 12:29:28 2023 +0200

    riscv: No need to relocate the dtb as it lies in the fixmap region
    
    commit 1b50f956c8fe9082bdee4a9cfd798149c52f7043 upstream.
    
    We used to access the dtb via its linear mapping address but now that the
    dtb early mapping was moved in the fixmap region, we can keep using this
    address since it is present in swapper_pg_dir, and remove the dtb
    relocation.
    
    Note that the relocation was wrong anyway since early_memremap() is
    restricted to 256K whereas the maximum fdt size is 2MB.
    
    Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/20230329081932.79831-4-alexghiti@rivosinc.com
    Cc: stable@vger.kernel.org # 6.1.x
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17509e73ac8b08b677b6d704b7a7d7e822dce20f
Author: Alexandre Ghiti <alexghiti@rivosinc.com>
Date:   Fri Apr 28 12:29:27 2023 +0200

    riscv: Do not set initial_boot_params to the linear address of the dtb
    
    commit f1581626071c8e37c58c5e8f0b4126b17172a211 upstream.
    
    early_init_dt_verify() is already called in parse_dtb() and since the dtb
    address does not change anymore (it is now in the fixmap region), no need
    to reset initial_boot_params by calling early_init_dt_verify() again.
    
    Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Link: https://lore.kernel.org/r/20230329081932.79831-3-alexghiti@rivosinc.com
    Cc: stable@vger.kernel.org # 6.1.x
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ed96b3143540966e1a730b2583f58779b2dbdbe3
Author: Alexandre Ghiti <alexghiti@rivosinc.com>
Date:   Fri Apr 28 12:29:26 2023 +0200

    riscv: Move early dtb mapping into the fixmap region
    
    commit ef69d2559fe91f23d27a3d6fd640b5641787d22e upstream.
    
    riscv establishes 2 virtual mappings:
    
    - early_pg_dir maps the kernel which allows to discover the system
      memory
    - swapper_pg_dir installs the final mapping (linear mapping included)
    
    We used to map the dtb in early_pg_dir using DTB_EARLY_BASE_VA, and this
    mapping was not carried over in swapper_pg_dir. It happens that
    early_init_fdt_scan_reserved_mem() must be called before swapper_pg_dir is
    setup otherwise we could allocate reserved memory defined in the dtb.
    And this function initializes reserved_mem variable with addresses that
    lie in the early_pg_dir dtb mapping: when those addresses are reused
    with swapper_pg_dir, this mapping does not exist and then we trap.
    
    The previous "fix" was incorrect as early_init_fdt_scan_reserved_mem()
    must be called before swapper_pg_dir is set up otherwise we could
    allocate in reserved memory defined in the dtb.
    
    So move the dtb mapping in the fixmap region which is established in
    early_pg_dir and handed over to swapper_pg_dir.
    
    This patch had to be backported because:
    - the documentation for sv57 is not present here (as sv48/57 are not
      present)
    
    Fixes: 922b0375fc93 ("riscv: Fix memblock reservation for device tree blob")
    Fixes: 8f3a2b4a96dc ("RISC-V: Move DT mapping outof fixmap")
    Fixes: 50e63dd8ed92 ("riscv: fix reserved memory setup")
    Reported-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/all/f8e67f82-103d-156c-deb0-d6d6e2756f5e@microchip.com/
    Signed-off-by: Alexandre Ghiti <alexghiti@rivosinc.com>
    Reviewed-by: Conor Dooley <conor.dooley@microchip.com>
    Tested-by: Conor Dooley <conor.dooley@microchip.com>
    Link: https://lore.kernel.org/r/20230329081932.79831-2-alexghiti@rivosinc.com
    Cc: stable@vger.kernel.org # 6.1.x
    Signed-off-by: Palmer Dabbelt <palmer@rivosinc.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7cb8c95c0a6d6ffedebb815b2bdde849cc98d9c1
Author: Stephen Boyd <swboyd@chromium.org>
Date:   Wed Apr 12 15:58:42 2023 -0700

    driver core: Don't require dynamic_debug for initcall_debug probe timing
    
    commit e2f06aa885081e1391916367f53bad984714b4db upstream.
    
    Don't require the use of dynamic debug (or modification of the kernel to
    add a #define DEBUG to the top of this file) to get the printk message
    about driver probe timing. This printk is only emitted when
    initcall_debug is enabled on the kernel commandline, and it isn't
    immediately obvious that you have to do something else to debug boot
    timing issues related to driver probe. Add a comment too so it doesn't
    get converted back to pr_debug().
    
    Fixes: eb7fbc9fb118 ("driver core: Add missing '\n' in log messages")
    Cc: stable <stable@kernel.org>
    Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
    Cc: Brian Norris <briannorris@chromium.org>
    Reviewed-by: Brian Norris <briannorris@chromium.org>
    Acked-by: Randy Dunlap <rdunlap@infradead.org>
    Signed-off-by: Stephen Boyd <swboyd@chromium.org>
    Link: https://lore.kernel.org/r/20230412225842.3196599-1-swboyd@chromium.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit ce0555352a281239c5d6ef93800693a615355282
Author: Arınç ÜNAL <arinc.unal@arinc9.com>
Date:   Mon Apr 17 18:20:03 2023 +0300

    USB: serial: option: add UNISOC vendor and TOZED LT70C product
    
    commit a095edfc15f0832e046ae23964e249ef5c95af87 upstream.
    
    Add UNISOC vendor ID and TOZED LT70-C modem which is based from UNISOC
    SL8563. The modem supports the NCM mode. Interface 0 is used for running
    the AT commands. Interface 12 is the ADB interface.
    
    T:  Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  6 Spd=480  MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=1782 ProdID=4055 Rev=04.04
    S:  Manufacturer=Unisoc Phone
    S:  Product=Unisoc Phone
    S:  SerialNumber=<redacted>
    C:  #Ifs=14 Cfg#= 1 Atr=c0 MxPwr=500mA
    I:  If#= 0 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0d Prot=00 Driver=cdc_ncm
    E:  Ad=82(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 1 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
    E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#=10 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=07(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8b(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#=11 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=08(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8c(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#=12 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=42 Prot=01 Driver=(none)
    E:  Ad=09(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8d(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#=13 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=0a(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8e(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 2 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0d Prot=00 Driver=cdc_ncm
    E:  Ad=84(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 3 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
    E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=83(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 4 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0d Prot=00 Driver=cdc_ncm
    E:  Ad=86(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 5 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
    E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 6 Alt= 0 #EPs= 1 Cls=02(commc) Sub=0d Prot=00 Driver=cdc_ncm
    E:  Ad=88(I) Atr=03(Int.) MxPS=  16 Ivl=32ms
    I:  If#= 7 Alt= 1 #EPs= 2 Cls=0a(data ) Sub=00 Prot=01 Driver=cdc_ncm
    E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=87(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=05(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=89(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    I:  If#= 9 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=00 Prot=00 Driver=option
    E:  Ad=06(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    E:  Ad=8a(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
    
    Signed-off-by: Arınç ÜNAL <arinc.unal@arinc9.com>
    Link: https://lore.kernel.org/r/20230417152003.243248-1-arinc.unal@arinc9.com
    Cc: stable@vger.kernel.org
    Signed-off-by: Johan Hovold <johan@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 17e5ce4d89ad8d90a00700b8b26cf3be015cca4e
Author: Genjian Zhang <zhanggenjian@kylinos.cn>
Date:   Fri Mar 24 10:08:38 2023 +0800

    btrfs: fix uninitialized variable warnings
    
    commit 8ba7d5f5ba931be68a94b8c91bcced1622934e7a upstream.
    
    There are some warnings on older compilers (gcc 10, 7) or non-x86_64
    architectures (aarch64).  As btrfs wants to enable -Wmaybe-uninitialized
    by default, fix the warnings even though it's not necessary on recent
    compilers (gcc 12+).
    
    ../fs/btrfs/volumes.c: In function ‘btrfs_init_new_device’:
    ../fs/btrfs/volumes.c:2703:3: error: ‘seed_devices’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
     2703 |   btrfs_setup_sprout(fs_info, seed_devices);
          |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    
    ../fs/btrfs/send.c: In function ‘get_cur_inode_state’:
    ../include/linux/compiler.h:70:32: error: ‘right_gen’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
       70 |   (__if_trace.miss_hit[1]++,1) :  \
          |                                ^
    ../fs/btrfs/send.c:1878:6: note: ‘right_gen’ was declared here
     1878 |  u64 right_gen;
          |      ^~~~~~~~~
    
    Reported-by: k2ci <kernel-bot@kylinos.cn>
    Signed-off-by: Genjian Zhang <zhanggenjian@kylinos.cn>
    Reviewed-by: David Sterba <dsterba@suse.com>
    [ update changelog ]
    Signed-off-by: David Sterba <dsterba@suse.com>
    Cc: Ammar Faizi <ammarfaizi2@gnuweeb.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 47e6893a5b0ad14c0b1c25983a1facb1cf667b6e
Author: Ruihan Li <lrh2000@pku.edu.cn>
Date:   Sun Apr 16 16:14:04 2023 +0800

    bluetooth: Perform careful capability checks in hci_sock_ioctl()
    
    commit 25c150ac103a4ebeed0319994c742a90634ddf18 upstream.
    
    Previously, capability was checked using capable(), which verified that the
    caller of the ioctl system call had the required capability. In addition,
    the result of the check would be stored in the HCI_SOCK_TRUSTED flag,
    making it persistent for the socket.
    
    However, malicious programs can abuse this approach by deliberately sharing
    an HCI socket with a privileged task. The HCI socket will be marked as
    trusted when the privileged task occasionally makes an ioctl call.
    
    This problem can be solved by using sk_capable() to check capability, which
    ensures that not only the current task but also the socket opener has the
    specified capability, thus reducing the risk of privilege escalation
    through the previously identified vulnerability.
    
    Cc: stable@vger.kernel.org
    Fixes: f81f5b2db869 ("Bluetooth: Send control open and close messages for HCI raw sockets")
    Signed-off-by: Ruihan Li <lrh2000@pku.edu.cn>
    Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit c4acbf37612457c35d4caf9ba27608acef790424
Author: Werner Sembach <wse@tuxedocomputers.com>
Date:   Wed Mar 22 13:15:47 2023 +0100

    gpiolib: acpi: Add a ignore wakeup quirk for Clevo NL5xNU
    
    commit 782eea0c89f7d071d6b56ecfa1b8b0c81164b9be upstream.
    
    commit 1796f808e4bb ("HID: i2c-hid: acpi: Stop setting wakeup_capable")
    changed the policy such that I2C touchpads may be able to wake up the
    system by default if the system is configured as such.
    
    However on Clevo NL5xNU there is a mistake in the ACPI tables that the
    TP_ATTN# signal connected to GPIO 9 is configured as ActiveLow and level
    triggered but connected to a pull up. As soon as the system suspends the
    touchpad loses power and then the system wakes up.
    
    To avoid this problem, introduce a quirk for this model that will prevent
    the wakeup capability for being set for GPIO 9.
    
    This patch is analoge to a very similar patch for NL5xRU, just the DMI
    string changed.
    
    Signed-off-by: Werner Sembach <wse@tuxedocomputers.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d27acf15c8fac00a251e2a24da09fcc1bb3337dd
Author: Daniel Vetter <daniel.vetter@ffwll.ch>
Date:   Tue Apr 4 21:40:36 2023 +0200

    drm/fb-helper: set x/yres_virtual in drm_fb_helper_check_var
    
    commit 1935f0deb6116dd785ea64d8035eab0ff441255b upstream.
    
    Drivers are supposed to fix this up if needed if they don't outright
    reject it. Uncovered by 6c11df58fd1a ("fbmem: Check virtual screen
    sizes in fb_set_var()").
    
    Reported-by: syzbot+20dcf81733d43ddff661@syzkaller.appspotmail.com
    Link: https://syzkaller.appspot.com/bug?id=c5faf983bfa4a607de530cd3bb008888bf06cefc
    Cc: stable@vger.kernel.org # v5.4+
    Cc: Daniel Vetter <daniel@ffwll.ch>
    Cc: Javier Martinez Canillas <javierm@redhat.com>
    Cc: Thomas Zimmermann <tzimmermann@suse.de>
    Reviewed-by: Javier Martinez Canillas <javierm@redhat.com>
    Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
    Link: https://patchwork.freedesktop.org/patch/msgid/20230404194038.472803-1-daniel.vetter@ffwll.ch
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e29661611e6e71027159a3140e818ef3b99f32dd
Author: Jisoo Jang <jisoo.jang@yonsei.ac.kr>
Date:   Thu Mar 9 19:44:57 2023 +0900

    wifi: brcmfmac: slab-out-of-bounds read in brcmf_get_assoc_ies()
    
    commit 0da40e018fd034d87c9460123fa7f897b69fdee7 upstream.
    
    Fix a slab-out-of-bounds read that occurs in kmemdup() called from
    brcmf_get_assoc_ies().
    The bug could occur when assoc_info->req_len, data from a URB provided
    by a USB device, is bigger than the size of buffer which is defined as
    WL_EXTRA_BUF_MAX.
    
    Add the size check for req_len/resp_len of assoc_info.
    
    Found by a modified version of syzkaller.
    
    [   46.592467][    T7] ==================================================================
    [   46.594687][    T7] BUG: KASAN: slab-out-of-bounds in kmemdup+0x3e/0x50
    [   46.596572][    T7] Read of size 3014656 at addr ffff888019442000 by task kworker/0:1/7
    [   46.598575][    T7]
    [   46.599157][    T7] CPU: 0 PID: 7 Comm: kworker/0:1 Tainted: G           O      5.14.0+ #145
    [   46.601333][    T7] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.12.1-0-ga5cab58e9a3f-prebuilt.qemu.org 04/01/2014
    [   46.604360][    T7] Workqueue: events brcmf_fweh_event_worker
    [   46.605943][    T7] Call Trace:
    [   46.606584][    T7]  dump_stack_lvl+0x8e/0xd1
    [   46.607446][    T7]  print_address_description.constprop.0.cold+0x93/0x334
    [   46.608610][    T7]  ? kmemdup+0x3e/0x50
    [   46.609341][    T7]  kasan_report.cold+0x79/0xd5
    [   46.610151][    T7]  ? kmemdup+0x3e/0x50
    [   46.610796][    T7]  kasan_check_range+0x14e/0x1b0
    [   46.611691][    T7]  memcpy+0x20/0x60
    [   46.612323][    T7]  kmemdup+0x3e/0x50
    [   46.612987][    T7]  brcmf_get_assoc_ies+0x967/0xf60
    [   46.613904][    T7]  ? brcmf_notify_vif_event+0x3d0/0x3d0
    [   46.614831][    T7]  ? lock_chain_count+0x20/0x20
    [   46.615683][    T7]  ? mark_lock.part.0+0xfc/0x2770
    [   46.616552][    T7]  ? lock_chain_count+0x20/0x20
    [   46.617409][    T7]  ? mark_lock.part.0+0xfc/0x2770
    [   46.618244][    T7]  ? lock_chain_count+0x20/0x20
    [   46.619024][    T7]  brcmf_bss_connect_done.constprop.0+0x241/0x2e0
    [   46.620019][    T7]  ? brcmf_parse_configure_security.isra.0+0x2a0/0x2a0
    [   46.620818][    T7]  ? __lock_acquire+0x181f/0x5790
    [   46.621462][    T7]  brcmf_notify_connect_status+0x448/0x1950
    [   46.622134][    T7]  ? rcu_read_lock_bh_held+0xb0/0xb0
    [   46.622736][    T7]  ? brcmf_cfg80211_join_ibss+0x7b0/0x7b0
    [   46.623390][    T7]  ? find_held_lock+0x2d/0x110
    [   46.623962][    T7]  ? brcmf_fweh_event_worker+0x19f/0xc60
    [   46.624603][    T7]  ? mark_held_locks+0x9f/0xe0
    [   46.625145][    T7]  ? lockdep_hardirqs_on_prepare+0x3e0/0x3e0
    [   46.625871][    T7]  ? brcmf_cfg80211_join_ibss+0x7b0/0x7b0
    [   46.626545][    T7]  brcmf_fweh_call_event_handler.isra.0+0x90/0x100
    [   46.627338][    T7]  brcmf_fweh_event_worker+0x557/0xc60
    [   46.627962][    T7]  ? brcmf_fweh_call_event_handler.isra.0+0x100/0x100
    [   46.628736][    T7]  ? rcu_read_lock_sched_held+0xa1/0xd0
    [   46.629396][    T7]  ? rcu_read_lock_bh_held+0xb0/0xb0
    [   46.629970][    T7]  ? lockdep_hardirqs_on_prepare+0x273/0x3e0
    [   46.630649][    T7]  process_one_work+0x92b/0x1460
    [   46.631205][    T7]  ? pwq_dec_nr_in_flight+0x330/0x330
    [   46.631821][    T7]  ? rwlock_bug.part.0+0x90/0x90
    [   46.632347][    T7]  worker_thread+0x95/0xe00
    [   46.632832][    T7]  ? __kthread_parkme+0x115/0x1e0
    [   46.633393][    T7]  ? process_one_work+0x1460/0x1460
    [   46.633957][    T7]  kthread+0x3a1/0x480
    [   46.634369][    T7]  ? set_kthread_struct+0x120/0x120
    [   46.634933][    T7]  ret_from_fork+0x1f/0x30
    [   46.635431][    T7]
    [   46.635687][    T7] Allocated by task 7:
    [   46.636151][    T7]  kasan_save_stack+0x1b/0x40
    [   46.636628][    T7]  __kasan_kmalloc+0x7c/0x90
    [   46.637108][    T7]  kmem_cache_alloc_trace+0x19e/0x330
    [   46.637696][    T7]  brcmf_cfg80211_attach+0x4a0/0x4040
    [   46.638275][    T7]  brcmf_attach+0x389/0xd40
    [   46.638739][    T7]  brcmf_usb_probe+0x12de/0x1690
    [   46.639279][    T7]  usb_probe_interface+0x2aa/0x760
    [   46.639820][    T7]  really_probe+0x205/0xb70
    [   46.640342][    T7]  __driver_probe_device+0x311/0x4b0
    [   46.640876][    T7]  driver_probe_device+0x4e/0x150
    [   46.641445][    T7]  __device_attach_driver+0x1cc/0x2a0
    [   46.642000][    T7]  bus_for_each_drv+0x156/0x1d0
    [   46.642543][    T7]  __device_attach+0x23f/0x3a0
    [   46.643065][    T7]  bus_probe_device+0x1da/0x290
    [   46.643644][    T7]  device_add+0xb7b/0x1eb0
    [   46.644130][    T7]  usb_set_configuration+0xf59/0x16f0
    [   46.644720][    T7]  usb_generic_driver_probe+0x82/0xa0
    [   46.645295][    T7]  usb_probe_device+0xbb/0x250
    [   46.645786][    T7]  really_probe+0x205/0xb70
    [   46.646258][    T7]  __driver_probe_device+0x311/0x4b0
    [   46.646804][    T7]  driver_probe_device+0x4e/0x150
    [   46.647387][    T7]  __device_attach_driver+0x1cc/0x2a0
    [   46.647926][    T7]  bus_for_each_drv+0x156/0x1d0
    [   46.648454][    T7]  __device_attach+0x23f/0x3a0
    [   46.648939][    T7]  bus_probe_device+0x1da/0x290
    [   46.649478][    T7]  device_add+0xb7b/0x1eb0
    [   46.649936][    T7]  usb_new_device.cold+0x49c/0x1029
    [   46.650526][    T7]  hub_event+0x1c98/0x3950
    [   46.650975][    T7]  process_one_work+0x92b/0x1460
    [   46.651535][    T7]  worker_thread+0x95/0xe00
    [   46.651991][    T7]  kthread+0x3a1/0x480
    [   46.652413][    T7]  ret_from_fork+0x1f/0x30
    [   46.652885][    T7]
    [   46.653131][    T7] The buggy address belongs to the object at ffff888019442000
    [   46.653131][    T7]  which belongs to the cache kmalloc-2k of size 2048
    [   46.654669][    T7] The buggy address is located 0 bytes inside of
    [   46.654669][    T7]  2048-byte region [ffff888019442000, ffff888019442800)
    [   46.656137][    T7] The buggy address belongs to the page:
    [   46.656720][    T7] page:ffffea0000651000 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x19440
    [   46.657792][    T7] head:ffffea0000651000 order:3 compound_mapcount:0 compound_pincount:0
    [   46.658673][    T7] flags: 0x100000000010200(slab|head|node=0|zone=1)
    [   46.659422][    T7] raw: 0100000000010200 0000000000000000 dead000000000122 ffff888100042000
    [   46.660363][    T7] raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000
    [   46.661236][    T7] page dumped because: kasan: bad access detected
    [   46.661956][    T7] page_owner tracks the page as allocated
    [   46.662588][    T7] page last allocated via order 3, migratetype Unmovable, gfp_mask 0x52a20(GFP_ATOMIC|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP), pid 7, ts 31136961085, free_ts 0
    [   46.664271][    T7]  prep_new_page+0x1aa/0x240
    [   46.664763][    T7]  get_page_from_freelist+0x159a/0x27c0
    [   46.665340][    T7]  __alloc_pages+0x2da/0x6a0
    [   46.665847][    T7]  alloc_pages+0xec/0x1e0
    [   46.666308][    T7]  allocate_slab+0x380/0x4e0
    [   46.666770][    T7]  ___slab_alloc+0x5bc/0x940
    [   46.667264][    T7]  __slab_alloc+0x6d/0x80
    [   46.667712][    T7]  kmem_cache_alloc_trace+0x30a/0x330
    [   46.668299][    T7]  brcmf_usbdev_qinit.constprop.0+0x50/0x470
    [   46.668885][    T7]  brcmf_usb_probe+0xc97/0x1690
    [   46.669438][    T7]  usb_probe_interface+0x2aa/0x760
    [   46.669988][    T7]  really_probe+0x205/0xb70
    [   46.670487][    T7]  __driver_probe_device+0x311/0x4b0
    [   46.671031][    T7]  driver_probe_device+0x4e/0x150
    [   46.671604][    T7]  __device_attach_driver+0x1cc/0x2a0
    [   46.672192][    T7]  bus_for_each_drv+0x156/0x1d0
    [   46.672739][    T7] page_owner free stack trace missing
    [   46.673335][    T7]
    [   46.673620][    T7] Memory state around the buggy address:
    [   46.674213][    T7]  ffff888019442700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [   46.675083][    T7]  ffff888019442780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
    [   46.675994][    T7] >ffff888019442800: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [   46.676875][    T7]                    ^
    [   46.677323][    T7]  ffff888019442880: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [   46.678190][    T7]  ffff888019442900: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
    [   46.679052][    T7] ==================================================================
    [   46.679945][    T7] Disabling lock debugging due to kernel taint
    [   46.680725][    T7] Kernel panic - not syncing:
    
    Reviewed-by: Arend van Spriel <arend.vanspriel@broadcom.com>
    Signed-off-by: Jisoo Jang <jisoo.jang@yonsei.ac.kr>
    Signed-off-by: Kalle Valo <kvalo@kernel.org>
    Link: https://lore.kernel.org/r/20230309104457.22628-1-jisoo.jang@yonsei.ac.kr
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 34cec5cd7abc6a44dcc6b7d485741a5a5d8f3e78
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Mon Apr 17 16:00:41 2023 +0200

    mptcp: fix accept vs worker race
    
    commit 63740448a32eb662e05894425b47bcc5814136f4 upstream.
    
    The mptcp worker and mptcp_accept() can race, as reported by Christoph:
    
    refcount_t: addition on 0; use-after-free.
    WARNING: CPU: 1 PID: 14351 at lib/refcount.c:25 refcount_warn_saturate+0x105/0x1b0 lib/refcount.c:25
    Modules linked in:
    CPU: 1 PID: 14351 Comm: syz-executor.2 Not tainted 6.3.0-rc1-gde5e8fd0123c #11
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014
    RIP: 0010:refcount_warn_saturate+0x105/0x1b0 lib/refcount.c:25
    Code: 02 31 ff 89 de e8 1b f0 a7 ff 84 db 0f 85 6e ff ff ff e8 3e f5 a7 ff 48 c7 c7 d8 c7 34 83 c6 05 6d 2d 0f 02 01 e8 cb 3d 90 ff <0f> 0b e9 4f ff ff ff e8 1f f5 a7 ff 0f b6 1d 54 2d 0f 02 31 ff 89
    RSP: 0018:ffffc90000a47bf8 EFLAGS: 00010282
    RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
    RDX: ffff88802eae98c0 RSI: ffffffff81097d4f RDI: 0000000000000001
    RBP: ffff88802e712180 R08: 0000000000000001 R09: 0000000000000000
    R10: 0000000000000001 R11: ffff88802eaea148 R12: ffff88802e712100
    R13: ffff88802e712a88 R14: ffff888005cb93a8 R15: ffff88802e712a88
    FS:  0000000000000000(0000) GS:ffff88803ed00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 00007f277fd89120 CR3: 0000000035486002 CR4: 0000000000370ee0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    Call Trace:
     <TASK>
     __refcount_add include/linux/refcount.h:199 [inline]
     __refcount_inc include/linux/refcount.h:250 [inline]
     refcount_inc include/linux/refcount.h:267 [inline]
     sock_hold include/net/sock.h:775 [inline]
     __mptcp_close+0x4c6/0x4d0 net/mptcp/protocol.c:3051
     mptcp_close+0x24/0xe0 net/mptcp/protocol.c:3072
     inet_release+0x56/0xa0 net/ipv4/af_inet.c:429
     __sock_release+0x51/0xf0 net/socket.c:653
     sock_close+0x18/0x20 net/socket.c:1395
     __fput+0x113/0x430 fs/file_table.c:321
     task_work_run+0x96/0x100 kernel/task_work.c:179
     exit_task_work include/linux/task_work.h:38 [inline]
     do_exit+0x4fc/0x10c0 kernel/exit.c:869
     do_group_exit+0x51/0xf0 kernel/exit.c:1019
     get_signal+0x12b0/0x1390 kernel/signal.c:2859
     arch_do_signal_or_restart+0x25/0x260 arch/x86/kernel/signal.c:306
     exit_to_user_mode_loop kernel/entry/common.c:168 [inline]
     exit_to_user_mode_prepare+0x131/0x1a0 kernel/entry/common.c:203
     __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
     syscall_exit_to_user_mode+0x19/0x40 kernel/entry/common.c:296
     do_syscall_64+0x46/0x90 arch/x86/entry/common.c:86
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    RIP: 0033:0x7fec4b4926a9
    Code: Unable to access opcode bytes at 0x7fec4b49267f.
    RSP: 002b:00007fec49f9dd78 EFLAGS: 00000246 ORIG_RAX: 00000000000000ca
    RAX: fffffffffffffe00 RBX: 00000000006bc058 RCX: 00007fec4b4926a9
    RDX: 0000000000000000 RSI: 0000000000000080 RDI: 00000000006bc058
    RBP: 00000000006bc050 R08: 00000000007df998 R09: 00000000007df998
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006bc05c
    R13: fffffffffffffea8 R14: 000000000000000b R15: 000000000001fe40
     </TASK>
    
    The root cause is that the worker can force fallback to TCP the first
    mptcp subflow, actually deleting the unaccepted msk socket.
    
    We can explicitly prevent the race delaying the unaccepted msk deletion
    at listener shutdown time. In case the closed subflow is later accepted,
    just drop the mptcp context and let the user-space deal with the
    paired mptcp socket.
    
    Fixes: b6985b9b8295 ("mptcp: use the workqueue to destroy unaccepted sockets")
    Cc: stable@vger.kernel.org
    Reported-by: Christoph Paasch <cpaasch@apple.com>
    Link: https://github.com/multipath-tcp/mptcp_net-next/issues/375
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Tested-by: Christoph Paasch <cpaasch@apple.com>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit b45d8f5375eda3ddc89fe529b58bb643917bd87b
Author: Paolo Abeni <pabeni@redhat.com>
Date:   Mon Apr 17 16:00:40 2023 +0200

    mptcp: stops worker on unaccepted sockets at listener close
    
    commit 2a6a870e44dd88f1a6a2893c65ef756a9edfb4c7 upstream.
    
    This is a partial revert of the blamed commit, with a relevant
    change: mptcp_subflow_queue_clean() now just change the msk
    socket status and stop the worker, so that the UaF issue addressed
    by the blamed commit is not re-introduced.
    
    The above prevents the mptcp worker from running concurrently with
    inet_csk_listen_stop(), as such race would trigger a warning, as
    reported by Christoph:
    
    RSP: 002b:00007f784fe09cd8 EFLAGS: 00000246 ORIG_RAX: 000000000000002e
    WARNING: CPU: 0 PID: 25807 at net/ipv4/inet_connection_sock.c:1387 inet_csk_listen_stop+0x664/0x870 net/ipv4/inet_connection_sock.c:1387
    RAX: ffffffffffffffda RBX: 00000000006bc050 RCX: 00007f7850afd6a9
    RDX: 0000000000000000 RSI: 0000000020000340 RDI: 0000000000000004
    Modules linked in:
    RBP: 0000000000000002 R08: 0000000000000000 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000246 R12: 00000000006bc05c
    R13: fffffffffffffea8 R14: 00000000006bc050 R15: 000000000001fe40
    
     </TASK>
    CPU: 0 PID: 25807 Comm: syz-executor.7 Not tainted 6.2.0-g778e54711659 #7
    Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.11.0-2.el7 04/01/2014
    RIP: 0010:inet_csk_listen_stop+0x664/0x870 net/ipv4/inet_connection_sock.c:1387
    RAX: 0000000000000000 RBX: ffff888100dfbd40 RCX: 0000000000000000
    RDX: ffff8881363aab80 RSI: ffffffff81c494f4 RDI: 0000000000000005
    RBP: ffff888126dad080 R08: 0000000000000005 R09: 0000000000000000
    R10: 0000000000000001 R11: 0000000000000000 R12: ffff888100dfe040
    R13: 0000000000000001 R14: 0000000000000000 R15: ffff888100dfbdd8
    FS:  00007f7850a2c800(0000) GS:ffff88813bc00000(0000) knlGS:0000000000000000
    CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000001b32d26000 CR3: 000000012fdd8006 CR4: 0000000000770ef0
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
    PKRU: 55555554
    Call Trace:
     <TASK>
     __tcp_close+0x5b2/0x620 net/ipv4/tcp.c:2875
     __mptcp_close_ssk+0x145/0x3d0 net/mptcp/protocol.c:2427
     mptcp_destroy_common+0x8a/0x1c0 net/mptcp/protocol.c:3277
     mptcp_destroy+0x41/0x60 net/mptcp/protocol.c:3304
     __mptcp_destroy_sock+0x56/0x140 net/mptcp/protocol.c:2965
     __mptcp_close+0x38f/0x4a0 net/mptcp/protocol.c:3057
     mptcp_close+0x24/0xe0 net/mptcp/protocol.c:3072
     inet_release+0x53/0xa0 net/ipv4/af_inet.c:429
     __sock_release+0x4e/0xf0 net/socket.c:651
     sock_close+0x15/0x20 net/socket.c:1393
     __fput+0xff/0x420 fs/file_table.c:321
     task_work_run+0x8b/0xe0 kernel/task_work.c:179
     resume_user_mode_work include/linux/resume_user_mode.h:49 [inline]
     exit_to_user_mode_loop kernel/entry/common.c:171 [inline]
     exit_to_user_mode_prepare+0x113/0x120 kernel/entry/common.c:203
     __syscall_exit_to_user_mode_work kernel/entry/common.c:285 [inline]
     syscall_exit_to_user_mode+0x1d/0x40 kernel/entry/common.c:296
     do_syscall_64+0x46/0x90 arch/x86/entry/common.c:86
     entry_SYSCALL_64_after_hwframe+0x72/0xdc
    RIP: 0033:0x7f7850af70dc
    RAX: 0000000000000000 RBX: 0000000000000004 RCX: 00007f7850af70dc
    RDX: 00007f7850a2c800 RSI: 0000000000000002 RDI: 0000000000000003
    RBP: 00000000006bd980 R08: 0000000000000000 R09: 00000000000018a0
    R10: 00000000316338a4 R11: 0000000000000293 R12: 0000000000211e31
    R13: 00000000006bc05c R14: 00007f785062c000 R15: 0000000000211af0
    
    Fixes: 0a3f4f1f9c27 ("mptcp: fix UaF in listener shutdown")
    Cc: stable@vger.kernel.org
    Reported-by: Christoph Paasch <cpaasch@apple.com>
    Link: https://github.com/multipath-tcp/mptcp_net-next/issues/371
    Signed-off-by: Paolo Abeni <pabeni@redhat.com>
    Reviewed-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: David S. Miller <davem@davemloft.net>
    Signed-off-by: Matthieu Baerts <matthieu.baerts@tessares.net>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 862ea63fad1657e4cf0b2cf285db6fd55fa57ba0
Author: Liam R. Howlett <Liam.Howlett@oracle.com>
Date:   Mon Apr 10 11:22:05 2023 -0400

    mm/mempolicy: fix use-after-free of VMA iterator
    
    commit f4e9e0e69468583c2c6d9d5c7bfc975e292bf188 upstream.
    
    set_mempolicy_home_node() iterates over a list of VMAs and calls
    mbind_range() on each VMA, which also iterates over the singular list of
    the VMA passed in and potentially splits the VMA.  Since the VMA iterator
    is not passed through, set_mempolicy_home_node() may now point to a stale
    node in the VMA tree.  This can result in a UAF as reported by syzbot.
    
    Avoid the stale maple tree node by passing the VMA iterator through to the
    underlying call to split_vma().
    
    mbind_range() is also overly complicated, since there are two calling
    functions and one already handles iterating over the VMAs.  Simplify
    mbind_range() to only handle merging and splitting of the VMAs.
    
    Align the new loop in do_mbind() and existing loop in
    set_mempolicy_home_node() to use the reduced mbind_range() function.  This
    allows for a single location of the range calculation and avoids
    constantly looking up the previous VMA (since this is a loop over the
    VMAs).
    
    Link: https://lore.kernel.org/linux-mm/000000000000c93feb05f87e24ad@google.com/
    Fixes: 66850be55e8e ("mm/mempolicy: use vma iterator & maple state instead of vma linked list")
    Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
    Reported-by: syzbot+a7c1ec5b1d71ceaa5186@syzkaller.appspotmail.com
      Link: https://lkml.kernel.org/r/20230410152205.2294819-1-Liam.Howlett@oracle.com
    Tested-by: syzbot+a7c1ec5b1d71ceaa5186@syzkaller.appspotmail.com
    Cc: <stable@vger.kernel.org>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit e1562cc202c9e3dc478fb1e263b9596ff35f0c87
Author: David Matlack <dmatlack@google.com>
Date:   Mon Mar 13 16:54:54 2023 -0700

    KVM: arm64: Retry fault if vma_lookup() results become invalid
    
    commit 13ec9308a85702af7c31f3638a2720863848a7f2 upstream.
    
    Read mmu_invalidate_seq before dropping the mmap_lock so that KVM can
    detect if the results of vma_lookup() (e.g. vma_shift) become stale
    before it acquires kvm->mmu_lock. This fixes a theoretical bug where a
    VMA could be changed by userspace after vma_lookup() and before KVM
    reads the mmu_invalidate_seq, causing KVM to install page table entries
    based on a (possibly) no-longer-valid vma_shift.
    
    Re-order the MMU cache top-up to earlier in user_mem_abort() so that it
    is not done after KVM has read mmu_invalidate_seq (i.e. so as to avoid
    inducing spurious fault retries).
    
    This bug has existed since KVM/ARM's inception. It's unlikely that any
    sane userspace currently modifies VMAs in such a way as to trigger this
    race. And even with directed testing I was unable to reproduce it. But a
    sufficiently motivated host userspace might be able to exploit this
    race.
    
    Fixes: 94f8e6418d39 ("KVM: ARM: Handle guest faults in KVM")
    Cc: stable@vger.kernel.org
    Reported-by: Sean Christopherson <seanjc@google.com>
    Signed-off-by: David Matlack <dmatlack@google.com>
    Reviewed-by: Marc Zyngier <maz@kernel.org>
    Link: https://lore.kernel.org/r/20230313235454.2964067-1-dmatlack@google.com
    Signed-off-by: Oliver Upton <oliver.upton@linux.dev>
    [will: Use FSC_PERM instead of ESR_ELx_FSC_PERM]
    Signed-off-by: Will Deacon <will@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit d70f63be626dfdd60d0cb783240fa227d2e1a33a
Author: Florian Fainelli <f.fainelli@gmail.com>
Date:   Wed Oct 26 15:44:49 2022 -0700

    phy: phy-brcm-usb: Utilize platform_get_irq_byname_optional()
    
    commit 53bffe0055741440a6c91abb80bad1c62ea443e3 upstream.
    
    The wake-up interrupt lines are entirely optional, avoid printing
    messages that interrupts were not found by switching to the _optional
    variant.
    
    Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
    Acked-by: Justin Chen <justinpopo6@gmail.com>
    Link: https://lore.kernel.org/r/20221026224450.2958762-1-f.fainelli@gmail.com
    Signed-off-by: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

commit 7d057bf201ca938ed75c17f9ca3298025c5a7089
Author: David Gow <davidgow@google.com>
Date:   Sat Mar 18 12:15:54 2023 +0800

    um: Only disable SSE on clang to work around old GCC bugs
    
    commit a3046a618a284579d1189af8711765f553eed707 upstream.
    
    As part of the Rust support for UML, we disable SSE (and similar flags)
    to match the normal x86 builds. This both makes sense (we ideally want a
    similar configuration to x86), and works around a crash bug with SSE
    generation under Rust with LLVM.
    
    However, this breaks compiling stdlib.h under gcc < 11, as the x86_64
    ABI requires floating-point return values be stored in an SSE register.
    gcc 11 fixes this by only doing register allocation when a function is
    actually used, and since we never use atof(), it shouldn't be a problem:
    https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99652
    
    Nevertheless, only disable SSE on clang setups, as that's a simple way
    of working around everyone's bugs.
    
    Fixes: 884981867947 ("rust: arch/um: Disable FP/SIMD instruction to match x86")
    Reported-by: Roberto Sassu <roberto.sassu@huaweicloud.com>
    Link: https://lore.kernel.org/linux-um/6df2ecef9011d85654a82acd607fdcbc93ad593c.camel@huaweicloud.com/
    Tested-by: Roberto Sassu <roberto.sassu@huaweicloud.com>
    Tested-by: SeongJae Park <sj@kernel.org>
    Signed-off-by: David Gow <davidgow@google.com>
    Reviewed-by: Vincenzo Palazzo <vincenzopalazzodev@gmail.com>
    Tested-by: Arthur Grillo <arthurgrillo@riseup.net>
    Signed-off-by: Richard Weinberger <richard@nod.at>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>