8000 Android14 5.15 by tbalden · Pull Request #1 · tbalden/kernel_common · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Android14 5.15 #1

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 10,000 commits into
base: cleanslate-shusky-u
Choose a base branch
from
Draft

Conversation

tbalden
Copy link
Owner
@tbalden tbalden commented Oct 21, 2023

No description provided.

tbalden pushed a commit that referenced this pull request Nov 7, 2023
Thread #1:

[122554.641906][   T92]  f2fs_getxattr+0xd4/0x5fc
    -> waiting for f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);

[122554.641927][   T92]  __f2fs_get_acl+0x50/0x284
[122554.641948][   T92]  f2fs_init_acl+0x84/0x54c
[122554.641969][   T92]  f2fs_init_inode_metadata+0x460/0x5f0
[122554.641990][   T92]  f2fs_add_inline_entry+0x11c/0x350
    -> Locked dir->inode_page by f2fs_get_node_page()

[122554.642009][   T92]  f2fs_do_add_link+0x100/0x1e4
[122554.642025][   T92]  f2fs_create+0xf4/0x22c
[122554.642047][   T92]  vfs_create+0x130/0x1f4

Thread #2:

[123996.386358][   T92]  __get_node_page+0x8c/0x504
    -> waiting for dir->inode_page lock

[123996.386383][   T92]  read_all_xattrs+0x11c/0x1f4
[123996.386405][   T92]  __f2fs_setxattr+0xcc/0x528
[123996.386424][   T92]  f2fs_setxattr+0x158/0x1f4
    -> f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);

[123996.386443][   T92]  __f2fs_set_acl+0x328/0x430
[123996.386618][   T92]  f2fs_set_acl+0x38/0x50
[123996.386642][   T92]  posix_acl_chmod+0xc8/0x1c8
[123996.386669][   T92]  f2fs_setattr+0x5e0/0x6bc
[123996.386689][   T92]  notify_change+0x4d8/0x580
[123996.386717][   T92]  chmod_common+0xd8/0x184
[123996.386748][   T92]  do_fchmodat+0x60/0x124
[123996.386766][   T92]  __arm64_sys_fchmodat+0x28/0x3c

Bug: 305658663
Bug: 280545073
Fixes: 27161f1 "f2fs: avoid race in between read xattr & write xattr"
Cc: <stable@vger.kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 82d8a4f)
Change-Id: Iec383216e1887e11c69374d28e4ecdedda133919
(cherry picked from commit 0765cda)
tbalden pushed a commit that referenced this pull request Dec 13, 2023
…cheduler"

See also commit 9102217.

Revert the code that sends requests back to the I/O scheduler if
dispatching fails because it is suspected to have introduced the
following BFQ crash:

==================================================================
BUG: KASAN: invalid-access in bfq_get_queue+0x500/0x560
Write at addr faffff8056fd8b30 by task Thread-11/27396
Pointer tag: [fa], memory tag: [fe]

CPU: 5 PID: 27396 Comm: Thread-11 Tainted: G S      W  OE     5.15.110-android14-7-00150-gf82b53108826-ab10234611 #1
Call trace:
 dump_backtrace+0xf8/0x1e8
 dump_stack_lvl+0x74/0xa4
 print_report+0x344/0x958
 kasan_report+0x90/0xe4
 __do_kernel_fault+0xc4/0x2ac
 do_bad_area+0x3c/0x154
 do_tag_check_fault+0x18/0x24
 do_mem_abort+0x60/0x134
 el1_abort+0x38/0x54
 el1h_64_sync_handler+0x54/0x88
 el1h_64_sync+0x78/0x7c
 bfq_get_queue+0x500/0x560
 bfq_insert_requests+0x98c/0x1474
 blk_mq_sched_insert_requests+0xec/0x334
 blk_mq_flush_plug_list+0x138/0x234
 blk_flush_plug_list+0x118/0x164
 read_pages+0x38c/0x408
 page_cache_ra_unbounded+0x22c/0x2f4
 do_sync_mmap_readahead+0x1a4/0x208
 filemap_fault+0x27c/0x8f4
 f2fs_filemap_fault+0x28/0xfc
 __do_fault+0xc0/0x204
 handle_pte_fault+0x28c/0xdf8
 do_handle_mm_fault+0x504/0x7b8
 do_page_fault+0x5dc/0x798
 do_translation_fault+0x40/0x54
 do_mem_abort+0x60/0x134
 el0_ia+0x74/0x158
 el0t_64_sync_handler+0xac/0xe4
 el0t_64_sync+0x1b0/0x1b4

The buggy address belongs to the object at ffffff8056fd8a50
 which belongs to the cache bfq_io_cq of size 232
The buggy address is located 224 bytes inside of
 232-byte region [ffffff8056fd8a50, ffffff8056fd8b38)

The buggy address belongs to the physical page:
page:00000000a0db99e0 refcount:1 mapcount:0 mapping:0000000000000000 index:0xfaffff8056fd8a50 pfn:0xd6fd8
head:00000000a0db99e0 order:1 compound_mapcount:0
flags: 0x4000000000010200(slab|head|zone=1|kasantag=0x0)
raw: 4000000000010200 fffffffe2306b300 0000000400000004 f2ffff800a71f700
raw: faffff8056fd8a50 000000008022001d 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffffff8056fd8900: fe fe fe fe fe fe fd fd fd fd fd fd fd fd fd fd
 ffffff8056fd8a00: fd fd fd fd fd fe fe fe fe fe fe fe fe fe fe fe
>ffffff8056fd8b00: fe fe fe fe fb fb fb fb fb fb fb fb fb fb fb fb
                            ^
 ffffff8056fd8c00: fb fb fb f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4 f4
 ffffff8056fd8d00: f4 f4 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9 f9
==================================================================

Bug: 285769645
Signed-off-by: Bart Van Assche <bvanassche@google.com>
(cherry picked from https://partner-android-review.googlesource.com/q/commit:9c9a32d53ed33cf623ea114c3ebc3bb45cafebe5)
Merged-In: Ia870feee81988ae47a2be0e1b145d18165588f8a
Change-Id: Ia870feee81988ae47a2be0e1b145d18165588f8a
tbalden pushed a commit that referenced this pull request Dec 13, 2023
…inal issue

This reverts commit 27161f1 "f2fs: avoid race in between read xattr & write xattr".

That introduced a deadlock case:

Thread #1:

[122554.641906][   T92]  f2fs_getxattr+0xd4/0x5fc
    -> waiting for f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);

[122554.641927][   T92]  __f2fs_get_acl+0x50/0x284
[122554.641948][   T92]  f2fs_init_acl+0x84/0x54c
[122554.641969][   T92]  f2fs_init_inode_metadata+0x460/0x5f0
[122554.641990][   T92]  f2fs_add_inline_entry+0x11c/0x350
    -> Locked dir->inode_page by f2fs_get_node_page()

[122554.642009][   T92]  f2fs_do_add_link+0x100/0x1e4
[122554.642025][   T92]  f2fs_create+0xf4/0x22c
[122554.642047][   T92]  vfs_create+0x130/0x1f4

Thread #2:

[123996.386358][   T92]  __get_node_page+0x8c/0x504
    -> waiting for dir->inode_page lock

[123996.386383][   T92]  read_all_xattrs+0x11c/0x1f4
[123996.386405][   T92]  __f2fs_setxattr+0xcc/0x528
[123996.386424][   T92]  f2fs_setxattr+0x158/0x1f4
    -> f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);

[123996.386443][   T92]  __f2fs_set_acl+0x328/0x430
[123996.386618][   T92]  f2fs_set_acl+0x38/0x50
[123996.386642][   T92]  posix_acl_chmod+0xc8/0x1c8
[123996.386669][   T92]  f2fs_setattr+0x5e0/0x6bc
[123996.386689][   T92]  notify_change+0x4d8/0x580
[123996.386717][   T92]  chmod_common+0xd8/0x184
[123996.386748][   T92]  do_fchmodat+0x60/0x124
[123996.386766][   T92]  __arm64_sys_fchmodat+0x28/0x3c

Let's take a look at the original issue back.

Thread A:                                       Thread B:
-f2fs_getxattr
   -lookup_all_xattrs
      -xnid = F2FS_I(inode)->i_xattr_nid;
                                                -f2fs_setxattr
                                                    -__f2fs_setxattr
                                                        -write_all_xattrs
                                                            -truncate_xattr_node
                                                                  ...  ...
                                                -write_checkpoint
                                                                  ...  ...
                                                -alloc_nid   <- nid reuse
          -get_node_page
              -f2fs_bug_on  <- nid != node_footer->nid

I think we don't need to truncate xattr pages eagerly which introduces lots of
data races without big benefits.

Bug: 280545073
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/linux-f2fs-devel/20230613233940.3643362-1-jaegeuk@kernel.org/T/#u
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from https://android-review.googlesource.com/q/commit:674d8f63c2c4c47c91ce17d6f03f15551c3a92e5)
(cherry picked from https://partner-android-review.googlesource.com/q/commit:4267131147965dd25945d64c2f8678ffc1e32004)
Merged-In: Ifdbaf7defa50b479d82d2c945aa9d48e2e2317ed
Change-Id: Ifdbaf7defa50b479d82d2c945aa9d48e2e2317ed
tbalden pushed a commit that referenced this pull request Dec 13, 2023
…inal issue

This reverts commit 27161f1 "f2fs: avoid race in between read xattr & write xattr".

That introduced a deadlock case:

Thread #1:

[122554.641906][   T92]  f2fs_getxattr+0xd4/0x5fc
    -> waiting for f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);

[122554.641927][   T92]  __f2fs_get_acl+0x50/0x284
[122554.641948][   T92]  f2fs_init_acl+0x84/0x54c
[122554.641969][   T92]  f2fs_init_inode_metadata+0x460/0x5f0
[122554.641990][   T92]  f2fs_add_inline_entry+0x11c/0x350
    -> Locked dir->inode_page by f2fs_get_node_page()

[122554.642009][   T92]  f2fs_do_add_link+0x100/0x1e4
[122554.642025][   T92]  f2fs_create+0xf4/0x22c
[122554.642047][   T92]  vfs_create+0x130/0x1f4

Thread #2:

[123996.386358][   T92]  __get_node_page+0x8c/0x504
    -> waiting for dir->inode_page lock

[123996.386383][   T92]  read_all_xattrs+0x11c/0x1f4
[123996.386405][   T92]  __f2fs_setxattr+0xcc/0x528
[123996.386424][   T92]  f2fs_setxattr+0x158/0x1f4
    -> f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);

[123996.386443][   T92]  __f2fs_set_acl+0x328/0x430
[123996.386618][   T92]  f2fs_set_acl+0x38/0x50
[123996.386642][   T92]  posix_acl_chmod+0xc8/0x1c8
[123996.386669][   T92]  f2fs_setattr+0x5e0/0x6bc
[123996.386689][   T92]  notify_change+0x4d8/0x580
[123996.386717][   T92]  chmod_common+0xd8/0x184
[123996.386748][   T92]  do_fchmodat+0x60/0x124
[123996.386766][   T92]  __arm64_sys_fchmodat+0x28/0x3c

Let's take a look at the original issue back.

Thread A:                                       Thread B:
-f2fs_getxattr
   -lookup_all_xattrs
      -xnid = F2FS_I(inode)->i_xattr_nid;
                                                -f2fs_setxattr
                                                    -__f2fs_setxattr
          
10000
                                              -write_all_xattrs
                                                            -truncate_xattr_node
                                                                  ...  ...
                                                -write_checkpoint
                                                                  ...  ...
                                                -alloc_nid   <- nid reuse
          -get_node_page
              -f2fs_bug_on  <- nid != node_footer->nid

I think we don't need to truncate xattr pages eagerly which introduces lots of
data races without big benefits.

Bug: 280545073
Cc: <stable@vger.kernel.org>
Link: https://lore.kernel.org/linux-f2fs-devel/20230613233940.3643362-1-jaegeuk@kernel.org/T/#u
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Change-Id: Ifdbaf7defa50b479d82d2c945aa9d48e2e2317ed
tbalden pushed a commit that referenced this pull request Dec 13, 2023
[ Upstream commit 90cbed5 ]

If skb enqueue the qdisc, fq_skb_cb(skb)->time_to_send is changed which
is actually skb->cb, and IPCB(skb_in)->opt will be used in
__ip_options_echo. It is possible that memcpy is out of bounds and lead
to stack overflow.
We should clear skb->cb before ip_local_out or ip6_local_out.

v2:
1. clean the stack info
2. use IPCB/IP6CB instead of skb->cb

crash on stable-5.10(reproduce in kasan kernel).
Stack info:
[ 2203.651571] BUG: KASAN: stack-out-of-bounds in
__ip_options_echo+0x589/0x800
[ 2203.653327] Write of size 4 at addr ffff88811a388f27 by task
swapper/3/0
[ 2203.655460] CPU: 3 PID: 0 Comm: swapper/3 Kdump: loaded Not tainted
5.10.0-60.18.0.50.h856.kasan.eulerosv2r11.x86_64 #1
[ 2203.655466] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996),
BIOS rel-1.10.2-0-g5f4c7b1-20181220_000000-szxrtosci10000 04/01/2014
[ 2203.655475] Call Trace:
[ 2203.655481]  <IRQ>
[ 2203.655501]  dump_stack+0x9c/0xd3
[ 2203.655514]  print_address_description.constprop.0+0x19/0x170
[ 2203.655530]  __kasan_report.cold+0x6c/0x84
[ 2203.655586]  kasan_report+0x3a/0x50
[ 2203.655594]  check_memory_region+0xfd/0x1f0
[ 2203.655601]  memcpy+0x39/0x60
[ 2203.655608]  __ip_options_echo+0x589/0x800
[ 2203.655654]  __icmp_send+0x59a/0x960
[ 2203.655755]  nf_send_unreach+0x129/0x3d0 [nf_reject_ipv4]
[ 2203.655763]  reject_tg+0x77/0x1bf [ipt_REJECT]
[ 2203.655772]  ipt_do_table+0x691/0xa40 [ip_tables]
[ 2203.655821]  nf_hook_slow+0x69/0x100
[ 2203.655828]  __ip_local_out+0x21e/0x2b0
[ 2203.655857]  ip_local_out+0x28/0x90
[ 2203.655868]  ipvlan_process_v4_outbound+0x21e/0x260 [ipvlan]
[ 2203.655931]  ipvlan_xmit_mode_l3+0x3bd/0x400 [ipvlan]
[ 2203.655967]  ipvlan_queue_xmit+0xb3/0x190 [ipvlan]
[ 2203.655977]  ipvlan_start_xmit+0x2e/0xb0 [ipvlan]
[ 2203.655984]  xmit_one.constprop.0+0xe1/0x280
[ 2203.655992]  dev_hard_start_xmit+0x62/0x100
[ 2203.656000]  sch_direct_xmit+0x215/0x640
[ 2203.656028]  __qdisc_run+0x153/0x1f0
[ 2203.656069]  __dev_queue_xmit+0x77f/0x1030
[ 2203.656173]  ip_finish_output2+0x59b/0xc20
[ 2203.656244]  __ip_finish_output.part.0+0x318/0x3d0
[ 2203.656312]  ip_finish_output+0x168/0x190
[ 2203.656320]  ip_output+0x12d/0x220
[ 2203.656357]  __ip_queue_xmit+0x392/0x880
[ 2203.656380]  __tcp_transmit_skb+0x1088/0x11c0
[ 2203.656436]  __tcp_retransmit_skb+0x475/0xa30
[ 2203.656505]  tcp_retransmit_skb+0x2d/0x190
[ 2203.656512]  tcp_retransmit_timer+0x3af/0x9a0
[ 2203.656519]  tcp_write_timer_handler+0x3ba/0x510
[ 2203.656529]  tcp_write_timer+0x55/0x180
[ 2203.656542]  call_timer_fn+0x3f/0x1d0
[ 2203.656555]  expire_timers+0x160/0x200
[ 2203.656562]  run_timer_softirq+0x1f4/0x480
[ 2203.656606]  __do_softirq+0xfd/0x402
[ 2203.656613]  asm_call_irq_on_stack+0x12/0x20
[ 2203.656617]  </IRQ>
[ 2203.656623]  do_softirq_own_stack+0x37/0x50
[ 2203.656631]  irq_exit_rcu+0x134/0x1a0
[ 2203.656639]  sysvec_apic_timer_interrupt+0x36/0x80
[ 2203.656646]  asm_sysvec_apic_timer_interrupt+0x12/0x20
[ 2203.656654] RIP: 0010:default_idle+0x13/0x20
[ 2203.656663] Code: 89 f0 5d 41 5c 41 5d 41 5e c3 cc cc cc cc cc cc cc
cc cc cc cc cc cc 0f 1f 44 00 00 0f 1f 44 00 00 0f 00 2d 9f 32 57 00 fb
f4 <c3> cc cc cc cc 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 41 54 be 08
[ 2203.656668] RSP: 0018:ffff88810036fe78 EFLAGS: 00000256
[ 2203.656676] RAX: ffffffffaf2a87f0 RBX: ffff888100360000 RCX:
ffffffffaf290191
[ 2203.656681] RDX: 0000000000098b5e RSI: 0000000000000004 RDI:
ffff88811a3c4f60
[ 2203.656686] RBP: 0000000000000000 R08: 0000000000000001 R09:
ffff88811a3c4f63
[ 2203.656690] R10: ffffed10234789ec R11: 0000000000000001 R12:
0000000000000003
[ 2203.656695] R13: ffff888100360000 R14: 0000000000000000 R15:
0000000000000000
[ 2203.656729]  default_idle_call+0x5a/0x150
[ 2203.656735]  cpuidle_idle_call+0x1c6/0x220
[ 2203.656780]  do_idle+0xab/0x100
[ 2203.656786]  cpu_startup_entry+0x19/0x20
[ 2203.656793]  secondary_startup_64_no_verify+0xc2/0xcb

[ 2203.657409] The buggy address belongs to the page:
[ 2203.658648] page:0000000027a9842f refcount:1 mapcount:0
mapping:0000000000000000 index:0x0 pfn:0x11a388
[ 2203.658665] flags:
0x17ffffc0001000(reserved|node=0|zone=2|lastcpupid=0x1fffff)
[ 2203.658675] raw: 0017ffffc0001000 ffffea000468e208 ffffea000468e208
0000000000000000
[ 2203.658682] raw: 0000000000000000 0000000000000000 00000001ffffffff
0000000000000000
[ 2203.658686] page dumped because: kasan: bad access detected

To reproduce(ipvlan with IPVLAN_MODE_L3):
Env setting:
=======================================================
modprobe ipvlan ipvlan_default_mode=1
sysctl net.ipv4.conf.eth0.forwarding=1
iptables -t nat -A POSTROUTING -s 20.0.0.0/255.255.255.0 -o eth0 -j
MASQUERADE
ip link add gw link eth0 type ipvlan
ip -4 addr add 20.0.0.254/24 dev gw
ip netns add net1
ip link add ipv1 link eth0 type ipvlan
ip link set ipv1 netns net1
ip netns exec net1 ip link set ipv1 up
ip netns exec net1 ip -4 addr add 20.0.0.4/24 dev ipv1
ip netns exec net1 route add default gw 20.0.0.254
ip netns exec net1 tc qdisc add dev ipv1 root netem loss 10%
ifconfig gw up
iptables -t filter -A OUTPUT -p tcp --dport 8888 -j REJECT --reject-with
icmp-port-unreachable
=======================================================
And then excute the shell(curl any address of eth0 can reach):

for((i=1;i<=100000;i++))
do
        ip netns exec net1 curl x.x.x.x:8888
done
=======================================================

Bug: 289225588
Fixes: 2ad7bf3 ("ipvlan: Initial check-in of the IPVLAN driver.")
Signed-off-by: "t.feng" <fengtao40@huawei.com>
Suggested-by: Florian Westphal <fw@strlen.de>
Reviewed-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 610a433)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I08a12f6e3b1614210867cd23e9071918dc380faf
tbalden pushed a commit that referenced this pull request Dec 13, 2023
Lockdep reports a circular lock dependency between the srcu and the
config_lock:

[  262.179917] -> #1 (&kvm->srcu){.+.+}-{0:0}:
[  262.182010]        __synchronize_srcu+0xb0/0x224
[  262.183422]        synchronize_srcu_expedited+0x24/0x34
[  262.184554]        kvm_io_bus_register_dev+0x324/0x50c
[  262.185650]        vgic_register_redist_iodev+0x254/0x398
[  262.186740]        vgic_v3_set_redist_base+0x3b0/0x724
[  262.188087]        kvm_vgic_addr+0x364/0x600
[  262.189189]        vgic_set_common_attr+0x90/0x544
[  262.190278]        vgic_v3_set_attr+0x74/0x9c
[  262.191432]        kvm_device_ioctl+0x2a0/0x4e4
[  262.192515]        __arm64_sys_ioctl+0x7ac/0x1ba8
[  262.193612]        invoke_syscall.constprop.0+0x70/0x1e0
[  262.195006]        do_el0_svc+0xe4/0x2d4
[  262.195929]        el0_svc+0x44/0x8c
[  262.196917]        el0t_64_sync_handler+0xf4/0x120
[  262.198238]        el0t_64_sync+0x190/0x194
[  262.199224]
[  262.199224] -> #0 (&kvm->arch.config_lock){+.+.}-{3:3}:
[  262.201094]        __lock_acquire+0x2b70/0x626c
[  262.202245]        lock_acquire+0x454/0x778
[  262.203132]        __mutex_lock+0x190/0x8b4
[  262.204023]        mutex_lock_nested+0x24/0x30
[  262.205100]        vgic_mmio_write_v3_misc+0x5c/0x2a0
[  262.206178]        dispatch_mmio_write+0xd8/0x258
[  262.207498]        __kvm_io_bus_write+0x1e0/0x350
[  262.208582]        kvm_io_bus_write+0xe0/0x1cc
[  262.209653]        io_mem_abort+0x2ac/0x6d8
[  262.210569]        kvm_handle_guest_abort+0x9b8/0x1f88
[  262.211937]        handle_exit+0xc4/0x39c
[  262.212971]        kvm_arch_vcpu_ioctl_run+0x90c/0x1c04
[  262.214154]        kvm_vcpu_ioctl+0x450/0x12f8
[  262.215233]        __arm64_sys_ioctl+0x7ac/0x1ba8
[  262.216402]        invoke_syscall.constprop.0+0x70/0x1e0
[  262.217774]        do_el0_svc+0xe4/0x2d4
[  262.218758]        el0_svc+0x44/0x8c
[  262.219941]        el0t_64_sync_handler+0xf4/0x120
[  262.221110]        el0t_64_sync+0x190/0x194

Note that the current report, which can be triggered by the vgic_irq
kselftest, is a triple chain that includes slots_lock, but after
inverting the slots_lock/config_lock dependency, the actual problem
reported above remains.

In several places, the vgic code calls kvm_io_bus_register_dev(), which
synchronizes the srcu, while holding config_lock (#1). And the MMIO
handler takes the config_lock while holding the srcu read lock (#0).

Break dependency #1, by registering the distributor and redistributors
without holding config_lock. The ITS also uses kvm_io_bus_register_dev()
but already relies on slots_lock to serialize calls.

The distributor iodev is created on the first KVM_RUN call. Multiple
threads will race for vgic initialization, and only the first one will
see !vgic_ready() under the lock. To serialize those threads, rely on
slots_lock rather than config_lock.

Redistributors are created earlier, through KVM_DEV_ARM_VGIC_GRP_ADDR
ioctls and vCPU creation. Similarly, serialize the iodev creation with
slots_lock, and the rest with config_lock.

Fixes: f003277 ("KVM: arm64: Use config_lock to protect vgic state")
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Oliver Upton <oliver.upton@linux.dev>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20230518100914.2837292-2-jean-philippe@linaro.org
(cherry picked from commit 59112e9)
Signed-off-by: Will Deacon <willdeacon@google.com>
Bug: 278750073
Change-Id: Ib3b4846646f148af95746d786fc55b589b3217b6
tbalden pushed a commit that referenced this pull request Dec 13, 2023
syzbot found arm64 builds would crash in sock_recv_mark()
when CONFIG_HARDENED_USERCOPY=y

x86 and powerpc are not detecting the issue because
they define user_access_begin.
This will be handled in a different patch,
because a check_object_size() is missing.

Only data from skb->cb[] can be copied directly to/from user space,
as explained in commit 79a8a64 ("net: Whitelist
the skbuff_head_cache "cb" field")

syzbot report was:
usercopy: Kernel memory exposure attempt detected from SLUB object 'skbuff_head_cache' (offset 168, size 4)!
------------[ cut here ]------------
kernel BUG at mm/usercopy.c:102 !
Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 4410 Comm: syz-executor533 Not tainted 6.2.0-rc7-syzkaller-17907-g2d3827b3f393 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/21/2023
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : usercopy_abort+0x90/0x94 mm/usercopy.c:90
lr : usercopy_abort+0x90/0x94 mm/usercopy.c:90
sp : ffff80000fb9b9a0
x29: ffff80000fb9b9b0 x28: ffff0000c6073400 x27: 0000000020001a00
x26: 0000000000000014 x25: ffff80000cf52000 x24: fffffc0000000000
x23: 05ffc00000000200 x22: fffffc000324bf80 x21: ffff0000c92fe1a8
x20: 0000000000000001 x19: 0000000000000004 x18: 0000000000000000
x17: 656a626f2042554c x16: ffff0000c6073dd0 x15: ffff80000dbd2118
x14: ffff0000c6073400 x13: 00000000ffffffff x12: ffff0000c6073400
x11: ff808000081bbb4c x10: 0000000000000000 x9 : 7b0572d7cc0ccf00
x8 : 7b0572d7cc0ccf00 x7 : ffff80000bf650d4 x6 : 0000000000000000
x5 : 0000000000000001 x4 : 0000000000000001 x3 : 0000000000000000
x2 : ffff0001fefbff08 x1 : 0000000100000000 x0 : 000000000000006c
Call trace:
usercopy_abort+0x90/0x94 mm/usercopy.c:90
__check_heap_object+0xa8/0x100 mm/slub.c:4761
check_heap_object mm/usercopy.c:196 [inline]
__check_object_size+0x208/0x6b8 mm/usercopy.c:251
check_object_size include/linux/thread_info.h:199 [inline]
__copy_to_user include/linux/uaccess.h:115 [inline]
put_cmsg+0x408/0x464 net/core/scm.c:238
sock_recv_mark net/socket.c:975 [inline]
__sock_recv_cmsgs+0x1fc/0x248 net/socket.c:984
sock_recv_cmsgs include/net/sock.h:2728 [inline]
packet_recvmsg+0x2d8/0x678 net/packet/af_packet.c:3482
____sys_recvmsg+0x110/0x3a0
___sys_recvmsg net/socket.c:2737 [inline]
__sys_recvmsg+0x194/0x210 net/socket.c:2767
__do_sys_recvmsg net/socket.c:2777 [inline]
__se_sys_recvmsg net/socket.c:2774 [inline]
__arm64_sys_recvmsg+0x2c/0x3c net/socket.c:2774
__invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
invoke_syscall+0x64/0x178 arch/arm64/kernel/syscall.c:52
el0_svc_common+0xbc/0x180 arch/arm64/kernel/syscall.c:142
do_el0_svc+0x48/0x110 arch/arm64/kernel/syscall.c:193
el0_svc+0x58/0x14c arch/arm64/kernel/entry-common.c:637
el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:591
Code: 91388800 aa0903e1 f90003e8 94e6d752 (d4210000)

Bug: 254441685
Fixes: 6fd1d51 ("net: SO_RCVMARK socket option for SO_MARK with recvmsg()")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Erin MacNeil <lnx.erin@gmail.com>
Reviewed-by: Alexander Lobakin <alexandr.lobakin@intel.com>
Link: https://lore.kernel.org/r/20230213160059.3829741-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
(cherry picked from commit 2558b80)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I5efc36c872cc640429a8ef538eb5ce043fc8dbb2
tbalden pushed a commit that referenced this pull request Dec 13, 2023
When ufshcd_err_handler() is executed, CQ event interrupt can enter waiting
for the same lock. This can happen in ufshcd_handle_mcq_cq_events() and
also in ufs_mtk_mcq_intr(). The following warning message will be generated
when &hwq->cq_lock is used in IRQ context with IRQ enabled. Use
ufshcd_mcq_poll_cqe_lock() with spin_lock_irqsave instead of spin_lock to
resolve the deadlock issue.

[name:lockdep&]WARNING: inconsistent lock state
[name:lockdep&]--------------------------------
[name:lockdep&]inconsistent {IN-HARDIRQ-W} -> {HARDIRQ-ON-W} usage.
[name:lockdep&]kworker/u16:4/260 [HC0[0]:SC0[0]:HE1:SE1] takes:
  ffffff8028444600 (&hwq->cq_lock){?.-.}-{2:2}, at:
ufshcd_mcq_poll_cqe_lock+0x30/0xe0
[name:lockdep&]{IN-HARDIRQ-W} state was registered at:
  lock_acquire+0x17c/0x33c
  _raw_spin_lock+0x5c/0x7c
  ufshcd_mcq_poll_cqe_lock+0x30/0xe0
  ufs_mtk_mcq_intr+0x60/0x1bc [ufs_mediatek_mod]
  __handle_irq_event_percpu+0x140/0x3ec
  handle_irq_event+0x50/0xd8
  handle_fasteoi_irq+0x148/0x2b0
  generic_handle_domain_irq+0x4c/0x6c
  gic_handle_irq+0x58/0x134
  call_on_irq_stack+0x40/0x74
  do_interrupt_handler+0x84/0xe4
  el1_interrupt+0x3c/0x78
<snip>

Possible unsafe locking scenario:
       CPU0
       ----
  lock(&hwq->cq_lock);
  <Interrupt>
    lock(&hwq->cq_lock);
  *** DEADLOCK ***
2 locks held by kworker/u16:4/260:

[name:lockdep&]
 stack backtrace:
CPU: 7 PID: 260 Comm: kworker/u16:4 Tainted: G S      W  OE
6.1.17-mainline-android14-2-g277223301adb #1
Workqueue: ufs_eh_wq_0 ufshcd_err_handler

 Call trace:
  dump_backtrace+0x10c/0x160
  show_stack+0x20/0x30
  dump_stack_lvl+0x98/0xd8
  dump_stack+0x20/0x60
  print_usage_bug+0x584/0x76c
  mark_lock_irq+0x488/0x510
  mark_lock+0x1ec/0x25c
  __lock_acquire+0x4d8/0xffc
  lock_acquire+0x17c/0x33c
  _raw_spin_lock+0x5c/0x7c
  ufshcd_mcq_poll_cqe_lock+0x30/0xe0
  ufshcd_poll+0x68/0x1b0
  ufshcd_transfer_req_compl+0x9c/0xc8
  ufshcd_err_handler+0x3bc/0xea0
  process_one_work+0x2f4/0x7e8
  worker_thread+0x234/0x450
  kthread+0x110/0x134
  ret_from_fork+0x10/0x20

Bug: 254441685
Fixes: ed97506 ("scsi: ufs: core: mcq: Add completion support in poll")
Reviewed-by: Can Guo <quic_cang@quicinc.com>
Reviewed-by: Stanley Chu <stanley.chu@mediatek.com>
Signed-off-by: Alice Chao <alice.chao@mediatek.com>
Link: https://lore.kernel.org/r/20230424080400.8955-1-alice.chao@mediatek.com
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
(cherry picked from commit 948afc6)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: If4af26c78561e0fd3f92bd039976380617cc3550
tbalden pushed a commit that referenced this pull request Dec 13, 2023
When booting with 'kasan.vmalloc=off', a kernel configured with support
for KASAN_HW_TAGS will explode at boot time due to bogus use of
virt_to_page() on a vmalloc adddress.  With CONFIG_DEBUG_VIRTUAL selected
this will be reported explicitly, and with or without CONFIG_DEBUG_VIRTUAL
the kernel will dereference a bogus address:

| ------------[ cut here ]------------
| virt_to_phys used for non-linear address: (____ptrval____) (0xffff800008000000)
| WARNING: CPU: 0 PID: 0 at arch/arm64/mm/physaddr.c:15 __virt_to_phys+0x78/0x80
| Modules linked in:
| CPU: 0 PID: 0 Comm: swapper/0 Not tainted 6.3.0-rc3-00073-g83865133300d-dirty aosp-mirror#4
| Hardware name: linux,dummy-virt (DT)
| pstate: 600000c5 (nZCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
| pc : __virt_to_phys+0x78/0x80
| lr : __virt_to_phys+0x78/0x80
| sp : ffffcd076afd3c80
| x29: ffffcd076afd3c80 x28: 0068000000000f07 x27: ffff800008000000
| x26: fffffbfff0000000 x25: fffffbffff000000 x24: ff00000000000000
| x23: ffffcd076ad3c000 x22: fffffc0000000000 x21: ffff800008000000
| x20: ffff800008004000 x19: ffff800008000000 x18: ffff800008004000
| x17: 666678302820295f x16: ffffffffffffffff x15: 0000000000000004
| x14: ffffcd076b009e88 x13: 0000000000000fff x12: 0000000000000003
| x11: 00000000ffffefff x10: c0000000ffffefff x9 : 0000000000000000
| x8 : 0000000000000000 x7 : 205d303030303030 x6 : 302e30202020205b
| x5 : ffffcd076b41d63f x4 : ffffcd076afd3827 x3 : 0000000000000000
| x2 : 0000000000000000 x1 : ffffcd076afd3a30 x0 : 000000000000004f
| Call trace:
|  __virt_to_phys+0x78/0x80
|  __kasan_unpoison_vmalloc+0xd4/0x478
|  __vmalloc_node_range+0x77c/0x7b8
|  __vmalloc_node+0x54/0x64
|  init_IRQ+0x94/0xc8
|  start_kernel+0x194/0x420
|  __primary_switched+0xbc/0xc4
| ---[ end trace 0000000000000000 ]---
| Unable to handle kernel paging request at virtual address 03fffacbe27b8000
| Mem abort info:
|   ESR = 0x0000000096000004
|   EC = 0x25: DABT (current EL), IL = 32 bits
|   SET = 0, FnV = 0
|   EA = 0, S1PTW = 0
|   FSC = 0x04: level 0 translation fault
| Data abort info:
|   ISV = 0, ISS = 0x00000004
|   CM = 0, WnR = 0
| swapper pgtable: 4k pages, 48-bit VAs, pgdp=0000000041bc5000
| [03fff
10000
acbe27b8000] pgd=0000000000000000, p4d=0000000000000000
| Internal error: Oops: 0000000096000004 [#1] PREEMPT SMP
| Modules linked in:
| CPU: 0 PID: 0 Comm: swapper/0 Tainted: G        W          6.3.0-rc3-00073-g83865133300d-dirty aosp-mirror#4
| Hardware name: linux,dummy-virt (DT)
| pstate: 200000c5 (nzCv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
| pc : __kasan_unpoison_vmalloc+0xe4/0x478
| lr : __kasan_unpoison_vmalloc+0xd4/0x478
| sp : ffffcd076afd3ca0
| x29: ffffcd076afd3ca0 x28: 0068000000000f07 x27: ffff800008000000
| x26: 0000000000000000 x25: 03fffacbe27b8000 x24: ff00000000000000
| x23: ffffcd076ad3c000 x22: fffffc0000000000 x21: ffff800008000000
| x20: ffff800008004000 x19: ffff800008000000 x18: ffff800008004000
| x17: 666678302820295f x16: ffffffffffffffff x15: 0000000000000004
| x14: ffffcd076b009e88 x13: 0000000000000fff x12: 0000000000000001
| x11: 0000800008000000 x10: ffff800008000000 x9 : ffffb2f8dee00000
| x8 : 000ffffb2f8dee00 x7 : 205d303030303030 x6 : 302e30202020205b
| x5 : ffffcd076b41d63f x4 : ffffcd076afd3827 x3 : 0000000000000000
| x2 : 0000000000000000 x1 : ffffcd076afd3a30 x0 : ffffb2f8dee00000
| Call trace:
|  __kasan_unpoison_vmalloc+0xe4/0x478
|  __vmalloc_node_range+0x77c/0x7b8
|  __vmalloc_node+0x54/0x64
|  init_IRQ+0x94/0xc8
|  start_kernel+0x194/0x420
|  __primary_switched+0xbc/0xc4
| Code: d34cfc08 aa1f03fa 8b081b39 d503201f (f9400328)
| ---[ end trace 0000000000000000 ]---
| Kernel panic - not syncing: Attempted to kill the idle task!

This is because init_vmalloc_pages() erroneously calls virt_to_page() on
a vmalloc address, while virt_to_page() is only valid for addresses in
the linear/direct map. Since init_vmalloc_pages() expects virtual
addresses in the vmalloc range, it must use vmalloc_to_page() rather
than virt_to_page().

We call init_vmalloc_pages() from __kasan_unpoison_vmalloc(), where we
check !is_vmalloc_or_module_addr(), suggesting that we might encounter a
non-vmalloc address. Luckily, this never happens. By design, we only
call __kasan_unpoison_vmalloc() on pointers in the vmalloc area, and I
have verified that we don't violate that expectation. Given that,
is_vmalloc_or_module_addr() must always be true for any legitimate
argument to __kasan_unpoison_vmalloc().

Correct init_vmalloc_pages() to use vmalloc_to_page(), and remove the
redundant and misleading use of is_vmalloc_or_module_addr() in
__kasan_unpoison_vmalloc().

Bug: 254441685
Link: https://lkml.kernel.org/r/20230418164212.1775741-1-mark.rutland@arm.com
Fixes: 6c2f761 ("kasan: fix zeroing vmalloc memory with HW_TAGS")
Signed-off-by: Mark Rutland <mark.rutland@arm.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Konovalov <andreyknvl@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Marco Elver <elver@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
(cherry picked from commit 29083fd)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I64bebeea4b1625e8f648ef6f99b99cc1dd4e6faa
tbalden pushed a commit that referenced this pull request Dec 13, 2023
Thread #1:

[122554.641906][   T92]  f2fs_getxattr+0xd4/0x5fc
    -> waiting for f2fs_down_read(&F2FS_I(inode)->i_xattr_sem);

[122554.641927][   T92]  __f2fs_get_acl+0x50/0x284
[122554.641948][   T92]  f2fs_init_acl+0x84/0x54c
[122554.641969][   T92]  f2fs_init_inode_metadata+0x460/0x5f0
[122554.641990][   T92]  f2fs_add_inline_entry+0x11c/0x350
    -> Locked dir->inode_page by f2fs_get_node_page()

[122554.642009][   T92]  f2fs_do_add_link+0x100/0x1e4
[122554.642025][   T92]  f2fs_create+0xf4/0x22c
[122554.642047][   T92]  vfs_create+0x130/0x1f4

Thread #2:

[123996.386358][   T92]  __get_node_page+0x8c/0x504
    -> waiting for dir->inode_page lock

[123996.386383][   T92]  read_all_xattrs+0x11c/0x1f4
[123996.386405][   T92]  __f2fs_setxattr+0xcc/0x528
[123996.386424][   T92]  f2fs_setxattr+0x158/0x1f4
    -> f2fs_down_write(&F2FS_I(inode)->i_xattr_sem);

[123996.386443][   T92]  __f2fs_set_acl+0x328/0x430
[123996.386618][   T92]  f2fs_set_acl+0x38/0x50
[123996.386642][   T92]  posix_acl_chmod+0xc8/0x1c8
[123996.386669][   T92]  f2fs_setattr+0x5e0/0x6bc
[123996.386689][   T92]  notify_change+0x4d8/0x580
[123996.386717][   T92]  chmod_common+0xd8/0x184
[123996.386748][   T92]  do_fchmodat+0x60/0x124
[123996.386766][   T92]  __arm64_sys_fchmodat+0x28/0x3c

Bug: 280545073
Fixes: 27161f1 "f2fs: avoid race in between read xattr & write xattr"
Cc: <stable@vger.kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
(cherry picked from commit 82d8a4f)
Change-Id: Iec383216e1887e11c69374d28e4ecdedda133919
tbalden pushed a commit that referenced this pull request Dec 13, 2023
[ Upstream commit 6eaf41e ]

Skip bound chain when flushing table rules, the rule that owns this
chain releases these objects.

Otherwise, the following warning is triggered:

  WARNING: CPU: 2 PID: 1217 at net/netfilter/nf_tables_api.c:2013 nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]
  CPU: 2 PID: 1217 Comm: chain-flush Not tainted 6.1.39 #1
  RIP: 0010:nf_tables_chain_destroy+0x1f7/0x210 [nf_tables]

Bug: 294357305
Fixes: d0e2c7d ("netfilter: nf_tables: add NFT_CHAIN_BINDING")
Reported-by: Kevin Rich <kevinrich1337@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit e18922c)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: I48f43d0ce3410efec2513479a1f4c7708a097b01
tbalden pushed a commit that referenced this pull request Sep 21, 2024
… lock.

[ Upstream commit 9841991 ]

Billy Jheng Bing-Jhong reported a race between __unix_gc() and
queue_oob().

__unix_gc() tries to garbage-collect close()d inflight sockets,
and then if the socket has MSG_OOB in unix_sk(sk)->oob_skb, GC
will drop the reference and set NULL to it locklessly.

However, the peer socket still can send MSG_OOB message and
queue_oob() can update unix_sk(sk)->oob_skb concurrently, leading
NULL pointer dereference. [0]

To fix the issue, let's update unix_sk(sk)->oob_skb under the
sk_receive_queue's lock and take it everywhere we touch oob_skb.

Note that we defer kfree_skb() in manage_oob() to silence lockdep
false-positive (See [1]).

[0]:
BUG: kernel NULL pointer dereference, address: 0000000000000008
 PF: supervisor write access in kernel mode
 PF: error_code(0x0002) - not-present page
PGD 8000000009f5e067 P4D 8000000009f5e067 PUD 9f5d067 PMD 0
Oops: 0002 [#1] PREEMPT SMP PTI
CPU: 3 PID: 50 Comm: kworker/3:1 Not tainted 6.9.0-rc5-00191-gd091e579b864 #110
Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.16.0-0-gd239552ce722-prebuilt.qemu.org 04/01/2014
Workqueue: events delayed_fput
RIP: 0010:skb_dequeue (./include/linux/skbuff.h:2386 ./include/linux/skbuff.h:2402 net/core/skbuff.c:3847)
Code: 39 e3 74 3e 8b 43 10 48 89 ef 83 e8 01 89 43 10 49 8b 44 24 08 49 c7 44 24 08 00 00 00 00 49 8b 14 24 49 c7 04 24 00 00 00 00 <48> 89 42 08 48 89 10 e8 e7 c5 42 00 4c 89 e0 5b 5d 41 5c c3 cc cc
RSP: 0018:ffffc900001bfd48 EFLAGS: 00000002
RAX: 0000000000000000 RBX: ffff8880088f5ae8 RCX: 00000000361289f9
RDX: 0000000000000000 RSI: 0000000000000206 RDI: ffff8880088f5b00
RBP: ffff8880088f5b00 R08: 0000000000080000 R09: 0000000000000001
R10: 0000000000000003 R11: 0000000000000001 R12: ffff8880056b6a00
R13: ffff8880088f5280 R14: 0000000000000001 R15: ffff8880088f5a80
FS:  0000000000000000(0000) GS:ffff88807dd80000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000008 CR3: 0000000006314000 CR4: 00000000007506f0
PKRU: 55555554
Call Trace:
 <TASK>
 unix_release_sock (net/unix/af_unix.c:654)
 unix_release (net/unix/af_unix.c:1050)
 __sock_release (net/socket.c:660)
 sock_close (net/socket.c:1423)
 __fput (fs/file_table.c:423)
 delayed_fput (fs/file_table.c:444 (discriminator 3))
 process_one_work (kernel/workqueue.c:3259)
 worker_thread (kernel/workqueue.c:3329 kernel/workqueue.c:3416)
 kthread (kernel/kthread.c:388)
 ret_from_fork (arch/x86/kernel/process.c:153)
 ret_from_fork_asm (arch/x86/entry/entry_64.S:257)
 </TASK>
Modules linked in:
CR2: 0000000000000008

Bug: 342490466
Bug: 351700379
Link: https://lore.kernel.org/netdev/a00d3993-c461-43f2-be6d-07259c98509a@rbox.co/ [1]
Fixes: 1279f9d ("af_unix: Call kfree_skb() for dead unix_(sk)->oob_skb in GC.")
Reported-by: Billy Jheng Bing-Jhong <billy@starlabs.sg>
Signed-off-by: Kuniyuki Iwashima <kuniyu@amazon.com>
Link: https://lore.kernel.org/r/20240516134835.8332-1-kuniyu@amazon.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 518a994)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ibf78b113496b5388a63207e7e582f77ddda8dec5
(cherry picked from commit 685a016)
Signed-off-by: Pindar Yang <pindaryang@google.com>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 3d887d5 ]

As drm_dp_get_mst_branch_device_by_guid() is called from
drm_dp_get_mst_branch_device_by_guid(), mstb parameter has to be checked,
otherwise NULL dereference may occur in the call to
the memcpy() and cause following:

[12579.365869] BUG: kernel NULL pointer dereference, address: 0000000000000049
[12579.365878] #PF: supervisor read access in kernel mode
[12579.365880] #PF: error_code(0x0000) - not-present page
[12579.365882] PGD 0 P4D 0
[12579.365887] Oops: 0000 [#1] PREEMPT SMP NOPTI
...
[12579.365895] Workqueue: events_long drm_dp_mst_up_req_work
[12579.365899] RIP: 0010:memcmp+0xb/0x29
[12579.365921] Call Trace:
[12579.365927] get_mst_branch_device_by_guid_helper+0x22/0x64
[12579.365930] drm_dp_mst_up_req_work+0x137/0x416
[12579.365933] process_one_work+0x1d0/0x419
[12579.365935] worker_thread+0x11a/0x289
[12579.365938] kthread+0x13e/0x14f
[12579.365941] ? process_one_work+0x419/0x419
[12579.365943] ? kthread_blkcg+0x31/0x31
[12579.365946] ret_from_fork+0x1f/0x30

As get_mst_branch_device_by_guid_helper() is recursive, moving condition
to the first line allow to remove a similar one for step over of NULL elements
inside a loop.

Fixes: 5e93b82 ("drm/dp/mst: move GUID storage from mgr, port to only mst branch")
Cc: <stable@vger.kernel.org> # 4.14+
Signed-off-by: Lukasz Majczak <lma@semihalf.com>
Reviewed-by: Radoslaw Biernacki <rad@chromium.org>
Signed-off-by: Manasi Navare <navaremanasi@chromium.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230922063410.23626-1-lma@semihalf.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit babddbf upstream.

when the checked address is illegal,the corresponding shadow address from
kasan_mem_to_shadow may have no mapping in mmu table.  Access such shadow
address causes kernel oops.  Here is a sample about oops on arm64(VA
39bit) with KASAN_SW_TAGS and KASAN_OUTLINE on:

[ffffffb80aaaaaaa] pgd=000000005d3ce003, p4d=000000005d3ce003,
    pud=000000005d3ce003, pmd=0000000000000000
Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
Modules linked in:
CPU: 3 PID: 100 Comm: sh Not tainted 6.6.0-rc1-dirty #43
Hardware name: linux,dummy-virt (DT)
pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : __hwasan_load8_noabort+0x5c/0x90
lr : do_ib_ob+0xf4/0x110
ffffffb80aaaaaaa is the shadow address for efffff80aaaaaaaa.
The problem is reading invalid shadow in kasan_check_range.

The generic kasan also has similar oops.

It only reports the shadow address which causes oops but not
the original address.

Commit 2f004ee("x86/kasan: Print original address on #GP")
introduce to kasan_non_canonical_hook but limit it to KASAN_INLINE.

This patch extends it to KASAN_OUTLINE mode.

Link: https://lkml.kernel.org/r/20231009073748.159228-1-haibo.li@mediatek.com
Fixes: 2f004ee("x86/kasan: Print original address on #GP")
Signed-off-by: Haibo Li <haibo.li@mediatek.com>
Reviewed-by: Andrey Konovalov <andreyknvl@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Haibo Li <haibo.li@mediatek.com>
Cc: Matthias Brugger <matthias.bgg@gmail.com>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kees Cook <keescook@chromium.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit bc056e7 upstream.

When we calculate the end position of ext4_free_extent, this position may
be exactly where ext4_lblk_t (i.e. uint) overflows. For example, if
ac_g_ex.fe_logical is 4294965248 and ac_orig_goal_len is 2048, then the
computed end is 0x100000000, which is 0. If ac->ac_o_ex.fe_logical is not
the first case of adjusting the best extent, that is, new_bex_end > 0, the
following BUG_ON will be triggered:

=========================================================
kernel BUG at fs/ext4/mballoc.c:5116!
invalid opcode: 0000 [#1] PREEMPT SMP PTI
CPU: 3 PID: 673 Comm: xfs_io Tainted: G E 6.5.0-rc1+ #279
RIP: 0010:ext4_mb_new_inode_pa+0xc5/0x430
Call Trace:
 <TASK>
 ext4_mb_use_best_found+0x203/0x2f0
 ext4_mb_try_best_found+0x163/0x240
 ext4_mb_regular_allocator+0x158/0x1550
 ext4_mb_new_blocks+0x86a/0xe10
 ext4_ext_map_blocks+0xb0c/0x13a0
 ext4_map_blocks+0x2cd/0x8f0
 ext4_iomap_begin+0x27b/0x400
 iomap_iter+0x222/0x3d0
 __iomap_dio_rw+0x243/0xcb0
 iomap_dio_rw+0x16/0x80
=========================================================

A simple reproducer demonstrating the problem:

	mkfs.ext4 -F /dev/sda -b 4096 100M
	mount /dev/sda /tmp/test
	fallocate -l1M /tmp/test/tmp
	fallocate -l10M /tmp/test/file
	fallocate -i -o 1M -l16777203M /tmp/test/file
	fsstress -d /tmp/test -l 0 -n 100000 -p 8 &
	sleep 10 && killall -9 fsstress
	rm -f /tmp/test/tmp
	xfs_io -c "open -ad /tmp/test/file" -c "pwrite -S 0xff 0 8192"

We simply refactor the logic for adjusting the best extent by adding
a temporary ext4_free_extent ex and use extent_logical_end() to avoid
overflow, which also simplifies the code.

Cc: stable@kernel.org # 6.4
Fixes: 93cdf49 ("ext4: Fix best extent lstart adjustment logic in ext4_mb_new_inode_pa()")
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Reviewed-by: Ritesh Harjani (IBM) <ritesh.list@gmail.com>
Link: https://lore.kernel.org/r/20230724121059.11834-3-libaokun1@huawei.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Baokun Li <libaokun1@huawei.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit 6c2f421 upstream.

Several core drivers and buses expect that driver_override is a
dynamically allocated memory thus later they can kfree() it.

However such assumption is not documented, there were in the past and
there are already users setting it to a string literal. This leads to
kfree() of static memory during device release (e.g. in error paths or
during unbind):

    kernel BUG at ../mm/slub.c:3960!
    Internal error: Oops - BUG: 0 [#1] PREEMPT SMP ARM
    ...
    (kfree) from [<c058da50>] (platform_device_release+0x88/0xb4)
    (platform_device_release) from [<c0585be0>] (device_release+0x2c/0x90)
    (device_release) from [<c0a69050>] (kobject_put+0xec/0x20c)
    (kobject_put) from [<c0f2f120>] (exynos5_clk_probe+0x154/0x18c)
    (exynos5_clk_probe) from [<c058de70>] (platform_drv_probe+0x6c/0xa4)
    (platform_drv_probe) from [<c058b7ac>] (really_probe+0x280/0x414)
    (really_probe) from [<c058baf4>] (driver_probe_device+0x78/0x1c4)
    (driver_probe_device) from [<c0589854>] (bus_for_each_drv+0x74/0xb8)
    (bus_for_each_drv) from [<c058b48c>] (__device_attach+0xd4/0x16c)
    (__device_attach) from [<c058a638>] (bus_probe_device+0x88/0x90)
    (bus_probe_device) from [<c05871fc>] (device_add+0x3dc/0x62c)
    (device_add) from [<c075ff10>] (of_platform_device_create_pdata+0x94/0xbc)
    (of_platform_device_create_pdata) from [<c07600ec>] (of_platform_bus_create+0x1a8/0x4fc)
    (of_platform_bus_create) from [<c0760150>] (of_platform_bus_create+0x20c/0x4fc)
    (of_platform_bus_create) from [<c07605f0>] (of_platform_populate+0x84/0x118)
    (of_platform_populate) from [<c0f3c964>] (of_platform_default_populate_init+0xa0/0xb8)
    (of_platform_default_populate_init) from [<c01031f8>] (do_one_initcall+0x8c/0x404)

Provide a helper which clearly documents the usage of driver_override.
This will allow later to reuse the helper and reduce the amount of
duplicated code.

Convert the platform driver to use a new helper and make the
driver_override field const char (it is not modified by the core).

Reviewed-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220419113435.246203-2-krzysztof.kozlowski@linaro.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Lee Jones <lee@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit daa9ada ]

Erhard reported that his G5 was crashing with v6.6-rc kernels:

  mpic: Setting up HT PICs workarounds for U3/U4
  BUG: Unable to handle kernel data access at 0xfeffbb62ffec65fe
  Faulting instruction address: 0xc00000000005dc40
  Oops: Kernel access of bad area, sig: 11 [#1]
  BE PAGE_SIZE=4K MMU=Hash SMP NR_CPUS=2 PowerMac
  Modules linked in:
  CPU: 0 PID: 0 Comm: swapper/0 Tainted: G                T  6.6.0-rc3-PMacGS #1
  Hardware name: PowerMac11,2 PPC970MP 0x440101 PowerMac
  NIP:  c00000000005dc40 LR: c000000000066660 CTR: c000000000007730
  REGS: c0000000022bf510 TRAP: 0380   Tainted: G                T (6.6.0-rc3-PMacGS)
  MSR:  9000000000001032 <SF,HV,ME,IR,DR,RI>  CR: 44004242  XER: 00000000
  IRQMASK: 3
  GPR00: 0000000000000000 c0000000022bf7b0 c0000000010c0b00 00000000000001ac
  GPR04: 0000000003c80000 0000000000000300 c0000000f20001ae 0000000000000300
  GPR08: 0000000000000006 feffbb62ffec65ff 0000000000000001 0000000000000000
  GPR12: 9000000000001032 c000000002362000 c000000000f76b80 000000000349ecd8
  GPR16: 0000000002367ba8 0000000002367f08 0000000000000006 0000000000000000
  GPR20: 00000000000001ac c000000000f6f920 c0000000022cd985 000000000000000c
  GPR24: 0000000000000300 00000003b0a3691d c0003e008030000e 0000000000000000
  GPR28: c00000000000000c c0000000f20001ee feffbb62ffec65fe 00000000000001ac
  NIP hash_page_do_lazy_icache+0x50/0x100
  LR  __hash_page_4K+0x420/0x590
  Call Trace:
    hash_page_mm+0x364/0x6f0
    do_hash_fault+0x114/0x2b0
    data_access_common_virt+0x198/0x1f0
  --- interrupt: 300 at mpic_init+0x4bc/0x10c4
  NIP:  c000000002020a5c LR: c000000002020a04 CTR: 0000000000000000
  REGS: c0000000022bf9f0 TRAP: 0300   Tainted: G                T (6.6.0-rc3-PMacGS)
  MSR:  9000000000001032 <SF,HV,ME,IR,DR,RI>  CR: 24004248  XER: 00000000
  DAR: c0003e008030000e DSISR: 40000000 IRQMASK: 1
  ...
  NIP mpic_init+0x4bc/0x10c4
  LR  mpic_init+0x464/0x10c4
  --- interrupt: 300
    pmac_setup_one_mpic+0x258/0x2dc
    pmac_pic_init+0x28c/0x3d8
    init_IRQ+0x90/0x140
    start_kernel+0x57c/0x78c
    start_here_common+0x1c/0x20

A bisect pointed to the breakage beginning with commit 9fee28b ("powerpc:
implement the new page table range API").

Analysis of the oops pointed to a struct page with a corrupted
compound_head being loaded via page_folio() -> _compound_head() in
hash_page_do_lazy_icache().

The access by the mpic code is to an MMIO address, so the expectation
is that the struct page for that address would be initialised by
init_unavailable_range(), as pointed out by Aneesh.

Instrumentation showed that was not the case, which eventually lead to
the realisation that pfn_valid() was returning false for that address,
causing the struct page to not be initialised.

Because the system is using FLATMEM, the version of pfn_valid() in
memory_model.h is used:

static inline int pfn_valid(unsigned long pfn)
{
	...
	return pfn >= pfn_offset && (pfn - pfn_offset) < max_mapnr;
}

Which relies on max_mapnr being initialised. Early in boot max_mapnr is
zero meaning no PFNs are valid.

max_mapnr is initialised in mem_init() called via:

  start_kernel()
    mm_core_init()  # init/main.c:928
      mem_init()

But that is too late for the usage in init_unavailable_range() called via:

  start_kernel()
    setup_arch()    # init/main.c:893
      paging_init()
        free_area_init()
          init_unavailable_range()

Although max_mapnr is currently set in mem_init(), the value is actually
already available much earlier, as soon as mem_topology_setup() has
completed, which is also before paging_init() is called. So move the
initialisation there, which causes paging_init() to correctly initialise
the struct page and fixes the bug.

This bug seems to have been lurking for years, but went unnoticed
because the pre-folio code was inspecting the uninitialised page->flags
but not dereferencing it.

Thanks to Erhard and Aneesh for help debugging.

Reported-by: Erhard Furtner <erhard_f@mailbox.org>
Closes: https://lore.kernel.org/all/20230929132750.3cd98452@yea/
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20231023112500.1550208-1-mpe@ellerman.id.au
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 4428399 ]

The lt8912b driver, in its bridge detach function, calls
drm_connector_unregister() and drm_connector_cleanup().

drm_connector_unregister() should be called only for connectors
explicitly registered with drm_connector_register(), which is not the
case in lt8912b.

The driver's drm_connector_funcs.destroy hook is set to
drm_connector_cleanup().

Thus the driver should not call either drm_connector_unregister() nor
drm_connector_cleanup() in its lt8912_bridge_detach(), as they cause a
crash on bridge detach:

Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000
Mem abort info:
  ESR = 0x0000000096000006
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x06: level 2 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000006, ISS2 = 0x00000000
  CM = 0, WnR = 0, TnD = 0, TagAccess = 0
  GCS = 0, Overlay = 0, DirtyBit = 0, Xs = 0
user pgtable: 4k pages, 48-bit VAs, pgdp=00000000858f3000
[0000000000000000] pgd=0800000085918003, p4d=0800000085918003, pud=0800000085431003, pmd=0000000000000000
Internal error: Oops: 0000000096000006 [#1] PREEMPT SMP
Modules linked in: tidss(-) display_connector lontium_lt8912b tc358768 panel_lvds panel_simple drm_dma_helper drm_kms_helper drm drm_panel_orientation_quirks
CPU: 3 PID: 462 Comm: rmmod Tainted: G        W          6.5.0-rc2+ #2
Hardware name: Toradex Verdin AM62 on Verdin Development Board (DT)
pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : drm_connector_cleanup+0x78/0x2d4 [drm]
lr : lt8912_bridge_detach+0x54/0x6c [lontium_lt8912b]
sp : ffff800082ed3a90
x29: ffff800082ed3a90 x28: ffff0000040c1940 x27: 0000000000000000
x26: 0000000000000000 x25: dead000000000122 x24: dead000000000122
x23: dead000000000100 x22: ffff000003fb6388 x21: 0000000000000000
x20: 0000000000000000 x19: ffff000003fb6260 x18: fffffffffffe56e8
x17: 0000000000000000 x16: 0010000000000000 x15: 0000000000000038
x14: 0000000000000000 x13: ffff800081914b48 x12: 000000000000040e
x11: 000000000000015a x10: ffff80008196ebb8 x9 : ffff800081914b48
x8 : 00000000ffffefff x7 : ffff0000040c1940 x6 : ffff80007aa649d0
x5 : 0000000000000000 x4 : 0000000000000001 x3 : ffff80008159e008
x2 : 0000000000000000 x1 : 0000000000000000 x0 : 0000000000000000
Call trace:
 drm_connector_cleanup+0x78/0x2d4 [drm]
 lt8912_bridge_detach+0x54/0x6c [lontium_lt8912b]
 drm_bridge_detach+0x44/0x84 [drm]
 drm_encoder_cleanup+0x40/0xb8 [drm]
 drmm_encoder_alloc_release+0x1c/0x30 [drm]
 drm_managed_release+0xac/0x148 [drm]
 drm_dev_put.part.0+0x88/0xb8 [drm]
 devm_drm_dev_init_release+0x14/0x24 [drm]
 devm_action_release+0x14/0x20
 release_nodes+0x5c/0x90
 devres_release_all+0x8c/0xe0
 device_unbind_cleanup+0x18/0x68
 device_release_driver_internal+0x208/0x23c
 driver_detach+0x4c/0x94
 bus_remove_driver+0x70/0xf4
 driver_unregister+0x30/0x60
 platform_driver_unregister+0x14/0x20
 tidss_platform_driver_exit+0x18/0xb2c [tidss]
 __arm64_sys_delete_module+0x1a0/0x2b4
 invoke_syscall+0x48/0x110
 el0_svc_common.constprop.0+0x60/0x10c
 do_el0_svc_compat+0x1c/0x40
 el0_svc_compat+0x40/0xac
 el0t_32_sync_handler+0xb0/0x138
 el0t_32_sync+0x194/0x198
Code: 9104a276 f2fbd5b7 aa0203e1 91008af8 (f85c0420)

Fixes: 30e2ae9 ("drm/bridge: Introduce LT8912B DSI to HDMI bridge")
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Reviewed-by: Robert Foss <rfoss@kernel.org>
Signed-off-by: Robert Foss <rfoss@kernel.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20230804-lt8912b-v1-2-c542692c6a2f@ideasonboard.com
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 265f3ed ]

All callers of work_on_cpu() share the same lock class key for all the
functions queued. As a result the workqueue related locking scenario for
a function A may be spuriously accounted as an inversion against the
locking scenario of function B such as in the following model:

	long A(void *arg)
	{
		mutex_lock(&mutex);
		mutex_unlock(&mutex);
	}

	long B(void *arg)
	{
	}

	void launchA(void)
	{
		work_on_cpu(0, A, NULL);
	}

	void launchB(void)
	{
		mutex_lock(&mutex);
		work_on_cpu(1, B, NULL);
		mutex_unlock(&mutex);
	}

launchA and launchB running concurrently have no chance to deadlock.
However the above can be reported by lockdep as a possible locking
inversion because the works containing A() and B() are treated as
belonging to the same locking class.

The following shows an existing example of such a spurious lockdep splat:

	 ======================================================
	 WARNING: possible circular locking dependency detected
	 6.6.0-rc1-00065-g934ebd6e5359 #35409 Not tainted
	 ------------------------------------------------------
	 kworker/0:1/9 is trying to acquire lock:
	 ffffffff9bc72f30 (cpu_hotplug_lock){++++}-{0:0}, at: _cpu_down+0x57/0x2b0

	 but task is already holding lock:
	 ffff9e3bc0057e60 ((work_completion)(&wfc.work)){+.+.}-{0:0}, at: process_scheduled_works+0x216/0x500

	 which lock already depends on the new lock.

	 the existing dependency chain (in reverse order) is:

	 -> #2 ((work_completion)(&wfc.work)){+.+.}-{0:0}:
			__flush_work+0x83/0x4e0
			work_on_cpu+0x97/0xc0
			rcu_nocb_cpu_offload+0x62/0xb0
			rcu_nocb_toggle+0xd0/0x1d0
			kthread+0xe6/0x120
			ret_from_fork+0x2f/0x40
			ret_from_fork_asm+0x1b/0x30

	 -> #1 (rcu_state.barrier_mutex){+.+.}-{3:3}:
			__mutex_lock+0x81/0xc80
			rcu_nocb_cpu_deoffload+0x38/0xb0
			rcu_nocb_toggle+0x144/0x1d0
			kthread+0xe6/0x120
			ret_from_fork+0x2f/0x40
			ret_from_fork_asm+0x1b/0x30

	 -> #0 (cpu_hotplug_lock){++++}-{0:0}:
			__lock_acquire+0x1538/0x2500
			lock_acquire+0xbf/0x2a0
			percpu_down_write+0x31/0x200
			_cpu_down+0x57/0x2b0
			__cpu_down_maps_locked+0x10/0x20
			work_for_cpu_fn+0x15/0x20
			process_scheduled_works+0x2a7/0x500
			worker_thread+0x173/0x330
			kthread+0xe6/0x120
			ret_from_fork+0x2f/0x40
			ret_from_fork_asm+0x1b/0x30

	 other info that might help us debug this:

	 Chain exists of:
	   cpu_hotplug_lock --> rcu_state.barrier_mutex --> (work_completion)(&wfc.work)

	  Possible unsafe locking scenario:

			CPU0                    CPU1
			----                    ----
	   lock((work_completion)(&wfc.work));
									lock(rcu_state.barrier_mutex);
									lock((work_completion)(&wfc.work));
	   lock(cpu_hotplug_lock);

	  *** DEADLOCK ***

	 2 locks held by kworker/0:1/9:
	  #0: ffff900481068b38 ((wq_completion)events){+.+.}-{0:0}, at: process_scheduled_works+0x212/0x500
	  #1: ffff9e3bc0057e60 ((work_completion)(&wfc.work)){+.+.}-{0:0}, at: process_scheduled_works+0x216/0x500

	 stack backtrace:
	 CPU: 0 PID: 9 Comm: kworker/0:1 Not tainted 6.6.0-rc1-00065-g934ebd6e5359 #35409
	 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.12.0-59-gc9ba5276e321-prebuilt.qemu.org 04/01/2014
	 Workqueue: events work_for_cpu_fn
	 Call Trace:
	 rcu-torture: rcu_torture_read_exit: Start of episode
	  <TASK>
	  dump_stack_lvl+0x4a/0x80
	  check_noncircular+0x132/0x150
	  __lock_acquire+0x1538/0x2500
	  lock_acquire+0xbf/0x2a0
	  ? _cpu_down+0x57/0x2b0
	  percpu_down_write+0x31/0x200
	  ? _cpu_down+0x57/0x2b0
	  _cpu_down+0x57/0x2b0
	  __cpu_down_maps_locked+0x10/0x20
	  work_for_cpu_fn+0x15/0x20
	  process_scheduled_works+0x2a7/0x500
	  worker_thread+0x173/0x330
	  ? __pfx_worker_thread+0x10/0x10
	  kthread+0xe6/0x120
	  ? __pfx_kthread+0x10/0x10
	  ret_from_fork+0x2f/0x40
	  ? __pfx_kthread+0x10/0x10
	  ret_from_fork_asm+0x1b/0x30
	  </TASK

Fix this with providing one lock class key per work_on_cpu() caller.

Reported-and-tested-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Tejun Heo <tj@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 170c75d ]

As talked about in commit d66d24a ("ath10k: Keep track of which
interrupts fired, don't poll them"), if we access the copy engine
register at a bad time then ath10k can go boom. However, it's not
necessarily easy to know when it's safe to access them.

The ChromeOS test labs saw a crash that looked like this at
shutdown/reboot time (on a chromeos-5.15 kernel, but likely the
problem could also reproduce upstream):

Internal error: synchronous external abort: 96000010 [#1] PREEMPT SMP
...
CPU: 4 PID: 6168 Comm: reboot Not tainted 5.15.111-lockdep-19350-g1d624fe6758f #1 010b9b233ab055c27c6dc88efb0be2f4e9e86f51
Hardware name: Google Kingoftown (DT)
...
pc : ath10k_snoc_read32+0x50/0x74 [ath10k_snoc]
lr : ath10k_snoc_read32+0x24/0x74 [ath10k_snoc]
...
Call trace:
ath10k_snoc_read32+0x50/0x74 [ath10k_snoc ...]
ath10k_ce_disable_interrupt+0x190/0x65c [ath10k_core ...]
ath10k_ce_disable_interrupts+0x8c/0x120 [ath10k_core ...]
ath10k_snoc_hif_stop+0x78/0x660 [ath10k_snoc ...]
ath10k_core_stop+0x13c/0x1ec [ath10k_core ...]
ath10k_halt+0x398/0x5b0 [ath10k_core ...]
ath10k_stop+0xfc/0x1a8 [ath10k_core ...]
drv_stop+0x148/0x6b4 [mac80211 ...]
ieee80211_stop_device+0x70/0x80 [mac80211 ...]
ieee80211_do_stop+0x10d8/0x15b0 [mac80211 ...]
ieee80211_stop+0x144/0x1a0 [mac80211 ...]
__dev_close_many+0x1e8/0x2c0
dev_close_many+0x198/0x33c
dev_close+0x140/0x210
cfg80211_shutdown_all_interfaces+0xc8/0x1e0 [cfg80211 ...]
ieee80211_remove_interfaces+0x118/0x5c4 [mac80211 ...]
ieee80211_unregister_hw+0x64/0x1f4 [mac80211 ...]
ath10k_mac_unregister+0x4c/0xf0 [ath10k_core ...]
ath10k_core_unregister+0x80/0xb0 [ath10k_core ...]
ath10k_snoc_free_resources+0xb8/0x1ec [ath10k_snoc ...]
ath10k_snoc_shutdown+0x98/0xd0 [ath10k_snoc ...]
platform_shutdown+0x7c/0xa0
device_shutdown+0x3e0/0x58c
kernel_restart_prepare+0x68/0xa0
kernel_restart+0x28/0x7c

Though there's no known way to reproduce the problem, it makes sense
that it would be the same issue where we're trying to access copy
engine registers when it's not allowed.

Let's fix this by changing how we "disable" the interrupts. Instead of
tweaking the copy engine registers we'll just use disable_irq() and
enable_irq(). Then we'll configure the interrupts once at power up
time.

Tested-on: WCN3990 hw1.0 SNOC WLAN.HL.3.2.2.c10-00754-QCAHLSWMTPL-1

Signed-off-by: Douglas Anderson <dianders@chromium.org>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20230630151842.1.If764ede23c4e09a43a842771c2ddf99608f25f8e@changeid
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 624820f ]

fix crash because of null pointers

[ 6104.969662] BUG: kernel NULL pointer dereference, address: 00000000000000c8
[ 6104.969667] #PF: supervisor read access in kernel mode
[ 6104.969668] #PF: error_code(0x0000) - not-present page
[ 6104.969670] PGD 0 P4D 0
[ 6104.969673] Oops: 0000 [#1] SMP NOPTI
[ 6104.969684] RIP: 0010:btusb_mtk_hci_wmt_sync+0x144/0x220 [btusb]
[ 6104.969688] RSP: 0018:ffffb8d681533d48 EFLAGS: 00010246
[ 6104.969689] RAX: 0000000000000000 RBX: ffff8ad560bb2000 RCX: 0000000000000006
[ 6104.969691] RDX: 0000000000000000 RSI: ffffb8d681533d08 RDI: 0000000000000000
[ 6104.969692] RBP: ffffb8d681533d70 R08: 0000000000000001 R09: 0000000000000001
[ 6104.969694] R10: 0000000000000001 R11: 00000000fa83b2da R12: ffff8ad461d1d7c0
[ 6104.969695] R13: 0000000000000000 R14: ffff8ad459618c18 R15: ffffb8d681533d90
[ 6104.969697] FS:  00007f5a1cab9d40(0000) GS:ffff8ad578200000(0000) knlGS:00000
[ 6104.969699] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[ 6104.969700] CR2: 00000000000000c8 CR3: 000000018620c001 CR4: 0000000000760ef0
[ 6104.969701] PKRU: 55555554
[ 6104.969702] Call Trace:
[ 6104.969708]  btusb_mtk_shutdown+0x44/0x80 [btusb]
[ 6104.969732]  hci_dev_do_close+0x470/0x5c0 [bluetooth]
[ 6104.969748]  hci_rfkill_set_block+0x56/0xa0 [bluetooth]
[ 6104.969753]  rfkill_set_block+0x92/0x160
[ 6104.969755]  rfkill_fop_write+0x136/0x1e0
[ 6104.969759]  __vfs_write+0x18/0x40
[ 6104.969761]  vfs_write+0xdf/0x1c0
[ 6104.969763]  ksys_write+0xb1/0xe0
[ 6104.969765]  __x64_sys_write+0x1a/0x20
[ 6104.969769]  do_syscall_64+0x51/0x180
[ 6104.969771]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[ 6104.969773] RIP: 0033:0x7f5a21f18fef
[ 6104.9] RSP: 002b:00007ffeefe39010 EFLAGS: 00000293 ORIG_RAX: 0000000000000001
[ 6104.969780] RAX: ffffffffffffffda RBX: 000055c10a7560a0 RCX: 00007f5a21f18fef
[ 6104.969781] RDX: 0000000000000008 RSI: 00007ffeefe39060 RDI: 0000000000000012
[ 6104.969782] RBP: 00007ffeefe39060 R08: 0000000000000000 R09: 0000000000000017
[ 6104.969784] R10: 00007ffeefe38d97 R11: 0000000000000293 R12: 0000000000000002
[ 6104.969785] R13: 00007ffeefe39220 R14: 00007ffeefe391a0 R15: 000055c10a72acf0

Signed-off-by: youwan Wang <wangyouwan@126.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 5104fdf ]

In certain types of chips, such as VEGA20, reading the amdgpu_regs_smc file could result in an abnormal null pointer access when the smc_rreg pointer is NULL. Below are the steps to reproduce this issue and the corresponding exception log:

1. Navigate to the directory: /sys/kernel/debug/dri/0
2. Execute command: cat amdgpu_regs_smc
3. Exception Log::
[4005007.702554] BUG: kernel NULL pointer dereference, address: 0000000000000000
[4005007.702562] #PF: supervisor instruction fetch in kernel mode
[4005007.702567] #PF: error_code(0x0010) - not-present page
[4005007.702570] PGD 0 P4D 0
[4005007.702576] Oops: 0010 [#1] SMP NOPTI
[4005007.702581] CPU: 4 PID: 62563 Comm: cat Tainted: G           OE     5.15.0-43-generic #46-Ubunt       u
[4005007.702590] RIP: 0010:0x0
[4005007.702598] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
[4005007.702600] RSP: 0018:ffffa82b46d27da0 EFLAGS: 00010206
[4005007.702605] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffa82b46d27e68
[4005007.702609] RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff9940656e0000
[4005007.702612] RBP: ffffa82b46d27dd8 R08: 0000000000000000 R09: ffff994060c07980
[4005007.702615] R10: 0000000000020000 R11: 0000000000000000 R12: 00007f5e06753000
[4005007.702618] R13: ffff9940656e0000 R14: ffffa82b46d27e68 R15: 00007f5e06753000
[4005007.702622] FS:  00007f5e0755b740(0000) GS:ffff99479d300000(0000) knlGS:0000000000000000
[4005007.702626] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[4005007.702629] CR2: ffffffffffffffd6 CR3: 00000003253fc000 CR4: 00000000003506e0
[4005007.702633] Call Trace:
[4005007.702636]  <TASK>
[4005007.702640]  amdgpu_debugfs_regs_smc_read+0xb0/0x120 [amdgpu]
[4005007.703002]  full_proxy_read+0x5c/0x80
[4005007.703011]  vfs_read+0x9f/0x1a0
[4005007.703019]  ksys_read+0x67/0xe0
[4005007.703023]  __x64_sys_read+0x19/0x20
[4005007.703028]  do_syscall_64+0x5c/0xc0
[4005007.703034]  ? do_user_addr_fault+0x1e3/0x670
[4005007.703040]  ? exit_to_user_mode_prepare+0x37/0xb0
[4005007.703047]  ? irqentry_exit_to_user_mode+0x9/0x20
[4005007.703052]  ? irqentry_exit+0x19/0x30
[4005007.703057]  ? exc_page_fault+0x89/0x160
[4005007.703062]  ? asm_exc_page_fault+0x8/0x30
[4005007.703068]  entry_SYSCALL_64_after_hwframe+0x44/0xae
[4005007.703075] RIP: 0033:0x7f5e07672992
[4005007.703079] Code: c0 e9 b2 fe ff ff 50 48 8d 3d fa b2 0c 00 e8 c5 1d 02 00 0f 1f 44 00 00 f3 0f        1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 0f 05 <48> 3d 00 f0 ff ff 77 56 c3 0f 1f 44 00 00 48 83 e       c 28 48 89 54 24
[4005007.703083] RSP: 002b:00007ffe03097898 EFLAGS: 00000246 ORIG_RAX: 0000000000000000
[4005007.703088] RAX: ffffffffffffffda RBX: 0000000000020000 RCX: 00007f5e07672992
[4005007.703091] RDX: 0000000000020000 RSI: 00007f5e06753000 RDI: 0000000000000003
[4005007.703094] RBP: 00007f5e06753000 R08: 00007f5e06752010 R09: 00007f5e06752010
[4005007.703096] R10: 0000000000000022 R11: 0000000000000246 R12: 0000000000022000
[4005007.703099] R13: 0000000000000003 R14: 0000000000020000 R15: 0000000000020000
[4005007.703105]  </TASK>
[4005007.703107] Modules linked in: nf_tables libcrc32c nfnetlink algif_hash af_alg binfmt_misc nls_       iso8859_1 ipmi_ssif ast intel_rapl_msr intel_rapl_common drm_vram_helper drm_ttm_helper amd64_edac t       tm edac_mce_amd kvm_amd ccp mac_hid k10temp kvm acpi_ipmi ipmi_si rapl sch_fq_codel ipmi_devintf ipm       i_msghandler msr parport_pc ppdev lp parport mtd pstore_blk efi_pstore ramoops pstore_zone reed_solo       mon ip_tables x_tables autofs4 ib_uverbs ib_core amdgpu(OE) amddrm_ttm_helper(OE) amdttm(OE) iommu_v       2 amd_sched(OE) amdkcl(OE) drm_kms_helper syscopyarea sysfillrect sysimgblt fb_sys_fops cec rc_core        drm igb ahci xhci_pci libahci i2c_piix4 i2c_algo_bit xhci_pci_renesas dca
[4005007.703184] CR2: 0000000000000000
[4005007.703188] ---[ end trace ac65a538d240da39 ]---
[4005007.800865] RIP: 0010:0x0
[4005007.800871] Code: Unable to access opcode bytes at RIP 0xffffffffffffffd6.
[4005007.800874] RSP: 0018:ffffa82b46d27da0 EFLAGS: 00010206
[4005007.800878] RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffa82b46d27e68
[4005007.800881] RDX: 0000000000000001 RSI: 0000000000000000 RDI: ffff9940656e0000
[4005007.800883] RBP: ffffa82b46d27dd8 R08: 0000000000000000 R09: ffff994060c07980
[4005007.800886] R10: 0000000000020000 R11: 0000000000000000 R12: 00007f5e06753000
[4005007.800888] R13: ffff9940656e0000 R14: ffffa82b46d27e68 R15: 00007f5e06753000
[4005007.800891] FS:  00007f5e0755b740(0000) GS:ffff99479d300000(0000) knlGS:0000000000000000
[4005007.800895] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[4005007.800898] CR2: ffffffffffffffd6 CR3: 00000003253fc000 CR4: 00000000003506e0

Signed-off-by: Qu Huang <qu.huang@linux.dev>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 87c3a58 ]

Except on x86, preempt_count is always accessed with READ_ONCE().
Repeated invocations in macros like irq_count() produce repeated loads.
These redundant instructions appear in various fast paths. In the one
shown below, for example, irq_count() is evaluated during kernel entry
if !tick_nohz_full_cpu(smp_processor_id()).

0001ed0a <irq_enter_rcu>:
   1ed0a:       4e56 0000       linkw %fp,#0
   1ed0e:       200f            movel %sp,%d0
   1ed10:       0280 ffff e000  andil #-8192,%d0
   1ed16:       2040            moveal %d0,%a0
   1ed18:       2028 0008       movel %a0@(8),%d0
   1ed1c:       0680 0001 0000  addil #65536,%d0
   1ed22:       2140 0008       movel %d0,%a0@(8)
   1ed26:       082a 0001 000f  btst #1,%a2@(15)
   1ed2c:       670c            beqs 1ed3a <irq_enter_rcu+0x30>
   1ed2e:       2028 0008       movel %a0@(8),%d0
   1ed32:       2028 0008       movel %a0@(8),%d0
   1ed36:       2028 0008       movel %a0@(8),%d0
   1ed3a:       4e5e            unlk %fp
   1ed3c:       4e75            rts

This patch doesn't prevent the pointless btst and beqs instructions
above, but it does eliminate 2 of the 3 pointless move instructions
here and elsewhere.

On x86, preempt_count is per-cpu data and the problem does not arise
presumably because the compiler is free to optimize more effectively.

This patch was tested on m68k and x86. I was expecting no changes
to object code for x86 and mostly that's what I saw. However, there
were a few places where code generation was perturbed for some reason.

The performance issue addressed here is minor on uniprocessor m68k. I
got a 0.01% improvement from this patch for a simple "find /sys -false"
benchmark. For architectures and workloads susceptible to cache line bounce
the improvement is expected to be larger. The only SMP architecture I have
is x86, and as x86 unaffected I have not done any further measurements.

Fixes: 1511583 ("preempt: Cleanup the macro maze a bit")
Signed-off-by: Finn Thain <fthain@linux-m68k.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/0a403120a682a525e6db2d81d1a3ffcc137c3742.1694756831.git.fthain@linux-m68k.org
Signed-off-by: Sasha Levin <sashal@kernel.org>
9E7A tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 18f0394 ]

Inspired by syzbot reports using a stack of multiple ipvlan devices.

Reduce stack size needed in ipvlan_process_v6_outbound() by moving
the flowi6 struct used for the route lookup in an non inlined
helper. ipvlan_route_v6_outbound() needs 120 bytes on the stack,
immediately reclaimed.

Also make sure ipvlan_process_v4_outbound() is not inlined.

We might also have to lower MAX_NEST_DEV, because only syzbot uses
setups with more than four stacked devices.

BUG: TASK stack guard page was hit at ffffc9000e803ff8 (stack is ffffc9000e804000..ffffc9000e808000)
stack guard page: 0000 [#1] SMP KASAN
CPU: 0 PID: 13442 Comm: syz-executor.4 Not tainted 6.1.52-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/09/2023
RIP: 0010:kasan_check_range+0x4/0x2a0 mm/kasan/generic.c:188
Code: 48 01 c6 48 89 c7 e8 db 4e c1 03 31 c0 5d c3 cc 0f 0b eb 02 0f 0b b8 ea ff ff ff 5d c3 cc 00 00 cc cc 00 00 cc cc 55 48 89 e5 <41> 57 41 56 41 55 41 54 53 b0 01 48 85 f6 0f 84 a4 01 00 00 48 89
RSP: 0018:ffffc9000e804000 EFLAGS: 00010246
RAX: 0000000000000000 RBX: 0000000000000000 RCX: ffffffff817e5bf2
RDX: 0000000000000000 RSI: 0000000000000008 RDI: ffffffff887c6568
RBP: ffffc9000e804000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: dffffc0000000001 R12: 1ffff92001d0080c
R13: dffffc0000000000 R14: ffffffff87e6b100 R15: 0000000000000000
FS: 00007fd0c55826c0(0000) GS:ffff8881f6800000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: ffffc9000e803ff8 CR3: 0000000170ef7000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<#DF>
</#DF>
<TASK>
[<ffffffff81f281d1>] __kasan_check_read+0x11/0x20 mm/kasan/shadow.c:31
[<ffffffff817e5bf2>] instrument_atomic_read include/linux/instrumented.h:72 [inline]
[<ffffffff817e5bf2>] _test_bit include/asm-generic/bitops/instrumented-non-atomic.h:141 [inline]
[<ffffffff817e5bf2>] cpumask_test_cpu include/linux/cpumask.h:506 [inline]
[<ffffffff817e5bf2>] cpu_online include/linux/cpumask.h:1092 [inline]
[<ffffffff817e5bf2>] trace_lock_acquire include/trace/events/lock.h:24 [inline]
[<ffffffff817e5bf2>] lock_acquire+0xe2/0x590 kernel/locking/lockdep.c:5632
[<ffffffff8563221e>] rcu_lock_acquire+0x2e/0x40 include/linux/rcupdate.h:306
[<ffffffff8561464d>] rcu_read_lock include/linux/rcupdate.h:747 [inline]
[<ffffffff8561464d>] ip6_pol_route+0x15d/0x1440 net/ipv6/route.c:2221
[<ffffffff85618120>] ip6_pol_route_output+0x50/0x80 net/ipv6/route.c:2606
[<ffffffff856f65b5>] pol_lookup_func include/net/ip6_fib.h:584 [inline]
[<ffffffff856f65b5>] fib6_rule_lookup+0x265/0x620 net/ipv6/fib6_rules.c:116
[<ffffffff85618009>] ip6_route_output_flags_noref+0x2d9/0x3a0 net/ipv6/route.c:2638
[<ffffffff8561821a>] ip6_route_output_flags+0xca/0x340 net/ipv6/route.c:2651
[<ffffffff838bd5a3>] ip6_route_output include/net/ip6_route.h:100 [inline]
[<ffffffff838bd5a3>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:473 [inline]
[<ffffffff838bd5a3>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[<ffffffff838bd5a3>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[<ffffffff838bd5a3>] ipvlan_queue_xmit+0xc33/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[<ffffffff838c2909>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[<ffffffff84d03900>] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[<ffffffff84d03900>] xmit_one net/core/dev.c:3644 [inline]
[<ffffffff84d03900>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[<ffffffff84d080e2>] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[<ffffffff855ce4cd>] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[<ffffffff855ce4cd>] neigh_hh_output include/net/neighbour.h:529 [inline]
[<ffffffff855ce4cd>] neigh_output include/net/neighbour.h:543 [inline]
[<ffffffff855ce4cd>] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[<ffffffff855b8616>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[<ffffffff855b8616>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[<ffffffff855b7e3c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[<ffffffff855b7e3c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[<ffffffff8575d27f>] dst_output include/net/dst.h:444 [inline]
[<ffffffff8575d27f>] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[<ffffffff838bdae4>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[<ffffffff838bdae4>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[<ffffffff838bdae4>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[<ffffffff838bdae4>] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[<ffffffff838c2909>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[<ffffffff84d03900>] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[<ffffffff84d03900>] xmit_one net/core/dev.c:3644 [inline]
[<ffffffff84d03900>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[<ffffffff84d080e2>] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[<ffffffff855ce4cd>] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[<ffffffff855ce4cd>] neigh_hh_output include/net/neighbour.h:529 [inline]
[<ffffffff855ce4cd>] neigh_output include/net/neighbour.h:543 [inline]
[<ffffffff855ce4cd>] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[<ffffffff855b8616>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[<ffffffff855b8616>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[<ffffffff855b7e3c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[<ffffffff855b7e3c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[<ffffffff8575d27f>] dst_output include/net/dst.h:444 [inline]
[<ffffffff8575d27f>] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[<ffffffff838bdae4>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[<ffffffff838bdae4>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[<ffffffff838bdae4>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[<ffffffff838bdae4>] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[<ffffffff838c2909>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[<ffffffff84d03900>] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[<ffffffff84d03900>] xmit_one net/core/dev.c:3644 [inline]
[<ffffffff84d03900>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[<ffffffff84d080e2>] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[<ffffffff855ce4cd>] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[<ffffffff855ce4cd>] neigh_hh_output include/net/neighbour.h:529 [inline]
[<ffffffff855ce4cd>] neigh_output include/net/neighbour.h:543 [inline]
[<ffffffff855ce4cd>] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[<ffffffff855b8616>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[<ffffffff855b8616>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[<ffffffff855b7e3c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[<ffffffff855b7e3c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[<ffffffff8575d27f>] dst_output include/net/dst.h:444 [inline]
[<ffffffff8575d27f>] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[<ffffffff838bdae4>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[<ffffffff838bdae4>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[<ffffffff838bdae4>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[<ffffffff838bdae4>] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[<ffffffff838c2909>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[<ffffffff84d03900>] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[<ffffffff84d03900>] xmit_one net/core/dev.c:3644 [inline]
[<ffffffff84d03900>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[<ffffffff84d080e2>] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[<ffffffff855ce4cd>] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[<ffffffff855ce4cd>] neigh_hh_output include/net/neighbour.h:529 [inline]
[<ffffffff855ce4cd>] neigh_output include/net/neighbour.h:543 [inline]
[<ffffffff855ce4cd>] ip6_finish_output2+0x160d/0x1ae0 net/ipv6/ip6_output.c:139
[<ffffffff855b8616>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[<ffffffff855b8616>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[<ffffffff855b7e3c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[<ffffffff855b7e3c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[<ffffffff8575d27f>] dst_output include/net/dst.h:444 [inline]
[<ffffffff8575d27f>] ip6_local_out+0x10f/0x140 net/ipv6/output_core.c:161
[<ffffffff838bdae4>] ipvlan_process_v6_outbound drivers/net/ipvlan/ipvlan_core.c:483 [inline]
[<ffffffff838bdae4>] ipvlan_process_outbound drivers/net/ipvlan/ipvlan_core.c:529 [inline]
[<ffffffff838bdae4>] ipvlan_xmit_mode_l3 drivers/net/ipvlan/ipvlan_core.c:602 [inline]
[<ffffffff838bdae4>] ipvlan_queue_xmit+0x1174/0x1be0 drivers/net/ipvlan/ipvlan_core.c:677
[<ffffffff838c2909>] ipvlan_start_xmit+0x49/0x100 drivers/net/ipvlan/ipvlan_main.c:229
[<ffffffff84d03900>] netdev_start_xmit include/linux/netdevice.h:4966 [inline]
[<ffffffff84d03900>] xmit_one net/core/dev.c:3644 [inline]
[<ffffffff84d03900>] dev_hard_start_xmit+0x320/0x980 net/core/dev.c:3660
[<ffffffff84d080e2>] __dev_queue_xmit+0x16b2/0x3370 net/core/dev.c:4324
[<ffffffff84d4a65e>] dev_queue_xmit include/linux/netdevice.h:3067 [inline]
[<ffffffff84d4a65e>] neigh_resolve_output+0x64e/0x750 net/core/neighbour.c:1560
[<ffffffff855ce503>] neigh_output include/net/neighbour.h:545 [inline]
[<ffffffff855ce503>] ip6_finish_output2+0x1643/0x1ae0 net/ipv6/ip6_output.c:139
[<ffffffff855b8616>] __ip6_finish_output net/ipv6/ip6_output.c:200 [inline]
[<ffffffff855b8616>] ip6_finish_output+0x6c6/0xb10 net/ipv6/ip6_output.c:211
[<ffffffff855b7e3c>] NF_HOOK_COND include/linux/netfilter.h:298 [inline]
[<ffffffff855b7e3c>] ip6_output+0x2bc/0x3d0 net/ipv6/ip6_output.c:232
[<ffffffff855b9ce4>] dst_output include/net/dst.h:444 [inline]
[<ffffffff855b9ce4>] NF_HOOK include/linux/netfilter.h:309 [inline]
[<ffffffff855b9ce4>] ip6_xmit+0x11a4/0x1b20 net/ipv6/ip6_output.c:352
[<ffffffff8597984e>] sctp_v6_xmit+0x9ae/0x1230 net/sctp/ipv6.c:250
[<ffffffff8594623e>] sctp_packet_transmit+0x25de/0x2bc0 net/sctp/output.c:653
[<ffffffff858f5142>] sctp_packet_singleton+0x202/0x310 net/sctp/outqueue.c:783
[<ffffffff858ea411>] sctp_outq_flush_ctrl net/sctp/outqueue.c:914 [inline]
[<ffffffff858ea411>] sctp_outq_flush+0x661/0x3d40 net/sctp/outqueue.c:1212
[<ffffffff858f02f9>] sctp_outq_uncork+0x79/0xb0 net/sctp/outqueue.c:764
[<ffffffff8589f060>] sctp_side_effects net/sctp/sm_sideeffect.c:1199 [inline]
[<ffffffff8589f060>] sctp_do_sm+0x55c0/0x5c30 net/sctp/sm_sideeffect.c:1170
[<ffffffff85941567>] sctp_primitive_ASSOCIATE+0x97/0xc0 net/sctp/primitive.c:73
[<ffffffff859408b2>] sctp_sendmsg_to_asoc+0xf62/0x17b0 net/sctp/socket.c:1839
[<ffffffff85910b5e>] sctp_sendmsg+0x212e/0x33b0 net/sctp/socket.c:2029
[<ffffffff8544d559>] inet_sendmsg+0x149/0x310 net/ipv4/af_inet.c:849
[<ffffffff84c6c4d2>] sock_sendmsg_nosec net/socket.c:716 [inline]
[<ffffffff84c6c4d2>] sock_sendmsg net/socket.c:736 [inline]
[<ffffffff84c6c4d2>] ____sys_sendmsg+0x572/0x8c0 net/socket.c:2504
[<ffffffff84c6ca91>] ___sys_sendmsg net/socket.c:2558 [inline]
[<ffffffff84c6ca91>] __sys_sendmsg+0x271/0x360 net/socket.c:2587
[<ffffffff84c6cbff>] __do_sys_sendmsg net/socket.c:2596 [inline]
[<ffffffff84c6cbff>] __se_sys_sendmsg net/socket.c:2594 [inline]
[<ffffffff84c6cbff>] __x64_sys_sendmsg+0x7f/0x90 net/socket.c:2594
[<ffffffff85b32553>] do_syscall_x64 arch/x86/entry/common.c:51 [inline]
[<ffffffff85b32553>] do_syscall_64+0x53/0x80 arch/x86/entry/common.c:84
[<ffffffff85c00087>] entry_SYSCALL_64_after_hwframe+0x63/0xcd

Fixes: 2ad7bf3 ("ipvlan: Initial check-in of the IPVLAN driver.")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Mahesh Bandewar <maheshb@google.com>
Cc: Willem de Bruijn <willemb@google.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>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 3cffa2d ]

Commit 9eed321 ("net: lapbether: only support ethernet devices")
has been able to keep syzbot away from net/lapb, until today.

In the fo
F438
llowing splat [1], the issue is that a lapbether device has
been created on a bonding device without members. Then adding a non
ARPHRD_ETHER member forced the bonding master to change its type.

The fix is to make sure we call dev_close() in bond_setup_by_slave()
so that the potential linked lapbether devices (or any other devices
having assumptions on the physical device) are removed.

A similar bug has been addressed in commit 40baec2
("bonding: fix panic on non-ARPHRD_ETHER enslave failure")

[1]
skbuff: skb_under_panic: text:ffff800089508810 len:44 put:40 head:ffff0000c78e7c00 data:ffff0000c78e7bea tail:0x16 end:0x140 dev:bond0
kernel BUG at net/core/skbuff.c:192 !
Internal error: Oops - BUG: 00000000f2000800 [#1] PREEMPT SMP
Modules linked in:
CPU: 0 PID: 6007 Comm: syz-executor383 Not tainted 6.6.0-rc3-syzkaller-gbf6547d8715b #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 08/04/2023
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : skb_panic net/core/skbuff.c:188 [inline]
pc : skb_under_panic+0x13c/0x140 net/core/skbuff.c:202
lr : skb_panic net/core/skbuff.c:188 [inline]
lr : skb_under_panic+0x13c/0x140 net/core/skbuff.c:202
sp : ffff800096a06aa0
x29: ffff800096a06ab0 x28: ffff800096a06ba0 x27: dfff800000000000
x26: ffff0000ce9b9b50 x25: 0000000000000016 x24: ffff0000c78e7bea
x23: ffff0000c78e7c00 x22: 000000000000002c x21: 0000000000000140
x20: 0000000000000028 x19: ffff800089508810 x18: ffff800096a06100
x17: 0000000000000000 x16: ffff80008a629a3c x15: 0000000000000001
x14: 1fffe00036837a32 x13: 0000000000000000 x12: 0000000000000000
x11: 0000000000000201 x10: 0000000000000000 x9 : cb50b496c519aa00
x8 : cb50b496c519aa00 x7 : 0000000000000001 x6 : 0000000000000001
x5 : ffff800096a063b8 x4 : ffff80008e280f80 x3 : ffff8000805ad11c
x2 : 0000000000000001 x1 : 0000000100000201 x0 : 0000000000000086
Call trace:
skb_panic net/core/skbuff.c:188 [inline]
skb_under_panic+0x13c/0x140 net/core/skbuff.c:202
skb_push+0xf0/0x108 net/core/skbuff.c:2446
ip6gre_header+0xbc/0x738 net/ipv6/ip6_gre.c:1384
dev_hard_header include/linux/netdevice.h:3136 [inline]
lapbeth_data_transmit+0x1c4/0x298 drivers/net/wan/lapbether.c:257
lapb_data_transmit+0x8c/0xb0 net/lapb/lapb_iface.c:447
lapb_transmit_buffer+0x178/0x204 net/lapb/lapb_out.c:149
lapb_send_control+0x220/0x320 net/lapb/lapb_subr.c:251
__lapb_disconnect_request+0x9c/0x17c net/lapb/lapb_iface.c:326
lapb_device_event+0x288/0x4e0 net/lapb/lapb_iface.c:492
notifier_call_chain+0x1a4/0x510 kernel/notifier.c:93
raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:461
call_netdevice_notifiers_info net/core/dev.c:1970 [inline]
call_netdevice_notifiers_extack net/core/dev.c:2008 [inline]
call_netdevice_notifiers net/core/dev.c:2022 [inline]
__dev_close_many+0x1b8/0x3c4 net/core/dev.c:1508
dev_close_many+0x1e0/0x470 net/core/dev.c:1559
dev_close+0x174/0x250 net/core/dev.c:1585
lapbeth_device_event+0x2e4/0x958 drivers/net/wan/lapbether.c:466
notifier_call_chain+0x1a4/0x510 kernel/notifier.c:93
raw_notifier_call_chain+0x3c/0x50 kernel/notifier.c:461
call_netdevice_notifiers_info net/core/dev.c:1970 [inline]
call_netdevice_notifiers_extack net/core/dev.c:2008 [inline]
call_netdevice_notifiers net/core/dev.c:2022 [inline]
__dev_close_many+0x1b8/0x3c4 net/core/dev.c:1508
dev_close_many+0x1e0/0x470 net/core/dev.c:1559
dev_close+0x174/0x250 net/core/dev.c:1585
bond_enslave+0x2298/0x30cc drivers/net/bonding/bond_main.c:2332
bond_do_ioctl+0x268/0xc64 drivers/net/bonding/bond_main.c:4539
dev_ifsioc+0x754/0x9ac
dev_ioctl+0x4d8/0xd34 net/core/dev_ioctl.c:786
sock_do_ioctl+0x1d4/0x2d0 net/socket.c:1217
sock_ioctl+0x4e8/0x834 net/socket.c:1322
vfs_ioctl fs/ioctl.c:51 [inline]
__do_sys_ioctl fs/ioctl.c:871 [inline]
__se_sys_ioctl fs/ioctl.c:857 [inline]
__arm64_sys_ioctl+0x14c/0x1c8 fs/ioctl.c:857
__invoke_syscall arch/arm64/kernel/syscall.c:37 [inline]
invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:51
el0_svc_common+0x130/0x23c arch/arm64/kernel/syscall.c:136
do_el0_svc+0x48/0x58 arch/arm64/kernel/syscall.c:155
el0_svc+0x58/0x16c arch/arm64/kernel/entry-common.c:678
el0t_64_sync_handler+0x84/0xfc arch/arm64/kernel/entry-common.c:696
el0t_64_sync+0x190/0x194 arch/arm64/kernel/entry.S:591
Code: aa1803e6 aa1903e7 a90023f5 94785b8b (d4210000)

Fixes: 872254d ("net/bonding: Enable bonding to enslave non ARPHRD_ETHER")
Reported-by: syzbot <syzkaller@googlegroups.com>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Acked-by: Jay Vosburgh <jay.vosburgh@canonical.com>
Reviewed-by: Hangbin Liu <liuhangbin@gmail.com>
Link: https://lore.kernel.org/r/20231109180102.4085183-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
[ Upstream commit 95ff036 ]

The kernel build robot reported a UAF error while running xfs/433
(edited somewhat for brevity):

 BUG: KASAN: use-after-free in xfs_attr3_node_inactive (fs/xfs/xfs_attr_inactive.c:214) xfs
 Read of size 4 at addr ffff88820ac2bd44 by task kworker/0:2/139

 CPU: 0 PID: 139 Comm: kworker/0:2 Tainted: G S                5.19.0-rc2-00004-g7cf2b0f9611b #1
 Hardware name: Hewlett-Packard p6-1451cx/2ADA, BIOS 8.15 02/05/2013
 Workqueue: xfs-inodegc/sdb4 xfs_inodegc_worker [xfs]
 Call Trace:
  <TASK>
 dump_stack_lvl (lib/dump_stack.c:107 (discriminator 1))
 print_address_description+0x1f/0x200
 print_report.cold (mm/kasan/report.c:430)
 kasan_report (mm/kasan/report.c:162 mm/kasan/report.c:493)
 xfs_attr3_node_inactive (fs/xfs/xfs_attr_inactive.c:214) xfs
 xfs_attr3_root_inactive (fs/xfs/xfs_attr_inactive.c:296) xfs
 xfs_attr_inactive (fs/xfs/xfs_attr_inactive.c:371) xfs
 xfs_inactive (fs/xfs/xfs_inode.c:1781) xfs
 xfs_inodegc_worker (fs/xfs/xfs_icache.c:1837 fs/xfs/xfs_icache.c:1860) xfs
 process_one_work
 worker_thread
 kthread
 ret_from_fork
  </TASK>

 Allocated by task 139:
 kasan_save_stack (mm/kasan/common.c:39)
 __kasan_slab_alloc (mm/kasan/common.c:45 mm/kasan/common.c:436 mm/kasan/common.c:469)
 kmem_cache_alloc (mm/slab.h:750 mm/slub.c:3214 mm/slub.c:3222 mm/slub.c:3229 mm/slub.c:3239)
 _xfs_buf_alloc (include/linux/instrumented.h:86 include/linux/atomic/atomic-instrumented.h:41 fs/xfs/xfs_buf.c:232) xfs
 xfs_buf_get_map (fs/xfs/xfs_buf.c:660) xfs
 xfs_buf_read_map (fs/xfs/xfs_buf.c:777) xfs
 xfs_trans_read_buf_map (fs/xfs/xfs_trans_buf.c:289) xfs
 xfs_da_read_buf (fs/xfs/libxfs/xfs_da_btree.c:2652) xfs
 xfs_da3_node_read (fs/xfs/libxfs/xfs_da_btree.c:392) xfs
 xfs_attr3_root_inactive (fs/xfs/xfs_attr_inactive.c:272) xfs
 xfs_attr_inactive (fs/xfs/xfs_attr_inactive.c:371) xfs
 xfs_inactive (fs/xfs/xfs_inode.c:1781) xfs
 xfs_inodegc_worker (fs/xfs/xfs_icache.c:1837 fs/xfs/xfs_icache.c:1860) xfs
 process_one_work
 worker_thread
 kthread
 ret_from_fork

 Freed by task 139:
 kasan_save_stack (mm/kasan/common.c:39)
 kasan_set_track (mm/kasan/common.c:45)
 kasan_set_free_info (mm/kasan/generic.c:372)
 __kasan_slab_free (mm/kasan/common.c:368 mm/kasan/common.c:328 mm/kasan/common.c:374)
 kmem_cache_free (mm/slub.c:1753 mm/slub.c:3507 mm/slub.c:3524)
 xfs_buf_rele (fs/xfs/xfs_buf.c:1040) xfs
 xfs_attr3_node_inactive (fs/xfs/xfs_attr_inactive.c:210) xfs
 xfs_attr3_root_inactive (fs/xfs/xfs_attr_inactive.c:296) xfs
 xfs_attr_inactive (fs/xfs/xfs_attr_inactive.c:371) xfs
 xfs_inactive (fs/xfs/xfs_inode.c:1781) xfs
 xfs_inodegc_worker (fs/xfs/xfs_icache.c:1837 fs/xfs/xfs_icache.c:1860) xfs
 process_one_work
 worker_thread
 kthread
 ret_from_fork

I reproduced this for my own satisfaction, and got the same report,
along with an extra morsel:

 The buggy address belongs to the object at ffff88802103a800
  which belongs to the cache xfs_buf of size 432
 The buggy address is located 396 bytes inside of
  432-byte region [ffff88802103a800, ffff88802103a9b0)

I tracked this code down to:

	error = xfs_trans_get_buf(*trans, mp->m_ddev_targp,
			child_blkno,
			XFS_FSB_TO_BB(mp, mp->m_attr_geo->fsbcount), 0,
			&child_bp);
	if (error)
		return error;
	error = bp->b_error;

That doesn't look right -- I think this should be dereferencing
child_bp, not bp.  Looking through the codebase history, I think this
was added by commit 2911edb ("xfs: remove the mappedbno argument to
xfs_da_get_buf"), which replaced a call to xfs_da_get_buf with the
current call to xfs_trans_get_buf.  Not sure why we trans_brelse'd @bp
earlier in the function, but I'm guessing it's to avoid pinning too many
buffers in memory while we inactivate the bottom of the attr tree.
Hence we now have to get the buffer back.

I /think/ this was supposed to check child_bp->b_error and fail the rest
of the invalidation if child_bp had experienced any kind of IO or
corruption error.  I bet the xfs_da3_node_read earlier in the loop will
catch most cases of incoming on-disk corruption which makes this check
mostly moot unless someone corrupts the buffer and the AIL pushes it out
to disk while the buffer's unlocked.

In the first case we'll never get to the bad check, and in the second
case the AIL will shut down the log, at which point there's no reason to
check b_error.  Remove the check, and null out @bp to avoid this problem
in the future.

Cc: hch@lst.de
Reported-by: kernel test robot <oliver.sang@intel.com>
Fixes: 2911edb ("xfs: remove the mappedbno argument to xfs_da_get_buf")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Leah Rumancik <leah.rumancik@gmail.com>
Acked-by: Chandan Babu R <chandanbabu@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit 146a15b upstream.

Prior to LLVM 15.0.0, LLVM's integrated assembler would incorrectly
byte-swap NOP when compiling for big-endian, and the resulting series of
bytes happened to match the encoding of FNMADD S21, S30, S0, S0.

This went unnoticed until commit:

  34f66c4 ("arm64: Use a positive cpucap for FP/SIMD")

Prior to that commit, the kernel would always enable the use of FPSIMD
early in boot when __cpu_setup() initialized CPACR_EL1, and so usage of
FNMADD within the kernel was not detected, but could result in the
corruption of user or kernel FPSIMD state.

After that commit, the instructions happen to trap during boot prior to
FPSIMD being detected and enabled, e.g.

| Unhandled 64-bit el1h sync exception on CPU0, ESR 0x000000001fe00000 -- ASIMD
| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1
| Hardware name: linux,dummy-virt (DT)
| pstate: 400000c9 (nZcv daIF -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
| pc : __pi_strcmp+0x1c/0x150
| lr : populate_properties+0xe4/0x254
| sp : ffffd014173d3ad0
| x29: ffffd014173d3af0 x28: fffffbfffddffcb8 x27: 0000000000000000
| x26: 0000000000000058 x25: fffffbfffddfe054 x24: 0000000000000008
| x23: fffffbfffddfe000 x22: fffffbfffddfe000 x21: fffffbfffddfe044
| x20: ffffd014173d3b70 x19: 0000000000000001 x18: 0000000000000005
| x17: 0000000000000010 x16: 0000000000000000 x15: 00000000413e7000
| x14: 0000000000000000 x13: 0000000000001bcc x12: 0000000000000000
| x11: 00000000d00dfeed x10: ffffd414193f2cd0 x9 : 0000000000000000
| x8 : 0101010101010101 x7 : ffffffffffffffc0 x6 : 0000000000000000
| x5 : 0000000000000000 x4 : 0101010101010101 x3 : 000000000000002a
| x2 : 0000000000000001 x1 : ffffd014171f2988 x0 : fffffbfffddffcb8
| Kernel panic - not syncing: Unhandled exception
| CPU: 0 PID: 0 Comm: swapper Not tainted 6.6.0-rc3-00013-g34f66c4c4d55 #1
| Hardware name: linux,dummy-virt (DT)
| Call trace:
|  dump_backtrace+0xec/0x108
|  show_stack+0x18/0x2c
|  dump_stack_lvl+0x50/0x68
|  dump_stack+0x18/0x24
|  panic+0x13c/0x340
|  el1t_64_irq_handler+0x0/0x1c
|  el1_abort+0x0/0x5c
|  el1h_64_sync+0x64/0x68
|  __pi_strcmp+0x1c/0x150
|  unflatten_dt_nodes+0x1e8/0x2d8
|  __unflatten_device_tree+0x5c/0x15c
|  unflatten_device_tree+0x38/0x50
|  setup_arch+0x164/0x1e0
|  start_kernel+0x64/0x38c
|  __primary_switched+0xbc/0xc4

Restrict CONFIG_CPU_BIG_ENDIAN to a known good assembler, which is
either GNU as or LLVM's IAS 15.0.0 and newer, which contains the linked
commit.

Closes: ClangBuiltLinux/linux#1948
Link: llvm/llvm-project@1379b15
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Cc: stable@vger.kernel.org
Acked-by: Mark Rutland <mark.rutland@arm.com>
Link: https://lore.kernel.org/r/20231025-disable-arm64-be-ias-b4-llvm-15-v1-1-b25263ed8b23@kernel.org
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit e14aec2 upstream.

Fix kernel crash in AP bus code caused by very early invocation of the
config change callback function via SCLP.

After a fresh IML of the machine the crypto cards are still offline and
will get switched online only with activation of any LPAR which has the
card in it's configuration. A crypto card coming online is reported
to the LPAR via SCLP and the AP bus offers a callback function to get
this kind of information. However, it may happen that the callback is
invoked before the AP bus init function is complete. As the callback
triggers a synchronous AP bus scan, the scan may already run but some
internal states are not initialized by the AP bus init function resulting
in a crash like this:

  [   11.635859] Unable to handle kernel pointer dereference in virtual kernel address space
  [   11.635861] Failing address: 0000000000000000 TEID: 0000000000000887
  [   11.635862] Fault in home space mode while using kernel ASCE.
  [   11.635864] AS:00000000894c4007 R3:00000001fece8007 S:00000001fece7800 P:000000000000013d
  [   11.635879] Oops: 0004 ilc:1 [#1] SMP
  [   11.635882] Modules linked in:
  [   11.635884] CPU: 5 PID: 42 Comm: kworker/5:0 Not tainted 6.6.0-rc3-00003-g4dbf7cdc6b42 aosp-mirror#12
  [   11.635886] Hardware name: IBM 3931 A01 751 (LPAR)
  [   11.635887] Workqueue: events_long ap_scan_bus
  [   11.635891] Krnl PSW : 0704c00180000000 0000000000000000 (0x0)
  [   11.635895]            R:0 T:1 IO:1 EX:1 Key:0 M:1 W:0 P:0 AS:3 CC:0 PM:0 RI:0 EA:3
  [   11.635897] Krnl GPRS: 0000000001000a00 0000000000000000 0000000000000006 0000000089591940
  [   11.635899]            0000000080000000 0000000000000a00 0000000000000000 0000000000000000
  [   11.635901]            0000000081870c00 0000000089591000 000000008834e4e2 0000000002625a00
  [   11.635903]            0000000081734200 0000038000913c18 000000008834c6d6 0000038000913ac8
  [   11.635906] Krnl Code:>0000000000000000: 0000                illegal
  [   11.635906]            0000000000000002: 0000                illegal
  [   11.635906]            0000000000000004: 0000                illegal
  [   11.635906]            0000000000000006: 0000                illegal
  [   11.635906]            0000000000000008: 0000                illegal
  [   11.635906]            000000000000000a: 0000                illegal
  [   11.635906]            000000000000000c: 0000                illegal
  [   11.635906]            000000000000000e: 0000                illegal
  [   11.635915] Call Trace:
  [   11.635916]  [<0000000000000000>] 0x0
  [   11.635918]  [<000000008834e4e2>] ap_queue_init_state+0x82/0xb8
  [   11.635921]  [<000000008834ba1c>] ap_scan_domains+0x6fc/0x740
  [   11.635923]  [<000000008834c092>] ap_scan_adapter+0x632/0x8b0
  [   11.635925]  [<000000008834c3e4>] ap_scan_bus+0xd4/0x288
  [   11.635927]  [<00000000879a33ba>] process_one_work+0x19a/0x410
  [   11.635930] Discipline DIAG cannot be used without z/VM
  [   11.635930]  [<00000000879a3a2c>] worker_thread+0x3fc/0x560
  [   11.635933]  [<00000000879aea60>] kthread+0x120/0x128
  [   11.635936]  [<000000008792afa4>] __ret_from_fork+0x3c/0x58
  [   11.635938]  [<00000000885ebe62>] ret_from_fork+0xa/0x30
  [   11.635942] Last Breaking-Event-Address:
  [   11.635942]  [<000000008834c6d4>] ap_wait+0xcc/0x148

This patch improves the ap_bus_force_rescan() function which is
invoked by the config change callback by checking if a first
initial AP bus scan has been done. If not, the force rescan request
is simple ignored. Anyhow it does not make sense to trigger AP bus
re-scans even before the very first bus scan is complete.

Cc: stable@vger.kernel.org
Reviewed-by: Holger Dengler <dengler@linux.ibm.com>
Signed-off-by: Harald Freudenberger <freude@linux.ibm.com>
Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit 5a22fbc upstream.

When LAN9303 is MDIO-connected two callchains exist into
mdio->bus->write():

1. switch ports 1&2 ("physical" PHYs):

virtual (switch-internal) MDIO bus (lan9303_switch_ops->phy_{read|write})->
  lan9303_mdio_phy_{read|write} -> mdiobus_{read|write}_nested

2. LAN9303 virtual PHY:

virtual MDIO bus (lan9303_phy_{read|write}) ->
  lan9303_virt_phy_reg_{read|write} -> regmap -> lan9303_mdio_{read|write}

If the latter functions just take
mutex_lock(&sw_dev->device->bus->mdio_lock) it triggers a LOCKDEP
false-positive splat. It's false-positive because the first
mdio_lock in the second callchain above belongs to virtual MDIO bus, the
second mdio_lock belongs to physical MDIO bus.

Consequent annotation in lan9303_mdio_{read|write} as nested lock
(similar to lan9303_mdio_phy_{read|write}, it's the same physical MDIO bus)
prevents the following splat:

WARNING: possible circular locking dependency detected
5.15.71 #1 Not tainted
------------------------------------------------------
kworker/u4:3/609 is trying to acquire lock:
ffff000011531c68 (lan9303_mdio:131:(&lan9303_mdio_regmap_config)->lock){+.+.}-{3:3}, at: regmap_lock_mutex
but task is already holding lock:
ffff0000114c44d8 (&bus->mdio_lock){+.+.}-{3:3}, at: mdiobus_read
which lock already depends on the new lock.
the existing dependency chain (in reverse order) is:
-> #1 (&bus->mdio_lock){+.+.}-{3:3}:
       lock_acquire
       __mutex_lock
       mutex_lock_nested
       lan9303_mdio_read
       _regmap_read
       regmap_read
       lan9303_probe
       lan9303_mdio_probe
       mdio_probe
       really_probe
       __driver_probe_device
       driver_probe_device
       __device_attach_driver
       bus_for_each_drv
       __device_attach
       device_initial_probe
       bus_probe_device
       deferred_probe_work_func
       process_one_work
       worker_thread
       kthread
       ret_from_fork
-> #0 (lan9303_mdio:131:(&lan9303_mdio_regmap_config)->lock){+.+.}-{3:3}:
       __lock_acquire
       lock_acquire.part.0
       lock_acquire
       __mutex_lock
       mutex_lock_nested
       regmap_lock_mutex
       regmap_read
       lan9303_phy_read
       dsa_slave_phy_read
       __mdiobus_read
       mdiobus_read
       get_phy_device
       mdiobus_scan
       __mdiobus_register
       dsa_register_switch
       lan9303_probe
       lan9303_mdio_probe
       mdio_probe
       really_probe
       __driver_probe_device
       driver_probe_device
       __device_attach_driver
       bus_for_each_drv
       __device_attach
       device_initial_probe
       bus_probe_device
       deferred_probe_work_func
       process_one_work
       worker_thread
       kthread
       ret_from_fork
other info that might help us debug this:
 Possible unsafe locking scenario:
       CPU0                    CPU1
       ----                    ----
  lock(&bus->mdio_lock);
                               lock(lan9303_mdio:131:(&lan9303_mdio_regmap_config)->lock);
                               lock(&bus->mdio_lock);
  lock(lan9303_mdio:131:(&lan9303_mdio_regmap_config)->lock);
*** DEADLOCK ***
5 locks held by kworker/u4:3/609:
 #0: ffff000002842938 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work
 #1: ffff80000bacbd60 (deferred_probe_work){+.+.}-{0:0}, at: process_one_work
 #2: ffff000007645178 (&dev->mutex){....}-{3:3}, at: __device_attach
 aosp-mirror#3: ffff8000096e6e78 (dsa2_mutex){+.+.}-{3:3}, at: dsa_register_switch
 aosp-mirror#4: ffff0000114c44d8 (&bus->mdio_lock){+.+.}-{3:3}, at: mdiobus_read
stack backtrace:
CPU: 1 PID: 609 Comm: kworker/u4:3 Not tainted 5.15.71 #1
Workqueue: events_unbound deferred_probe_work_func
Call trace:
 dump_backtrace
 show_stack
 dump_stack_lvl
 dump_stack
 print_circular_bug
 check_noncircular
 __lock_acquire
 lock_acquire.part.0
 lock_acquire
 __mutex_lock
 mutex_lock_nested
 regmap_lock_mutex
 regmap_read
 lan9303_phy_read
 dsa_slave_phy_read
 __mdiobus_read
 mdiobus_read
 get_phy_device
 mdiobus_scan
 __mdiobus_register
 dsa_register_switch
 lan9303_probe
 lan9303_mdio_probe
...

Cc: stable@vger.kernel.org
Fixes: dc70058 ("net: dsa: LAN9303: add MDIO managed mode support")
Signed-off-by: Alexander Sverdlin <alexander.sverdlin@siemens.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Link: https://lore.kernel.org/r/20231027065741.534971-1-alexander.sverdlin@siemens.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
tbalden pushed a commit that referenced this pull request Oct 28, 2024
commit bb32500 upstream.

The following can crash the kernel:

 # cd /sys/kernel/tracing
 # echo 'p:sched schedule' > kprobe_events
 # exec 5>>events/kprobes/sched/enable
 # > kprobe_events
 # exec 5>&-

The above commands:

 1. Change directory to the tracefs directory
 2. Create a kprobe event (doesn't matter what one)
 3. Open bash file descriptor 5 on the enable file of the kprobe event
 4. Delete the kprobe event (removes the files too)
 5. Close the bash file descriptor 5

The above causes a crash!

 BUG: kernel NULL pointer dereference, address: 0000000000000028
 #PF: supervisor read access in kernel mode
 #PF: error_code(0x0000) - not-present page
 PGD 0 P4D 0
 Oops: 0000 [#1] PREEMPT SMP PTI
 CPU: 6 PID: 877 Comm: bash Not tainted 6.5.0-rc4-test-00008-g2c6b6b1029d4-dirty #186
 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
 RIP: 0010:tracing_release_file_tr+0xc/0x50

What happens here is that the kprobe event creates a trace_event_file
"file" descriptor that represents the file in tracefs to the event. It
maintains state of the event (is it enabled for the given instance?).
Opening the "enable" file gets a reference to the event "file" descriptor
via the open file descriptor. When the kprobe event is deleted, the file is
also deleted from the tracefs system which also frees the event "file"
descriptor.

But as the tracefs file is still opened by user space, it will not be
totally removed until the final dput() is called on it. But this is not
true with the event "file" descriptor that is already freed. If the user
does a write to or simply closes the file descriptor it will reference the
event "file" descriptor that was just freed, causing a use-after-free bug.

To solve this, add a ref count to the event "file" descriptor as well as a
new flag called "FREED". The "file" will not be freed until the last
reference is released. But the FREE flag will be set when the event is
removed to prevent any more modifications to that event from happening,
even if there's still a reference to the event "file" descriptor.

Link: https://lore.kernel.org/linux-trace-kernel/20231031000031.1e705592@gandalf.local.home/
Link: https://lore.kernel.org/linux-trace-kernel/20231031122453.7a48b923@gandalf.local.home

Cc: stable@vger.kernel.org
Cc: Mark Rutland <mark.rutland@arm.com>
Fixes: f5ca233 ("tracing: Increase trace array ref count on enable and filter files")
Reported-by: Beau Belgrave <beaub@linux.microsoft.com>
Tested-by: Beau Belgrave <beaub@linux.microsoft.com>
Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
gregkh and others added 30 commits April 11, 2025 11:53
This reverts commit efa8a26 which is
commit 036ac27 upstream.

It breaks the Android kernel build and can be brought back in the future
in an safe way if it is really needed.

Bug: 161946584
Change-Id: Idcb51913b49cc5d8131ba62c7e43e4246955a899
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 15b453d.

Fix missing struct hrtimer_cpu_base initialize in CPU hotplug Online process when the device is awakened from a deep state by reverting
hrtimer referenced modifies in android13-5.15-2025-03_r1.

Bug:407861080

Change-Id: I8eebcdc59c1ae2a61a5032e07da98326a9484189
Signed-off-by: Max Wang <max.wang@unisoc.com>
…) into android14-5.15-lts

Steps on the way to 5.15.179

Resolves merge conflicts in:
	drivers/pci/quirks.c

Change-Id: I7a7489e117a308d1f6bd6c63cdb961839f363d9b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 6a90257 which is
commit 634775a upstream.

It breaks the Android kernel build and can be brought back in the future
in an safe way if it is really needed.

Bug: 161946584
Change-Id: Ia58e2620c632c58d661e29b615d7392c8d1ed850
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
…to android14-5.15-lts

Steps on the way to 5.15.179

Change-Id: I243966d44792f528928f47a5acc2875a712ae7a7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit ce3c616 which is
commit 1395121 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Iaa60ee49e8763010c46ecbd93d95d1eecc17cd9b
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit fc07a23 which is
commit 7d3f3b4 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I5d5cfb6058427ec56c1704182065cd38e2ca192a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit a7246d3 which is
commit ec730c3 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I075725477959ad747c01910ec658efafe0dd98ba
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 7385291 which is
commit 1135fad upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Idf1067f56f5b98a10198a75bb1ea9d03067980b7
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 6867921 which is
commit 1de6b15 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I53d70488adf6968cde4fad9d2b327bb1ef3cbc12
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 19f3e16 which is
commit b69bb47 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: Ieb0b69e6bbc195ab6b8fa2f955b5ded5a67f6e1c
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
…text patching area as VM_ALLOC") into android14-5.15-lts

Steps on the way to 5.15.179

Resolves merge conflicts in:
	fs/f2fs/file.c
	mm/oom_kill.c

Change-Id: Id4ed2302ea8f138a62ffb2ee12ecc31203421d08
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit c4041b6 which is
commit c79a39d upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I0ceab5693fcd57db17ec38e2024cfbe539a0c56a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
…into android14-5.15-lts

Steps on the way to 5.15.179

resolves merge conflicts in:
	drivers/net/gtp.c

Change-Id: I73a3f3e22d7b9c92b631eea599bfd2cc8961aabb
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
In commit 668ef6c ("scsi: core: Don't memset() the entire scsi_cmnd
in scsi_init_command()"), the cmd->submitter field is accessed, but due
to previous Android-ABI breaking commits being reverted, this is not a
valid field in the scsi command structure.  So remove the line, fixing
the build properly.

Fixes: 668ef6c ("scsi: core: Don't memset() the entire scsi_cmnd in scsi_init_command()")
Change-Id: I4523d86c142a25acae0b28d249e5e6f6a0189d72
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
…_hid_remove()") into android14-5.15-lts

Steps on the way to 5.15.179

Change-Id: Id4fa2bebee797b95bd3da3fbc42d165e33a27d9a
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Changes in 5.15.179
	afs: Fix EEXIST error returned from afs_rmdir() to be ENOTEMPTY
	afs: Fix directory format encoding struct
	hung_task: move hung_task sysctl interface to hung_task.c
	sysctl: use const for typically used max/min proc sysctls
	sysctl: share unsigned long const values
	fs: move inode sysctls to its own file
	fs: move fs stat sysctls to file_table.c
	fs: fix proc_handler for sysctl_nr_open
	block: deprecate autoloading based on dev_t
	block: retry call probe after request_module in blk_request_module
	nbd: don't allow reconnect after disconnect
	pstore/blk: trivial typo fixes
	nvme: Add error check for xa_store in nvme_get_effects_log
	partitions: ldm: remove the initial kernel-doc notation
	select: Fix unbalanced user_access_end()
	afs: Fix the fallback handling for the YFS.RemoveFile2 RPC call
	sched/psi: Use task->psi_flags to clear in CPU migration
	sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat
	drm/etnaviv: Fix page property being used for non writecombine buffers
	HID: core: Fix assumption that Resolution Multipliers must be in Logical Collections
	drm/amdgpu: Fix potential NULL pointer dereference in atomctrl_get_smc_sclk_range_table
	genirq: Make handle_enforce_irqctx() unconditionally available
	ipmi: ipmb: Add check devm_kasprintf() returned value
	wifi: rtlwifi: do not complete firmware loading needlessly
	wifi: rtlwifi: rtl8192se: rise completion of firmware loading as last step
	wifi: rtlwifi: wait for firmware loading before releasing memory
	wifi: rtlwifi: fix init_sw_vars leak when probe fails
	wifi: rtlwifi: usb: fix workqueue leak when probe fails
	spi: zynq-qspi: Add check for clk_enable()
	dt-bindings: mmc: controller: clarify the address-cells description
	spi: dt-bindings: add schema listing peripheral-specific properties
	dt-bindings: Another pass removing cases of 'allOf' containing a '$ref'
	dt-bindings: leds: Add Qualcomm Light Pulse Generator binding
	dt-bindings: leds: Optional multi-led unit address
	dt-bindings: leds: Add multicolor PWM LED bindings
	dt-bindings: leds: class-multicolor: reference class directly in multi-led node
	dt-bindings: leds: class-multicolor: Fix path to color definitions
	rtlwifi: replace usage of found with dedicated list iterator variable
	wifi: rtlwifi: remove unused timer and related code
	wifi: rtlwifi: remove unused dualmac control leftovers
	wifi: rtlwifi: remove unused check_buddy_priv
	wifi: rtlwifi: destroy workqueue at rtl_deinit_core
	wifi: rtlwifi: fix memory leaks and invalid access at probe error path
	wifi: rtlwifi: pci: wait for firmware loading before releasing memory
	HID: multitouch: Add support for lenovo Y9000P Touchpad
	Revert "HID: multitouch: Add support for lenovo Y9000P Touchpad"
	HID: multitouch: fix support for Goodix PID 0x01e9
	regulator: dt-bindings: mt6315: Drop regulator-compatible property
	ACPI: fan: cleanup resources in the error path of .probe()
	cpupower: fix TSC MHz calculation
	dt-bindings: mfd: bd71815: Fix rsense and typos
	leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
	cpufreq: schedutil: Fix superfluous updates caused by need_freq_update
	clk: imx8mp: Fix clkout1/2 support
	team: prevent adding a device which is already a team device lower
	regulator: of: Implement the unwind path of of_regulator_match()
	samples/landlock: Fix possible NULL dereference in parse_path()
	wifi: wlcore: fix unbalanced pm_runtime calls
	net/smc: fix data error when recvmsg with MSG_PEEK flag
	landlock: Move filesystem helpers and add a new one
	landlock: Handle weird files
	wifi: mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
	cpufreq: ACPI: Fix max-frequency computation
	selftests: harness: fix printing of mismatch values in __EXPECT()
	wifi: cfg80211: Handle specific BSSID in 6GHz scanning
	wifi: cfg80211: adjust allocation of colocated AP data
	clk: analogbits: Fix incorrect calculation of vco rate delta
	selftests/landlock: Fix error message
	net: let net.core.dev_weight always be non-zero
	net/mlxfw: Drop hard coded max FW flash image size
	net: avoid race between device unregistration and ethnl ops
	net: sched: Disallow replacing of child qdisc from one parent to another
	netfilter: nft_flow_offload: update tcp state flags under lock
	net: ethernet: ti: am65-cpsw: fix freeing IRQ in am65_cpsw_nuss_remove_tx_chns()
	tcp_cubic: fix incorrect HyStart round start detection
	net/rose: prevent integer overflows in rose_setsockopt()
	tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind
	libbpf: Fix segfault due to libelf functions not setting errno
	ASoC: sun4i-spdif: Add clock multiplier settings
	perf header: Fix one memory leakage in process_bpf_btf()
	perf header: Fix one memory leakage in process_bpf_prog_info()
	perf bpf: Fix two memory leakages when calling perf_env__insert_bpf_prog_info()
	ASoC: renesas: rz-ssi: Use only the proper amount of dividers
	ktest.pl: Remove unused declarations in run_bisect_test function
	crypto: hisilicon/sec - add some comments for soft fallback
	crypto: hisilicon/sec - delete redundant blank lines
	crypto: hisilicon/sec2 - optimize the error return process
	crypto: hisilicon/sec2 - fix for aead icv error
	crypto: hisilicon/sec2 - fix for aead invalid authsize
	crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto()
	padata: fix sysfs store callback check
	perf top: Don't complain about lack of vmlinux when not resolving some kernel samples
	perf report: Fix misleading help message about --demangle
	bpf: Send signals asynchronously if !preemptible
	padata: fix UAF in padata_reorder
	padata: add pd get/put refcnt helper
	padata: avoid UAF for reorder_work
	ARM: at91: pm: change BU Power Switch to automatic mode
	arm64: dts: mt8183: set DMIC one-wire mode on Damu
	arm64: dts: mediatek: mt8516: fix GICv2 range
	arm64: dts: mediatek: mt8516: fix wdt irq type
	arm64: dts: mediatek: mt8516: remove 2 invalid i2c clocks
	arm64: dts: mediatek: mt8516: add i2c clock-div property
	arm64: dts: mediatek: mt8516: reserve 192 KiB for TF-A
	RDMA/mlx4: Avoid false error about access to uninitialized gids array
	rdma/cxgb4: Prevent potential integer overflow on 32bit
	arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Drop regulator-compatible property
	arm64: dts: mediatek: mt8173-elm: Fix MT6397 PMIC sub-node names
	arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names
	arm64: dts: mediatek: mt8183: kenzo: Support second source touchscreen
	arm64: dts: mediatek: mt8183: willow: Support second source touchscreen
	memory: Add LPDDR2-info helpers
	memory: tegra20-emc: Support matching timings by LPDDR2 configuration
	memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()
	arm64: dts: mediatek: mt8183-kukui-jacuzzi: Drop pp3300_panel voltage settings
	arm64: dts: qcom: msm8996: Fix up USB3 interrupts
	arm64: dts: qcom: msm8994: Describe USB interrupts
	arm64: dts: qcom: msm8916: correct sleep clock frequency
	arm64: dts: qcom: msm8994: correct sleep clock frequency
	arm64: dts: qcom: sc7280: correct sleep clock frequency
	arm64: dts: qcom: sm6125: correct sleep clock frequency
	arm64: dts: qcom: sm8250: correct sleep clock frequency
	arm64: dts: qcom: sm8350: correct sleep clock frequency
	arm64: dts: qcom: sm8150-microsoft-surface-duo: fix typos in da7280 properties
	arm64: dts: qcom: sdm845: Fix interrupt types of camss interrupts
	ARM: dts: mediatek: mt7623: fix IR nodename
	fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
	RDMA/mlx5: Remove iova from struct mlx5_core_mkey
	RDMA/mlx5: Enforce umem boundaries for explicit ODP page faults
	RDMA/mlx5: Fix indirect mkey ODP page count
	xen/x86: free_p2m_page: use memblock_free_ptr() to free a virtual pointer
	memblock: drop memblock_free_early_nid() and memblock_free_early()
	of: reserved-memory: Do not make kmemleak ignore freed address
	efi: sysfb_efi: fix W=1 warnings when EFI is not set
	media: rc: iguanair: handle timeouts
	media: lmedm04: Handle errors for lme2510_int_read
	PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy()
	media: marvell: Add check for clk_enable()
	media: i2c: imx412: Add missing newline to prints
	media: i2c: ov9282: Correct the exposure offset
	media: mipi-csis: Add check for clk_enable()
	media: camif-core: Add check for clk_enable()
	media: uvcvideo: Propagate buf->error to userspace
	mtd: hyperbus: Make hyperbus_unregister_device() return void
	mtd: hyperbus: hbmc-am654: Convert to platform remove callback returning void
	mtd: hyperbus: hbmc-am654: fix an OF node reference leak
	staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
	PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region()
	scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1
	scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails
	ocfs2: mark dquot as inactive if failed to start trans while releasing dquot
	module: Extend the preempt disabled section in dereference_symbol_descriptor().
	NFSv4.2: fix COPY_NOTIFY xdr buf size calculation
	NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE
	tools/bootconfig: Fix the wrong format specifier
	xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO
	dmaengine: ti: edma: fix OF node reference leaks in edma_driver
	rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
	ubifs: skip dumping tnc tree when zroot is null
	net: hns3: fix oops when unload drivers paralleling
	gpio: mxc: remove dead code after switch to DT-only
	net: fec: implement TSO descriptor cleanup
	ipmr: do not call mr_mfc_uses_dev() for unres entries
	PM: hibernate: Add error handling for syscore_suspend()
	net: rose: fix timer races against user threads
	net: netdevsim: try to close UDP port harness races
	net: davicom: fix UAF in dm9000_drv_remove
	ptp: Properly handle compat ioctls
	perf trace: Fix runtime error of index out of bounds
	vsock: Allow retrying on connect() failure
	bgmac: reduce max frame size to support just MTU 1500
	net: sh_eth: Fix missing rtnl lock in suspend/resume path
	net: hsr: fix fill_frame_info() regression vs VLAN packets
	genksyms: fix memory leak when the same symbol is added from source
	genksyms: fix memory leak when the same symbol is read from *.symref file
	kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST
	kconfig: add warn-unknown-symbols sanity check
	kconfig: require a space after '#' for valid input
	kconfig: remove unused code for S_DEF_AUTO in conf_read_simple()
	kconfig: deduplicate code in conf_read_simple()
	kconfig: WERROR unmet symbol dependency
	kconfig: fix memory leak in sym_warn_unmet_dep()
	hexagon: fix using plain integer as NULL pointer warning in cmpxchg
	hexagon: Fix unbalanced spinlock in die()
	f2fs: Introduce linear search for dentries
	NFSD: Reset cb_seq_status after NFS4ERR_DELAY
	netfilter: nf_tables: reject mismatching sum of field_len with set key length
	ktest.pl: Check kernelrelease return in get_version
	ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro
	net: usb: rtl8150: enable basic endpoint checking
	drivers/card_reader/rtsx_usb: Restore interrupt based detection
	usb: gadget: f_tcm: Fix Get/SetInterface return value
	usb: dwc3: core: Defer the probe until USB power supply ready
	usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE
	usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS
	mptcp: consolidate suboption status
	media: uvcvideo: Fix double free in error path
	usb: gadget: f_tcm: Don't free command immediately
	btrfs: output the reason for open_ctree() failure
	btrfs: fix use-after-free when attempting to join an aborted transaction
	btrfs: fix data race when accessing the inode's disk_i_size at btrfs_drop_extents()
	btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling
	sched: Don't try to catch up excess steal time.
	lockdep: Fix upper limit for LOCKDEP_*_BITS configs
	x86/amd_nb: Restrict init function to AMD-based systems
	printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
	safesetid: check size of policy writes
	tun: fix group permission check
	mmc: core: Respect quirk_max_rate for non-UHS SDIO card
	wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy()
	tomoyo: don't emit warning in tomoyo_write_control()
	mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id
	HID: Wacom: Add PCI Wacom device support
	net/mlx5: use do_aux_work for PHC overflow checks
	wifi: iwlwifi: avoid memory leak
	i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz
	APEI: GHES: Have GHES honor the panic= setting
	net: wwan: iosm: Fix hibernation by re-binding the driver around it
	mmc: sdhci-msm: Correctly set the load for the regulator
	tipc: re-order conditions in tipc_crypto_key_rcv()
	selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack()
	Input: allocate keycode for phone linking
	platform/x86: acer-wmi: Ignore AC events
	x86/mm: Don't disable PCID when INVLPG has been fixed by microcode
	usb: chipidea: ci_hdrc_imx: use dev_err_probe()
	usb: chipidea/ci_hdrc_imx: Convert to platform remove callback returning void
	usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()
	net/ncsi: Add NC-SI 1.2 Get MC MAC Address command
	net/ncsi: fix locking in Get MAC Address handling
	gpio: xilinx: Convert gpio_lock to raw spinlock
	xfs: report realtime block quota limits on realtime directories
	xfs: don't over-report free space or inodes in statvfs
	usb: xhci: Add timeout argument in address_device USB HCD callback
	usb: xhci: Fix NULL pointer dereference on certain command aborts
	nvme: handle connectivity loss in nvme_set_queue_count
	firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
	gpu: drm_dp_cec: fix broken CEC adapter properties check
	tg3: Disable tg3 PCIe AER on system reboot
	udp: gso: do not drop small packets when PMTU reduces
	gpio: pca953x: Improve interrupt support
	net: atlantic: fix warning during hot unplug
	net: rose: lock the socket in rose_bind()
	x86/xen: fix xen_hypercall_hvm() to not clobber %rbx
	x86/xen: add FRAME_END to xen_hypercall_hvm()
	netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
	tun: revert fix group permission check
	cpufreq: s3c64xx: Fix compilation warning
	leds: lp8860: Write full EEPROM, not only half of it
	drm/modeset: Handle tiled displays in pan_display_atomic.
	s390/futex: Fix FUTEX_OP_ANDN implementation
	m68k: vga: Fix I/O defines
	binfmt_flat: Fix integer overflow bug on 32 bit systems
	arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma
	KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
	KVM: s390: vsie: fix some corner-cases when grabbing vsie pages
	drm/amd/pm: Mark MM activity as unsupported
	drm/komeda: Add check for komeda_get_layer_fourcc_list()
	drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
	Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc
	Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection
	clk: sunxi-ng: a100: enable MMC clock reparenting
	clk: qcom: clk-alpha-pll: fix alpha mode configuration
	clk: qcom: gcc-sm6350: Add missing parent_map for two clocks
	clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg
	clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate
	blk-cgroup: Fix class @block_class's subsystem refcount leakage
	efi: libstub: Use '-std=gnu11' to fix build with GCC 15
	perf bench: Fix undefined behavior in cmpworker()
	of: Correct child specifier used as input of the 2nd nexus node
	of: Fix of_find_node_opts_by_path() handling of alias+path+options
	of: reserved-memory: Fix using wrong number of cells to get property 'alignment'
	HID: hid-sensor-hub: don't use stale platform-data on remove
	wifi: rtlwifi: rtl8821ae: Fix media status report
	wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()
	usb: gadget: f_tcm: Translate error to sense
	usb: gadget: f_tcm: Decrement command ref count on cleanup
	usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
	usb: gadget: f_tcm: Don't prepare BOT write request twice
	soc: qcom: socinfo: Avoid out of bounds read of serial number
	serial: sh-sci: Drop __initdata macro for port_cfg
	serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use
	MIPS: Loongson64: remove ROM Size unit in boardinfo
	powerpc/pseries/eeh: Fix get PE state translation
	dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit()
	dm-crypt: track tag_offset in convert_context
	mips/math-emu: fix emulation of the prefx instruction
	Revert "media: uvcvideo: Require entities to have a non-zero unique ID"
	ALSA: hda/realtek: Enable headset mic on Positivo C6400
	PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
	nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
	nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
	scsi: qla2xxx: Move FCE Trace buffer allocation to user control
	scsi: storvsc: Set correct data length for sending SCSI command without payload
	kbuild: Move -Wenum-enum-conversion to W=2
	x86/boot: Use '-std=gnu11' to fix build with GCC 15
	arm64: dts: qcom: sm8350: Fix MPSS memory length
	crypto: qce - fix priority to be less than ARMv8 CE
	xfs: Add error handling for xfs_reflink_cancel_cow_range
	media: ccs: Clean up parsed CCS static data on parse failure
	iio: light: as73211: fix channel handling in only-color triggered buffer
	soc: qcom: smem_state: fix missing of_node_put in error path
	media: mc: fix endpoint iteration
	media: ov5640: fix get_light_freq on auto
	media: ccs: Fix CCS static data parsing for large block sizes
	media: ccs: Fix cleanup order in ccs_probe()
	media: uvcvideo: Fix event flags in uvc_ctrl_send_events
	media: uvcvideo: Remove redundant NULL assignment
	crypto: qce - fix goto jump in error path
	crypto: qce - unregister previously registered algos in error path
	nvmem: qcom-spmi-sdam: Set size in struct nvmem_config
	nvmem: core: improve range check for nvmem_cell_write()
	vfio/platform: check the bounds of read/write syscalls
	pnfs/flexfiles: retry getting layout segment for reads
	ocfs2: fix incorrect CPU endianness conversion causing mount failure
	ocfs2: handle a symlink read error correctly
	nilfs2: fix possible int overflows in nilfs_fiemap()
	NFC: nci: Add bounds checking in nci_hci_create_pipe()
	mtd: onenand: Fix uninitialized retlen in do_otp_read()
	misc: fastrpc: Fix registered buffer page address
	net/ncsi: wait for the last response to Deselect Package before configuring channel
	net: phy: c45-tjaxx: add delay between MDIO write and read in soft_reset
	ptp: Ensure info->enable callback is always set
	MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static
	net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling
	gpio: xilinx: remove excess kernel doc
	memory: tegra20-emc: Correct memory device mask
	ocfs2: check dir i_size in ocfs2_find_entry
	mptcp: prevent excessive coalescing on receive
	tty: xilinx_uartps: split sysrq handling
	nfsd: clear acl_access/acl_default after releasing them
	NFSD: fix hang in nfsd4_shutdown_callback
	HID: multitouch: Add NULL check in mt_input_configured
	ndisc: ndisc_send_redirect() must use dev_get_by_index_rcu()
	vrf: use RCU protection in l3mdev_l3_out()
	team: better TEAM_OPTION_TYPE_STRING validation
	arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array
	drm/i915/selftests: avoid using uninitialized context
	gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0
	gpio: bcm-kona: Make sure GPIO bits are unlocked when requesting IRQ
	gpio: bcm-kona: Add missing newline to dev_err format string
	xen: remove a confusing comment on auto-translated guest I/O
	x86/xen: allow larger contiguous memory regions in PV guests
	media: cxd2841er: fix 64-bit division on gcc-9
	media: vidtv: Fix a null-ptr-deref in vidtv_mux_stop_thread
	PCI/DPC: Quirk PIO log size for Intel Raptor Lake-P
	vfio/pci: Enable iowrite64 and ioread64 for vfio pci
	Grab mm lock before grabbing pt lock
	x86/mm/tlb: Only trim the mm_cpumask once a second
	orangefs: fix a oob in orangefs_debug_write
	ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V
	batman-adv: fix panic during interface removal
	batman-adv: Ignore neighbor throughput metrics in error case
	KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel
	perf/x86/intel: Ensure LBRs are disabled when a CPU is starting
	usb: roles: set switch registered flag early on
	usb: gadget: udc: renesas_usb3: Fix compiler warning
	usb: dwc2: gadget: remove of_node reference upon udc_stop
	USB: pci-quirks: Fix HCCPARAMS register error for LS7A EHCI
	usb: core: fix pipe creation for get_bMaxPacketSize0
	USB: quirks: add USB_QUIRK_NO_LPM quirk for Teclast dist
	USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone
	usb: gadget: f_midi: fix MIDI Streaming descriptor lengths
	USB: hub: Ignore non-compliant devices with too many configs or interfaces
	USB: cdc-acm: Fill in Renesas R-Car D3 USB Download mode quirk
	usb: cdc-acm: Check control transfer buffer size before access
	usb: cdc-acm: Fix handling of oversized fragments
	USB: serial: option: add MeiG Smart SLM828
	USB: serial: option: add Telit Cinterion FN990B compositions
	USB: serial: option: fix Telit Cinterion FN990A name
	USB: serial: option: drop MeiG Smart defines
	can: c_can: fix unbalanced runtime PM disable in error path
	can: j1939: j1939_sk_send_loop(): fix unable to send messages with data length zero
	alpha: make stack 16-byte aligned (most cases)
	efi: Avoid cold plugged memory for placing the kernel
	cgroup: fix race between fork and cgroup.kill
	serial: 8250: Fix fifo underflow on flush
	alpha: align stack for page fault and user unaligned trap handlers
	gpio: stmpe: Check return value of stmpe_reg_read in stmpe_gpio_irq_sync_unlock
	partitions: mac: fix handling of bogus partition table
	regmap-irq: Add missing kfree()
	arm64: Handle .ARM.attributes section in linker scripts
	mlxsw: Add return value check for mlxsw_sp_port_get_stats_raw()
	btrfs: fix hole expansion when writing at an offset beyond EOF
	clocksource: Replace cpumask_weight() with cpumask_empty()
	clocksource: Use pr_info() for "Checking clocksource synchronization" message
	clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context
	ipv4: add RCU protection to ip4_dst_hoplimit()
	net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu()
	net: add dev_net_rcu() helper
	ipv4: use RCU protection in rt_is_expired()
	ipv4: use RCU protection in inet_select_addr()
	Namespaceify min_pmtu sysctl
	Namespaceify mtu_expires sysctl
	selftest: net: Test IPv4 PMTU exceptions with DSCP and ECN
	net: ipv4: Cache pmtu for all packet paths if multipath enabled
	ipv4: use RCU protection in __ip_rt_update_pmtu()
	ipv6: use RCU protection in ip6_default_advmss()
	ndisc: use RCU protection in ndisc_alloc_skb()
	neighbour: delete redundant judgment statements
	neighbour: use RCU protection in __neigh_notify()
	arp: use RCU protection in arp_xmit()
	openvswitch: use RCU protection in ovs_vport_cmd_fill_info()
	ndisc: extend RCU protection in ndisc_send_skb()
	ipv6: mcast: add RCU protection to mld_newpack()
	drm/tidss: Fix issue in irq handling causing irq-flood issue
	drm/tidss: Clear the interrupt status for interrupts being disabled
	drm/v3d: Stop active perfmon if it is being destroyed
	kdb: Do not assume write() callback available
	x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0
	alpha: replace hardcoded stack offsets with autogenerated ones
	nilfs2: do not output warnings when clearing dirty buffers
	nilfs2: do not force clear folio if buffer is referenced
	nilfs2: protect access to buffers with no active references
	can: ems_pci: move ASIX AX99100 ids to pci_ids.h
	serial: 8250_pci: add support for ASIX AX99100
	parport_pc: add support for ASIX AX99100
	netdevsim: print human readable IP address
	selftests: rtnetlink: update netdevsim ipsec output format
	ARM: dts: dra7: Add bus_dma_limit for l4 cfg bus
	f2fs: fix to wait dio completion
	x86/i8253: Disable PIT timer 0 when not in use
	Revert "btrfs: avoid monopolizing a core when activating a swap file"
	btrfs: avoid monopolizing a core when activating a swap file
	pps: Fix a use-after-free
	arm64: mte: Do not allow PROT_MTE on MAP_HUGETLB user mappings
	crypto: testmgr - fix wrong key length for pkcs1pad
	crypto: testmgr - Fix wrong test case of RSA
	crypto: testmgr - fix version number of RSA tests
	crypto: testmgr - populate RSA CRT parameters in RSA test vectors
	crypto: testmgr - some more fixes to RSA test vectors
	media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
	mm: update mark_victim tracepoints fields
	memcg: fix soft lockup in the OOM process
	ksmbd: fix integer overflows on 32 bit systems
	drm/probe-helper: Create a HPD IRQ event helper for a single connector
	drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()
	ASoC: renesas: rz-ssi: Add a check for negative sample_space
	arm64: dts: mediatek: mt8183: Disable DSI display output by default
	tpm: Use managed allocation for bios event log
	tpm: Change to kvalloc() in eventlog/acpi.c
	kfence: allow use of a deferrable timer
	kfence: enable check kfence canary on panic via boot param
	kfence: skip __GFP_THISNODE allocations on NUMA systems
	soc: mediatek: mtk-devapc: Switch to devm_clk_get_enabled()
	soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
	soc/mediatek: mtk-devapc: Convert to platform remove callback returning void
	soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
	media: uvcvideo: Set error_idx during ctrl_commit errors
	media: uvcvideo: Refactor iterators
	media: uvcvideo: Only save async fh if success
	batman-adv: Drop initialization of flexible ethtool_link_ksettings
	batman-adv: Drop unmanaged ELP metric worker
	usb: dwc3: Increase DWC3 controller halt timeout
	usb: dwc3: Fix timeout issue during controller enter/exit from halt state
	USB: gadget: f_midi: f_midi_complete to call queue_work
	powerpc/64s/mm: Move __real_pte stubs into hash-4k.h
	powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline
	ALSA: hda/realtek: Fixup ALC225 depop procedure
	powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC
	geneve: Fix use-after-free in geneve_find_dev().
	gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl().
	geneve: Suppress list corruption splat in geneve_destroy_tunnels().
	net: extract port range fields from fl_flow_key
	flow_dissector: Fix handling of mixed port and port-range keys
	flow_dissector: Fix port range key handling in BPF conversion
	net: Add non-RCU dev_getbyhwaddr() helper
	arp: switch to dev_getbyhwaddr() in arp_req_set_public()
	power: supply: da9150-fg: fix potential overflow
	nvme/ioctl: add missing space in err message
	bpf: skip non exist keys in generic_map_lookup_batch
	tee: optee: Fix supplicant wait loop
	drop_monitor: fix incorrect initialization order
	nfp: bpf: Add check for nfp_app_ctrl_msg_alloc()
	ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED
	acct: perform last write from workqueue
	acct: block access to kernel internal filesystems
	mtd: rawnand: cadence: fix error code in cadence_nand_init()
	mtd: rawnand: cadence: use dma_map_resource for sdma address
	mtd: rawnand: cadence: fix incorrect device in dma_unmap_single
	x86/cpu/kvm: SRSO: Fix possible missing IBPB on VM-Exit
	IB/mlx5: Set and get correct qp_num for a DCT QP
	ovl: use wrappers to all vfs_*xattr() calls
	ovl: pass ofs to creation operations
	ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
	scsi: core: Don't memset() the entire scsi_cmnd in scsi_init_command()
	scsi: core: Clear driver private data when retrying request
	RDMA/mlx5: Fix bind QP error cleanup flow
	sunrpc: suppress warnings for unused procfs functions
	ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports
	Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
	afs: remove variable nr_servers
	afs: Make it possible to find the volumes that are using a server
	afs: Fix the server_list to unuse a displaced server rather than putting it
	net: loopback: Avoid sending IP packets without an Ethernet header
	net: cadence: macb: Synchronize stats calculations
	ASoC: es8328: fix route from DAC to output
	ipvs: Always clear ipvs_property flag in skb_scrub_packet()
	tcp: Defer ts_recent changes until req is owned
	net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
	net/mlx5: IRQ, Fix null string in debug print
	seg6: add support for SRv6 H.Encaps.Red behavior
	seg6: add support for SRv6 H.L2Encaps.Red behavior
	include: net: add static inline dst_dev_overhead() to dst.h
	net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
	net: ipv6: fix dst ref loop on input in seg6 lwt
	net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
	net: ipv6: fix dst ref loop on input in rpl lwt
	x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems
	ftrace: Avoid potential division by zero in function_stat_show()
	ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
	perf/core: Fix low freq setting via IOC_PERIOD
	drm/amd/display: Fix HPD after gpu reset
	i2c: npcm: disable interrupt enable bit before devm_request_irq
	usbnet: gl620a: fix endpoint checking in genelink_bind()
	net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
	net: enetc: update UDP checksum when updating originTimestamp field
	net: enetc: correct the xdp_tx statistics
	phy: tegra: xusb: reset VBUS & ID OVERRIDE
	phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
	mptcp: always handle address removal under msk socket lock
	vmlinux.lds: Ensure that const vars with relocations are mapped R/O
	sched/core: Prevent rescheduling when interrupts are disabled
	intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly
	pfifo_tail_enqueue: Drop new packet when sch->limit == 0
	smb: client: Add check for next_buffer in receive_encrypted_standard()
	drm/amdgpu: Check extended configuration space register when system uses large bar
	drm/amdgpu: disable BAR resize on Dell G5 SE
	Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"
	HID: appleir: Fix potential NULL dereference at raw event handle
	gpio: rcar: Use raw_spinlock to protect register access
	gpio: aggregator: protect driver attr handlers against module unload
	ALSA: hda: intel: Add Dell ALC3271 to power_save denylist
	ALSA: hda/realtek: update ALC222 depop optimize
	drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M
	platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e
	x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
	x86/cpu: Validate CPUID leaf 0x2 EDX output
	x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63
	wifi: cfg80211: regulatory: improve invalid hints checking
	wifi: nl80211: reject cooked mode if it is set along with other flags
	rapidio: add check for rio_add_net() in rio_scan_alloc_net()
	rapidio: fix an API misues when rio_add_net() fails
	s390/traps: Fix test_monitor_call() inline assembly
	block: fix conversion of GPT partition name to 7-bit
	mm/page_alloc: fix uninitialized variable
	mm: don't skip arch_sync_kernel_mappings() in error paths
	wifi: iwlwifi: limit printed string from FW file
	HID: google: fix unused variable warning under !CONFIG_ACPI
	HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()
	nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch
	net: gso: fix ownership in __udp_gso_segment
	caif_virtio: fix wrong pointer check in cfv_probe()
	hwmon: (pmbus) Initialise page count in pmbus_identify()
	hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table
	hwmon: (ad7314) Validate leading zero bits and return error
	ALSA: usx2y: validate nrpacks module parameter on probe
	llc: do not use skb_get() before dev_queue_xmit()
	hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()
	drm/sched: Fix preprocessor guard
	be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink
	net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error
	ppp: Fix KMSAN uninit-value warning with bpf
	vlan: enforce underlying device type
	x86/sgx: Support loading enclave page without VMA permissions check
	x86/sgx: Move PTE zap code to new sgx_zap_enclave_ptes()
	x86/sgx: Export sgx_encl_{grow,shrink}()
	x86/sgx: Support VA page allocation without reclaiming
	x86/sgx: Fix size overflows in sgx_encl_create()
	exfat: fix soft lockup in exfat_clear_bitmap
	net-timestamp: support TCP GSO case for a few missing flags
	sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
	net: ipv6: fix dst ref loop in ila lwtunnel
	net: ipv6: fix missing dst ref drop in ila lwtunnel
	gpio: rcar: Fix missing of_node_put() call
	Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
	usb: renesas_usbhs: Call clk_put()
	usb: renesas_usbhs: Use devm_usb_get_phy()
	usb: hub: lack of clearing xHC resources
	usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader
	usb: renesas_usbhs: Flush the notify_hotplug_work
	usb: atm: cxacru: fix a flaw in existing endpoint checks
	usb: dwc3: Set SUSPENDENABLE soon after phy init
	usb: dwc3: gadget: Prevent irq storm when TH re-executes
	usb: typec: ucsi: increase timeout for PPM reset operations
	usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality
	usb: gadget: Set self-powered based on MaxPower and bmAttributes
	usb: gadget: Fix setting self-powered state on suspend
	usb: gadget: Check bmAttributes only if configuration is valid
	xhci: pci: Fix indentation in the PCI device ID definitions
	usb: xhci: Enable the TRB overfetch quirk on VIA VL805
	Squashfs: check the inode number is not the invalid value of zero
	mei: me: add panther lake P DID
	intel_th: pci: Add Arrow Lake support
	intel_th: pci: Add Panther Lake-H support
	intel_th: pci: Add Panther Lake-P/U support
	slimbus: messaging: Free transaction ID in delayed interrupt scenario
	bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
	eeprom: digsy_mtc: Make GPIO lookup table match the device
	drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
	media: uvcvideo: Avoid invalid memory access
	media: uvcvideo: Avoid returning invalid controls
	md: select BLOCK_LEGACY_AUTOLOAD
	mtd: rawnand: cadence: fix unchecked dereference
	spi-mxs: Fix chipselect glitch
	nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link
	nilfs2: eliminate staggered calls to kunmap in nilfs_rename
	nilfs2: handle errors that nilfs_prepare_chunk() may return
	media: uvcvideo: Fix crash during unbind if gpio unit is in use
	media: uvcvideo: Remove dangling pointers
	bpf, vsock: Invoke proto::close on close()
	vsock: Keep the binding until socket destruction
	vsock: Orphan socket after transport release
	sched: sch_cake: add bounds checks to host bulk flow fairness counts
	kbuild: userprogs: use correct lld when linking through clang
	net: ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels
	Linux 5.15.179

Change-Id: I70dce3131dc3d03aa50dd416eeb64dbc97d1b9d8
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Changes in 5.15.180
	vlan: fix memory leak in vlan_newlink()
	clockevents/drivers/i8253: Fix stop sequence for timer 0
	sched/isolation: Prevent boot crash when the boot CPU is nohz_full
	ipv6: Fix signed integer overflow in __ip6_append_data
	fbdev: hyperv_fb: iounmap() the correct memory when removing a device
	pinctrl: bcm281xx: Fix incorrect regmap max_registers value
	netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
	ice: fix memory leak in aRFS after reset
	net: dsa: mv88e6xxx: Verify after ATU Load ops
	netpoll: hold rcu read lock in __netpoll_send_skb()
	Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
	net/mlx5: handle errors in mlx5_chains_create_table()
	netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
	ipvs: prevent integer overflow in do_ip_vs_get_ctl()
	net_sched: Prevent creation of classes with TC_H_ROOT
	netfilter: nft_exthdr: fix offset with ipv4_find_option()
	gre: Fix IPv6 link-local address generation.
	slab: clean up function prototypes
	slab: Introduce kmalloc_size_roundup()
	openvswitch: Use kmalloc_size_roundup() to match ksize() usage
	net: openvswitch: remove misbehaving actions length check
	net/mlx5: Bridge, fix the crash caused by LAG state check
	net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
	nvme-fc: go straight to connecting state when initializing
	hrtimers: Mark is_migration_base() with __always_inline
	powercap: call put_device() on an error path in powercap_register_control_type()
	iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
	scsi: core: Use GFP_NOIO to avoid circular locking dependency
	scsi: qla1280: Fix kernel oops when debug level > 2
	ACPI: resource: IRQ override for Eluktronics MECH-17
	alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
	vboxsf: fix building with GCC 15
	HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
	HID: ignore non-functional sensor in HP 5MP Camera
	sched: Clarify wake_up_q()'s write to task->wake_q.next
	s390/cio: Fix CHPID "configure" attribute caching
	thermal/cpufreq_cooling: Remove structure member documentation
	ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()
	ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
	ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module
	net: wwan: mhi_wwan_mbim: Silence sequence number glitch errors
	nvmet-rdma: recheck queue state is LIVE in state lock in recv done
	sctp: Fix undefined behavior in left shift operation
	nvme: only allow entering LIVE from CONNECTING state
	ASoC: tas2770: Fix volume scale
	ASoC: tas2764: Fix power control mask
	ASoC: tas2764: Set the SDOUT polarity correctly
	fuse: don't truncate cached, mutated symlink
	x86/irq: Define trace events conditionally
	mptcp: safety check before fallback
	drm/nouveau: Do not override forced connector status
	block: fix 'kmem_cache of name 'bio-108' already exists'
	USB: serial: ftdi_sio: add support for Altera USB Blaster 3
	USB: serial: option: add Telit Cinterion FE990B compositions
	USB: serial: option: fix Telit Cinterion FE990A name
	USB: serial: option: match on interface class for Telit FN990B
	x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
	drm/atomic: Filter out redundant DPMS calls
	drm/amd/display: Restore correct backlight brightness after a GPU reset
	drm/amd/display: Assign normalized_pix_clk when color depth = 14
	drm/amd/display: Fix slab-use-after-free on hdcp_work
	qlcnic: fix memory leak issues in qlcnic_sriov_common.c
	lib/buildid: Handle memfd_secret() files in build_id_parse()
	tcp: fix races in tcp_abort()
	ASoC: ops: Consistently treat platform_max as control value
	drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()
	ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
	cifs: Fix integer overflow while processing acregmax mount option
	cifs: Fix integer overflow while processing acdirmax mount option
	cifs: Fix integer overflow while processing actimeo mount option
	cifs: Fix integer overflow while processing closetimeo mount option
	i2c: ali1535: Fix an error handling path in ali1535_probe()
	i2c: ali15x3: Fix an error handling path in ali15x3_probe()
	i2c: sis630: Fix an error handling path in sis630_probe()
	drm/amd/display: Check for invalid input params when building scaling params
	drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params
	smb: client: Fix match_session bug preventing session reuse
	smb: client: fix potential UAF in cifs_debug_files_proc_show()
	firmware: imx-scu: fix OF node leak in .probe()
	xfrm_output: Force software GSO only in tunnel mode
	ARM: dts: bcm2711: PL011 UARTs are actually r1p5
	RDMA/bnxt_re: Add missing paranthesis in map_qp_id_to_tbl_indx
	ARM: dts: bcm2711: Don't mark timer regs unconfigured
	RDMA/bnxt_re: Avoid clearing VLAN_ID mask in modify qp path
	RDMA/hns: Remove redundant 'phy_addr' in hns_roce_hem_list_find_mtt()
	RDMA/hns: Fix soft lockup during bt pages loop
	RDMA/hns: Fix unmatched condition in error path of alloc_user_qp_db()
	RDMA/hns: Fix a missing rollback in error path of hns_roce_create_qp_common()
	RDMA/hns: Fix wrong value of max_sge_rd
	Bluetooth: Fix error code in chan_alloc_skb_cb()
	ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw().
	ipv6: Set errno after ip_fib_metrics_init() in ip6_route_info_create().
	net: atm: fix use after free in lec_send()
	net/neighbor: add missing policy for NDTPA_QUEUE_LENBYTES
	Revert "gre: Fix IPv6 link-local address generation."
	i2c: omap: fix IRQ storms
	drm/v3d: Don't run jobs that have errors flagged in its fence
	regulator: check that dummy regulator has been probed before using it
	mmc: atmel-mci: Add missing clk_disable_unprepare()
	proc: fix UAF in proc_get_inode()
	ARM: shmobile: smp: Enforce shmobile_smp_* alignment
	batman-adv: Ignore own maximum aggregation size during RX
	soc: qcom: pdr: Fix the potential deadlock
	drm/radeon: fix uninitialized size issue in radeon_vce_cs_parse()
	drm/amdgpu: Fix JPEG video caps max size for navi1x and raven
	mptcp: Fix data stream corruption in the address announcement
	arm64: dts: rockchip: fix u2phy1_host status for NanoPi R4S
	Bluetooth: hci_event: Align BR/EDR JUST_WORKS paring with LE
	bpf, sockmap: Fix race between element replace and close()
	ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
	HID: hid-plantronics: Add mic mute mapping and generalize quirks
	atm: Fix NULL pointer dereference
	ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
	ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
	ARM: Remove address checking for MMUless devices
	netfilter: socket: Lookup orig tuple for IPv6 SNAT
	ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx
	counter: stm32-lptimer-cnt: fix error handling when enabling
	counter: microchip-tcb-capture: Fix undefined counter channel state on probe
	tty: serial: 8250: Add some more device IDs
	tty: serial: 8250: Add Brainboxes XC devices
	net: usb: qmi_wwan: add Telit Cinterion FN990B composition
	net: usb: qmi_wwan: add Telit Cinterion FE990B composition
	net: usb: usbnet: restore usb%d name exception for local mac addresses
	memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
	serial: 8250_dma: terminate correct DMA in tx_dma_flush()
	media: i2c: et8ek8: Don't strip remove function when driver is builtin
	watch_queue: fix pipe accounting mismatch
	x86/mm/pat: cpa-test: fix length for CPA_ARRAY test
	cpufreq: scpi: compare kHz instead of Hz
	cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
	x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
	x86/platform: Only allow CONFIG_EISA for 32-bit
	PM: sleep: Adjust check before setting power.must_resume
	selinux: Chain up tool resolving errors in install_policy.sh
	EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
	EDAC/ie31200: Fix the DIMM size mask for several SoCs
	EDAC/ie31200: Fix the error path order of ie31200_init()
	thermal: int340x: Add NULL check for adev
	PM: sleep: Fix handling devices with direct_complete set on errors
	lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
	perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
	media: platform: allgro-dvt: unregister v4l2_device on the error path
	HID: remove superfluous (and wrong) Makefile entry for CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER
	ALSA: hda/realtek: Always honor no_shutup_pins
	ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible
	drm/bridge: ti-sn65dsi86: Fix multiple instances
	drm/dp_mst: Fix drm RAD print
	drm: xlnx: zynqmp: Fix max dma segment size
	drm/vkms: Fix use after free and double free on init error
	drm/mediatek: mtk_hdmi: Unregister audio platform device on failure
	drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member
	PCI/ASPM: Fix link state exit during switch upstream function removal
	PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload
	PCI: brcmstb: Use internal register to change link capability
	PCI/portdrv: Only disable pciehp interrupts early when needed
	PCI: Avoid reset when disabled via sysfs
	drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()
	PCI: Remove stray put_device() in pci_register_host_bridge()
	PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe
	drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()
	PCI: pciehp: Don't enable HPIE when resuming in poll mode
	fbdev: au1100fb: Move a variable assignment behind a null pointer check
	mdacon: rework dependency list
	fbdev: sm501fb: Add some geometry checks.
	clk: amlogic: gxbb: drop incorrect flag on 32k clock
	crypto: hisilicon/sec2 - fix for aead authsize alignment
	remoteproc: core: Clear table_sz when rproc_shutdown
	of: property: Increase NR_FWNODE_REFERENCE_ARGS
	remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
	libbpf: Fix hypothetical STT_SECTION extern NULL deref case
	clk: samsung: Fix UBSAN panic in samsung_clk_init()
	clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
	bpf: Use preempt_count() directly in bpf_send_signal_common()
	lib: 842: Improve error handling in sw842_compress()
	pinctrl: renesas: rza2: Fix missing of_node_put() call
	pinctrl: renesas: rzg2l: Fix missing of_node_put() call
	clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent
	RDMA/core: Don't expose hw_counters outside of init net namespace
	remoteproc: qcom_q6v5_mss: Handle platforms with one power domain
	IB/mad: Check available slots before posting receive WRs
	pinctrl: tegra: Set SFIO mode to Mux Register
	clk: amlogic: g12b: fix cluster A parent data
	clk: amlogic: gxbb: drop non existing 32k clock parent
	clk: amlogic: g12a: fix mmc A peripheral clock
	x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
	power: supply: max77693: Fix wrong conversion of charge input threshold value
	crypto: nx - Fix uninitialised hv_nxc on error
	RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
	mfd: sm501: Switch to BIT() to mitigate integer overflows
	x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment
	crypto: hisilicon/sec2 - fix for aead auth key length
	clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
	isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
	soundwire: slave: fix an OF node reference leak in soundwire slave device
	coresight: catu: Fix number of pages while using 64k pages
	iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
	fs/ntfs3: Fix a couple integer overflows on 32bit systems
	iio: adc: ad7124: Fix comparison of channel configs
	perf units: Fix insufficient array space
	kexec: initialize ELF lowest address to ULONG_MAX
	ocfs2: validate l_tree_depth to avoid out-of-bounds access
	NFSv4: Don't trigger uneccessary scans for return-on-close delegations
	fuse: fix dax truncate/punch_hole fault path
	i3c: master: svc: Fix missing the IBI rules
	perf python: Fixup description of sample.id event member
	perf python: Decrement the refcount of just created event on failure
	perf python: Don't keep a raw_data pointer to consumed ring buffer space
	perf python: Check if there is space to copy all the event
	fs/procfs: fix the comment above proc_pid_wchan()
	objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
	exfat: fix the infinite loop in exfat_find_last_cluster()
	rtnetlink: Allocate vfinfo size for VF GUIDs when supported
	ksmbd: use aead_request_free to match aead_request_alloc
	ksmbd: fix multichannel connection failure
	ring-buffer: Fix bytes_dropped calculation issue
	ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
	octeontx2-af: Fix mbox INTR handler when num VFs > 64
	octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
	sched/smt: Always inline sched_smt_active()
	wifi: iwlwifi: fw: allocate chained SG tables for dump
	nvme-tcp: fix possible UAF in nvme_tcp_poll
	nvme-pci: clean up CMBMSC when registering CMB fails
	nvme-pci: skip CMB blocks incompatible with PCI P2P DMA
	affs: generate OFS sequence numbers starting at 1
	affs: don't write overlarge OFS data block size fields
	ksmbd: fix incorrect validation for num_aces field of smb_acl
	sched/deadline: Use online cpus for validating runtime
	locking/semaphore: Use wake_q to wake up processes outside lock critical section
	x86/sgx: Warn explicitly if X86_FEATURE_SGX_LC is not enabled
	drm/amd: Keep display off while going into S4
	ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx
	can: statistics: use atomic access in hot path
	hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}
	spufs: fix a leak on spufs_new_file() failure
	spufs: fix a leak in spufs_create_context()
	riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra
	ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans
	ntb: intel: Fix using link status DB's
	ASoC: imx-card: Add NULL check in imx_card_probe()
	netfilter: nft_set_hash: GC reaps elements with conncount for dynamic sets only
	netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets
	net_sched: skbprio: Remove overly strict queue assertions
	net: mvpp2: Prevent parser TCAM memory corruption
	vsock: avoid timeout during connect() if the socket is closing
	tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().
	netfilter: nft_tunnel: fix geneve_opt type confusion addition
	ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS
	net: fix geneve_opt length integer overflow
	arcnet: Add NULL check in com20020pci_probe()
	can: flexcan: only change CAN state when link up in system PM
	can: flexcan: disable transceiver during system PM
	mmc: sdhci-brcmstb: Add ability to increase max clock rate for 72116b0
	mmc: sdhci-brcmstb: add cqhci suspend/resume to PM ops
	tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
	tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers
	drm/amd/pm: Fix negative array index read
	drm/amd/display: Skip inactive planes within ModeSupportAndSystemConfiguration
	usbnet:fix NPE during rx_complete
	platform/x86: ISST: Correct command storage data length
	ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()
	btrfs: handle errors from btrfs_dec_ref() properly
	x86/tsc: Always save/restore TSC sched_clock() on suspend/resume
	x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs
	acpi: nfit: fix narrowing conversion in acpi_nfit_ctl
	ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
	mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
	tracing: Fix use-after-free in print_graph_function_flags during tracer switching
	tracing: Ensure module defining synth event cannot be unloaded while tracing
	tracing: Fix synth event printk format for str fields
	tracing/osnoise: Fix possible recursive locking for cpus_read_lock()
	ext4: don't over-report free space or inodes in statvfs
	ext4: fix OOB read when checking dotdot dir
	jfs: fix slab-out-of-bounds read in ea_get()
	jfs: add index corruption check to DT_GETPAGE()
	nfsd: put dl_stid if fail to queue dl_recall
	NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up
	mmc: sdhci-brcmstb: use clk_get_rate(base_clk) in PM resume
	mm, slab: remove duplicate kernel-doc comment for ksize()
	tracing: Do not use PERF enums when perf is not defined
	mmc: sdhci-brcmstb: Initialize base_clk to NULL in sdhci_brcmstb_probe()
	Linux 5.15.180

Change-Id: I68dd89447505df1932831ef89c38bef45cc8b7ff
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 051be16 which is
commit 80b5f90 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I873517fe5d50d622c828996ab64b2aedab7882f4
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This reverts commit 791de73 which is
commit eb50844 upstream.

It breaks the Android kernel abi and can be brought back in the future
in an abi-safe way if it is really needed.

Bug: 161946584
Change-Id: I10e47f01e3615100aef516b2eab3dc668a3214ed
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
Android has mounted the v1 cpuset controller using filesystem type
"cpuset" (not "cgroup") since 2015 [1], and depends on the resulting
behavior where the controller name is not added as a prefix for cgroupfs
files. [2]

Later, a problem was discovered where cpu hotplug onlining did not
affect the cpuset/cpus files, which Android carried an out-of-tree patch
to address for a while. An attempt was made to upstream this patch, but
the recommendation was to use the "cpuset_v2_mode" mount option
instead. [3]

An effort was made to do so, but this fails with "cgroup: Unknown
parameter 'cpuset_v2_mode'" because commit e1cba4b ("cgroup: Add
mount flag to enable cpuset to use v2 behavior in v1 cgroup") did not
update the special cased cpuset_mount(), and only the cgroup (v1)
filesystem type was updated.

Add parameter parsing to the cpuset filesystem type so that
cpuset_v2_mode works like the cgroup filesystem type:

$ mkdir /dev/cpuset
$ mount -t cpuset -ocpuset_v2_mode none /dev/cpuset
$ mount|grep cpuset
none on /dev/cpuset type cgroup (rw,relatime,cpuset,noprefix,cpuset_v2_mode,release_agent=/sbin/cpuset_release_agent)

[1] https://cs.android.com/android/_/android/platform/system/core/+/b769c8d24fd7be96f8968aa4c80b669525b930d3
[2] https://cs.android.com/android/platform/superproject/main/+/main:system/core/libprocessgroup/setup/cgroup_map_write.cpp;drc=2dac5d89a0f024a2d0cc46a80ba4ee13472f1681;l=192
[3] https://lore.kernel.org/lkml/f795f8be-a184-408a-0b5a-553d26061385@redhat.com/T/

Fixes: e1cba4b ("cgroup: Add mount flag to enable cpuset to use v2 behavior in v1 cgroup")
Signed-off-by: T.J. Mercier <tjmercier@google.com>
Acked-by: Waiman Long <longman@redhat.com>
Reviewed-by: Kamalesh Babulal <kamalesh.babulal@oracle.com>
Acked-by: Michal Koutný <mkoutny@suse.com>
Signed-off-by: Tejun Heo <tj@kernel.org>
(cherry picked from commit 1bf67c8 https://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git for-6.15-fixes)
Bug: 409240872
Change-Id: I24726766d247e2638c719b56bd7d2d536085f6e4
Signed-off-by: T.J. Mercier <tjmercier@google.com>
[ Upstream commit 0c3057a ]

The function qdisc_tree_reduce_backlog() uses TC_H_ROOT as a termination
condition when traversing up the qdisc tree to update parent backlog
counters. However, if a class is created with classid TC_H_ROOT, the
traversal terminates prematurely at this class instead of reaching the
actual root qdisc, causing parent statistics to be incorrectly maintained.
In case of DRR, this could lead to a crash as reported by Mingi Cho.

Prevent the creation of any Qdisc class with classid TC_H_ROOT
(0xFFFFFFFF) across all qdisc types, as suggested by Jamal.

Bug: 403920173
Reported-by: Mingi Cho <mincho@theori.io>
Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Fixes: 066a3b5 ("[NET_SCHED] sch_api: fix qdisc_tree_decrease_qlen() loop")
Link: https://patch.msgid.link/20250306232355.93864-2-xiyou.wangcong@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
(cherry picked from commit 78533c4)
Signed-off-by: Lee Jones <joneslee@google.com>
Change-Id: Ieac912ddc0bc44e999fe0d29ddf3a3842abdfa14
30 function symbol(s) added
  'int __devm_reset_control_bulk_get(struct device*, int, struct reset_control_bulk_data*, bool, bool, bool)'
  'bool cancel_work(struct work_struct*)'
  'void drm_connector_set_link_status_property(struct drm_connector*, uint64_t)'
  'int drm_dp_read_desc(struct drm_dp_aux*, struct drm_dp_desc*, bool)'
  'int drm_dp_read_downstream_info(struct drm_dp_aux*, const u8*, u8*)'
  'int drm_dp_read_dpcd_caps(struct drm_dp_aux*, u8*)'
  'bool drm_dp_read_sink_count_cap(struct drm_connector*, const u8*, const struct drm_dp_desc*)'
  'bool drm_dp_send_real_edid_checksum(struct drm_dp_aux*, u8)'
  'struct typec_mux* fwnode_typec_mux_get(struct fwnode_handle*, const struct typec_altmode_desc*)'
  'struct typec_switch* fwnode_typec_switch_get(struct fwnode_handle*)'
  'struct i2c_client* i2c_new_smbus_alert_device(struct i2c_adapter*, struct i2c_smbus_alert_setup*)'
  's32 i2c_smbus_write_block_data(const struct i2c_client*, u8, u8, const u8*)'
  'int of_i2c_get_board_info(struct device*, struct device_node*, struct i2c_board_info*)'
  'bool pci_dev_run_wake(struct pci_dev*)'
  'void pci_disable_msix(struct pci_dev*)'
  'int pci_enable_msix_range(struct pci_dev*, struct msix_entry*, int, int)'
  'int pci_prepare_to_sleep(struct pci_dev*)'
  'int pci_status_get_and_clear_errors(struct pci_dev*)'
  'int pcie_set_readrq(struct pci_dev*, int)'
  'int pcim_set_mwi(struct pci_dev*)'
  'int phy_start_aneg(struct phy_device*)'
  'int regulator_register_supply_alias(struct device*, const char*, struct device*, const char*)'
  'void regulator_unregister_supply_alias(struct device*, const char*)'
  'int reset_control_bulk_acquire(int, struct reset_control_bulk_data*)'
  'int reset_control_bulk_deassert(int, struct reset_control_bulk_data*)'
  'void reset_control_bulk_release(int, struct reset_control_bulk_data*)'
  'int rproc_of_parse_firmware(struct device*, int, const char**)'
  'void typec_mux_put(struct typec_mux*)'
  'void typec_switch_put(struct typec_switch*)'
  'int typec_switch_set(struct typec_switch*, enum typec_orientation)'

Bug: 412942114
Change-Id: I1842bc089179d3c24d03e37d6bca0f57dbade837
Signed-off-by: James Tai <james.tai@realtek.com>
7 function symbol(s) added
  'int spi_mem_exec_op(struct spi_mem *mem, const struct spi_mem_op *op)'
  'ssize_t spi_mem_dirmap_read(struct spi_mem_dirmap_desc *desc, u64 offs, size_t len, void *buf)'
  'ssize_t spi_mem_dirmap_write(struct spi_mem_dirmap_desc *desc, u64 offs, size_t len, const void *buf)'
  'int spi_mem_driver_register_with_owner(struct spi_mem_driver *memdrv, struct module *owner)'
  'const char *spi_mem_get_name(struct spi_mem *mem)'
  'struct spi_mem_dirmap_desc * devm_spi_mem_dirmap_create(struct device *dev, struct spi_mem *mem, const struct spi_mem_dirmap_info *info)'
  'void spi_mem_driver_unregister(struct spi_mem_driver *memdrv)'

Bug: 410966005
Change-Id: I4f3e0275d7678757102d75ab32b6680f32e1e3a5
Signed-off-by: Zhipeng Wei <zhipeng5.wei@tcl.corp-partner.google.com>
This patch repurposes a ANDROID_KABI_RESERVE slot used for LTS backports
for feature backports. Slot 4 is repurposed as parts of slot 1 are
already used for accept_ra_min_lft on some branches.

Bug: 315069348
Signed-off-by: Patrick Rohr <prohr@google.com>
Change-Id: I19b9dfc16d891fb6fe48ec4379c6fa3dcb6adf89
This merges the android14-5.15.180_r00 tag into the android14-5.15 branch,
catching it up with the latest LTS releases.

It contains the following commits:

* c46ef9e6bc99 Revert "of: property: Increase NR_FWNODE_REFERENCE_ARGS"
* 13c8555e7f26 Revert "can: statistics: use atomic access in hot path"
*   90a66c1e3f48 Merge 5.15.180 into android14-5.15-lts
|\
| * f7347f400572 Linux 5.15.180
| * 0d709c0ccceb mmc: sdhci-brcmstb: Initialize base_clk to NULL in sdhci_brcmstb_probe()
| * 35254cb9d115 tracing: Do not use PERF enums when perf is not defined
| * 3e47f3a703c6 mm, slab: remove duplicate kernel-doc comment for ksize()
| * c1030da07a24 mmc: sdhci-brcmstb: use clk_get_rate(base_clk) in PM resume
| * 58bc361822db NFSD: Skip sending CB_RECALL_ANY when the backchannel isn't up
| * cdb796137c57 nfsd: put dl_stid if fail to queue dl_recall
| * b0274ddac570 jfs: add index corruption check to DT_GETPAGE()
| * 78c9cbde8880 jfs: fix slab-out-of-bounds read in ea_get()
| * b7531a4f99c3 ext4: fix OOB read when checking dotdot dir
| * 1b77a8c7f8b7 ext4: don't over-report free space or inodes in statvfs
| * 37e8719b1791 tracing/osnoise: Fix possible recursive locking for cpus_read_lock()
| * 585464695f63 tracing: Fix synth event printk format for str fields
| * caefd40151f7 tracing: Ensure module defining synth event cannot be unloaded while tracing
| * 81a85b12132c tracing: Fix use-after-free in print_graph_function_flags during tracer switching
| * 801bc749fe66 mmc: sdhci-pxav3: set NEED_RSP_BUSY capability
| * 7fbfe8d99b2f ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP
| * 92ba06aef655 acpi: nfit: fix narrowing conversion in acpi_nfit_ctl
| * 0a8f806ea6b5 x86/mm: Fix flush_tlb_range() when used for zapping normal PMDs
| * 5ac5f2a3a8ff x86/tsc: Always save/restore TSC sched_clock() on suspend/resume
| * 2c4fe45351e5 btrfs: handle errors from btrfs_dec_ref() properly
| * 7b02f69bfb19 ntb_perf: Delete duplicate dmaengine_unmap_put() call in perf_copy_chunk()
| * 1df48e8773cf platform/x86: ISST: Correct command storage data length
| * 95789c2f94fd usbnet:fix NPE during rx_complete
| * 4331ae2788e7 drm/amd/display: Skip inactive planes within ModeSupportAndSystemConfiguration
| * e549cd6da1f2 drm/amd/pm: Fix negative array index read
| * 91264238e941 tty: serial: fsl_lpuart: disable transmitter before changing RS485 related registers
| * 557f6adcd07d tty: serial: fsl_lpuart: use UARTMODIR register bits for lpuart32 platform
| * f8100551939b mmc: sdhci-brcmstb: add cqhci suspend/resume to PM ops
| * 6991fabddd6f mmc: sdhci-brcmstb: Add ability to increase max clock rate for 72116b0
| * 4c671d0377b8 can: flexcan: disable transceiver during system PM
| * c79d1fba305d can: flexcan: only change CAN state when link up in system PM
| * ef8b29398ea6 arcnet: Add NULL check in com20020pci_probe()
| * b4513ad0f391 net: fix geneve_opt length integer overflow
| * 0baa3f0369a9 ipv6: fix omitted netlink attributes when using RTEXT_FILTER_SKIP_STATS
| * ca2adfc03cd6 netfilter: nft_tunnel: fix geneve_opt type confusion addition
| * e7479a2549cb tunnels: Accept PACKET_HOST in skb_tunnel_check_pmtu().
| * 0162cb87b3cd vsock: avoid timeout during connect() if the socket is closing
| * e3711163d14d net: mvpp2: Prevent parser TCAM memory corruption
| * 32ee79682315 net_sched: skbprio: Remove overly strict queue assertions
| * a7e89541d05b netlabel: Fix NULL pointer exception caused by CALIPSO on IPv4 sockets
| * b87f19c495cb netfilter: nft_set_hash: GC reaps elements with conncount for dynamic sets only
| * 018e6cf2503e ASoC: imx-card: Add NULL check in imx_card_probe()
| * 03fd0444e719 ntb: intel: Fix using link status DB's
| * 2429bdf26a0f ntb_hw_switchtec: Fix shift-out-of-bounds in switchtec_ntb_mw_set_trans
| * de237129b9fd riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra
| * c4e72a0d7544 spufs: fix a leak in spufs_create_context()
| * 53b189651c33 spufs: fix a leak on spufs_new_file() failure
| * 90c4a3eaa7d5 hwmon: (nct6775-core) Fix out of bounds access for NCT679{8,9}
| * 051be169fb7c can: statistics: use atomic access in hot path
| * fe2ffc3442bf ALSA: hda/realtek: Add mute LED quirk for HP Pavilion x360 14-dy1xxx
| * c3021a955e77 drm/amd: Keep display off while going into S4
| * 3c9a43eef01d x86/sgx: Warn explicitly if X86_FEATURE_SGX_LC is not enabled
| * 46c66d975a58 locking/semaphore: Use wake_q to wake up processes outside lock critical section
| * 26d4d84aa6cf sched/deadline: Use online cpus for validating runtime
| * c3a3484d9d31 ksmbd: fix incorrect validation for num_aces field of smb_acl
| * 397e6aa03f9a affs: don't write overlarge OFS data block size fields
| * 4441c2658337 affs: generate OFS sequence numbers starting at 1
| * 35d7887ab2d1 nvme-pci: skip CMB blocks incompatible with PCI P2P DMA
| * 7b860d9a4d56 nvme-pci: clean up CMBMSC when registering CMB fails
| * 8dad8a6b4f61 nvme-tcp: fix possible UAF in nvme_tcp_poll
| * 2be5bed3e089 wifi: iwlwifi: fw: allocate chained SG tables for dump
| * 7929187c67a3 sched/smt: Always inline sched_smt_active()
| * cb615d3fdaae octeontx2-af: Free NIX_AF_INT_VEC_GEN irq
| * f1e97333d34a octeontx2-af: Fix mbox INTR handler when num VFs > 64
| * 190d766abe6f ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid
| * 1db23504775a ring-buffer: Fix bytes_dropped calculation issue
| * 55cf766eba06 ksmbd: fix multichannel connection failure
| * 571b342d4688 ksmbd: use aead_request_free to match aead_request_alloc
| * bb7bdf636cef rtnetlink: Allocate vfinfo size for VF GUIDs when supported
| * 52a6316af117 exfat: fix the infinite loop in exfat_find_last_cluster()
| * 9b76b198cf20 objtool, media: dib8000: Prevent divide-by-zero in dib8000_set_dds()
| * b20a4ca247a5 fs/procfs: fix the comment above proc_pid_wchan()
| * ccf40f82638d perf python: Check if there is space to copy all the event
| * 69abc7554403 perf python: Don't keep a raw_data pointer to consumed ring buffer space
| * cdf417656af5 perf python: Decrement the refcount of just created event on failure
| * be0f2d515164 perf python: Fixup description of sample.id event member
| * 1c0bd3d322ae i3c: master: svc: Fix missing the IBI rules
| * c5d2d17aecb4 fuse: fix dax truncate/punch_hole fault path
| * 257fd2aa2893 NFSv4: Don't trigger uneccessary scans for return-on-close delegations
| * 17c99ab3db2b ocfs2: validate l_tree_depth to avoid out-of-bounds access
| * d2421351549c kexec: initialize ELF lowest address to ULONG_MAX
| * adb0ac53b73e perf units: Fix insufficient array space
| * 201e7d7c0e32 iio: adc: ad7124: Fix comparison of channel configs
| * 0922d86a7a60 fs/ntfs3: Fix a couple integer overflows on 32bit systems
| * 7041fafd0dc6 iio: accel: mma8452: Ensure error return on failure to matching oversampling ratio
| * 473362787faf coresight: catu: Fix number of pages while using 64k pages
| * abb8f3369f44 soundwire: slave: fix an OF node reference leak in soundwire slave device
| * ae44c01f3fbb isofs: fix KMSAN uninit-value bug in do_isofs_readdir()
| * b9d693b3bc25 clk: qcom: mmcc-sdm660: fix stuck video_subcore0 clock
| * f19a85216aa8 crypto: hisilicon/sec2 - fix for aead auth key length
| * 1c644d8ab3f6 x86/dumpstack: Fix inaccurate unwinding from exception stacks due to misplaced assignment
| * ab776df91d67 mfd: sm501: Switch to BIT() to mitigate integer overflows
| * f0447ceb8a31 RDMA/mlx5: Fix mlx5_poll_one() cur_qp update flow
| * 6d662e7666f2 crypto: nx - Fix uninitialised hv_nxc on error
| * a2d672786704 power: supply: max77693: Fix wrong conversion of charge input threshold value
| * 9b35d55bfc9f x86/entry: Fix ORC unwinder for PUSH_REGS with save_ret=1
| * 93c6fb0d18ad clk: amlogic: g12a: fix mmc A peripheral clock
| * f95e0f36e592 clk: amlogic: gxbb: drop non existing 32k clock parent
| * cc2817165e5e clk: amlogic: g12b: fix cluster A parent data
| * 8c9652d29438 pinctrl: tegra: Set SFIO mode to Mux Register
| * b26ed1d80c48 IB/mad: Check available slots before posting receive WRs
| * 79103371b574 remoteproc: qcom_q6v5_mss: Handle platforms with one power domain
| * 9a5b7f8842a9 RDMA/core: Don't expose hw_counters outside of init net namespace
| * d82fd0fb9750 clk: rockchip: rk3328: fix wrong clk_ref_usb3otg parent
| * f6adccd0a887 pinctrl: renesas: rzg2l: Fix missing of_node_put() call
| * 93a0760d371e pinctrl: renesas: rza2: Fix missing of_node_put() call
| * 3b619f280328 lib: 842: Improve error handling in sw842_compress()
| * eba7778cf9b9 bpf: Use preempt_count() directly in bpf_send_signal_common()
| * 948b7898a81a clk: qcom: gcc-msm8953: fix stuck venus0_core0 clock
| * d974e177369c clk: samsung: Fix UBSAN panic in samsung_clk_init()
| * b28c6712afb6 libbpf: Fix hypothetical STT_SECTION extern NULL deref case
| * be6a831b44fe remoteproc: qcom_q6v5_pas: Make single-PD handling more robust
| * 791de7357bdd of: property: Increase NR_FWNODE_REFERENCE_ARGS
| * 6e66bca8cd51 remoteproc: core: Clear table_sz when rproc_shutdown
| * cca86355466f crypto: hisilicon/sec2 - fix for aead authsize alignment
| * d512627292bc clk: amlogic: gxbb: drop incorrect flag on 32k clock
| * 8a16be14db76 fbdev: sm501fb: Add some geometry checks.
| * 7dc76ac3eb84 mdacon: rework dependency list
| * dbac029069f8 fbdev: au1100fb: Move a variable assignment behind a null pointer check
| * 272a425d77ca PCI: pciehp: Don't enable HPIE when resuming in poll mode
| * 9ac06e063209 drm/mediatek: dsi: fix error codes in mtk_dsi_host_transfer()
| * ce7ebca5488f PCI: xilinx-cpm: Fix IRQ domain leak in error path of probe
| * 8916ca26d4e6 PCI: Remove stray put_device() in pci_register_host_bridge()
| * bb4a1eb2c6a1 drm/amd/display: fix type mismatch in CalculateDynamicMetadataParameters()
| * 9a376697fcac PCI: Avoid reset when disabled via sysfs
| * 8656d24467a9 PCI/portdrv: Only disable pciehp interrupts early when needed
| * df97eb2fd468 PCI: brcmstb: Use internal register to change link capability
| * fa2fcc7706fe PCI: cadence-ep: Fix the driver to send MSG TLP for INTx without data payload
| * e5cd58f61e9d PCI/ASPM: Fix link state exit during switch upstream function removal
| * 01be87ebbf44 drm/mediatek: mtk_hdmi: Fix typo for aud_sampe_size member
| * 67ccd3e9fdc7 drm/mediatek: mtk_hdmi: Unregister audio platform device on failure
| * 49a69f67f535 drm/vkms: Fix use after free and double free on init error
| * 9842973b93c4 drm: xlnx: zynqmp: Fix max dma segment size
| * 1b990d384b28 drm/dp_mst: Fix drm RAD print
| * 271755cd8ff0 drm/bridge: ti-sn65dsi86: Fix multiple instances
| * b02c23f38fe2 ASoC: ti: j721e-evm: Fix clock configuration for ti,j7200-cpb-audio compatible
| * 1cfb0ed41174 ALSA: hda/realtek: Always honor no_shutup_pins
| * c877ac2c888d HID: remove superfluous (and wrong) Makefile entry for CONFIG_INTEL_ISH_FIRMWARE_DOWNLOADER
| * 2453d54d6700 media: platform: allgro-dvt: unregister v4l2_device on the error path
| * f343b4420263 perf/ring_buffer: Allow the EPOLLRDNORM flag for poll
| * 3a96b835f82e lockdep: Don't disable interrupts on RT in disable_irq_nosync_lockdep.*()
| * 4eb3afae45cd PM: sleep: Fix handling devices with direct_complete set on errors
| * 3155d5261b51 thermal: int340x: Add NULL check for adev
| * c5e1a3d67651 EDAC/ie31200: Fix the error path order of ie31200_init()
| * 1f64ad3034dc EDAC/ie31200: Fix the DIMM size mask for several SoCs
| * 537a5a3de19b EDAC/ie31200: Fix the size of EDAC_MC_LAYER_CHIP_SELECT layer
| * ed68a544b931 selinux: Chain up tool resolving errors in install_policy.sh
| * 24045932e7e0 PM: sleep: Adjust check before setting power.must_resume
| * 3914a222d673 x86/platform: Only allow CONFIG_EISA for 32-bit
| * 3047aba14253 x86/fpu: Avoid copying dynamic FP state from init_task in arch_dup_task_struct()
| * dc6e7db76a35 cpufreq: governor: Fix negative 'idle_time' handling in dbs_update()
| * 74e918950ba9 cpufreq: scpi: compare kHz instead of Hz
| * 990d17f5d35d x86/mm/pat: cpa-test: fix length for CPA_ARRAY test
| * 471c89b7d4f5 watch_queue: fix pipe accounting mismatch
| * ece3fc1c1019 media: i2c: et8ek8: Don't strip remove function when driver is builtin
| * 03c4c633a022 serial: 8250_dma: terminate correct DMA in tx_dma_flush()
| * 31f0eaed6914 memstick: rtsx_usb_ms: Fix slab-use-after-free in rtsx_usb_ms_drv_remove
| * df594b4bf294 net: usb: usbnet: restore usb%d name exception for local mac addresses
| * f9f2b4139ac5 net: usb: qmi_wwan: add Telit Cinterion FE990B composition
| * 7a8e62c90f27 net: usb: qmi_wwan: add Telit Cinterion FN990B composition
| * 7802030f86e4 tty: serial: 8250: Add Brainboxes XC devices
| * 463e16de8ab4 tty: serial: 8250: Add some more device IDs
| * 1e82f28f2958 counter: microchip-tcb-capture: Fix undefined counter channel state on probe
| * 889c71c613c0 counter: stm32-lptimer-cnt: fix error handling when enabling
| * ce37a881271a ALSA: hda/realtek: Support mute LED on HP Laptop 15s-du3xxx
| * 1ca2169cc19d netfilter: socket: Lookup orig tuple for IPv6 SNAT
| * 523b9c2ed5dc ARM: Remove address checking for MMUless devices
| * 7da1f403ad80 ARM: 9351/1: fault: Add "cut here" line for prefetch aborts
| * db8e5866d1aa ARM: 9350/1: fault: Implement copy_from_kernel_nofault_allowed()
| * d7f1e4a53a51 atm: Fix NULL pointer dereference
| * 2498a3a95c80 HID: hid-plantronics: Add mic mute mapping and generalize quirks
| * 6e8093be53ed ALSA: usb-audio: Add quirk for Plantronics headsets to fix control names
| * fdb2cd8957ac bpf, sockmap: Fix race between element replace and close()
| * 22b49d6e4f39 Bluetooth: hci_event: Align BR/EDR JUST_WORKS paring with LE
| * f50efd386116 arm64: dts: rockchip: fix u2phy1_host status for NanoPi R4S
| * 590327b49706 mptcp: Fix data stream corruption in the address announcement
| * 037e753561ec drm/amdgpu: Fix JPEG video caps max size for navi1x and raven
| * 9b2da9c673a0 drm/radeon: fix uninitialized size issue in radeon_vce_cs_parse()
| * daba84612236 soc: qcom: pdr: Fix the potential deadlock
| * a35b68e55089 batman-adv: Ignore own maximum aggregation size during RX
| * 4a7d4f01f440 ARM: shmobile: smp: Enforce shmobile_smp_* alignment
| * 4b0b8445b6fd proc: fix UAF in proc_get_inode()
| * 4667e64b3916 mmc: atmel-mci: Add missing clk_disable_unprepare()
| * 8e500180904a regulator: check that dummy regulator has been probed before using it
| * f45a322c9994 drm/v3d: Don't run jobs that have errors flagged in its fence
| * 0ffefd3117fb i2c: omap: fix IRQ storms
| * 4d9c2a0d8a27 Revert "gre: Fix IPv6 link-local address generation."
| * fc0f223ea342 net/neighbor: add missing policy for NDTPA_QUEUE_LENBYTES
| * 82d9084a9789 net: atm: fix use after free in lec_send()
| * d2ae4cc39c1a ipv6: Set errno after ip_fib_metrics_init() in ip6_route_info_create().
| * 596a883c4ce2 ipv6: Fix memleak of nhc_pcpu_rth_output in fib_check_nh_v6_gw().
| * 76304cba8cba Bluetooth: Fix error code in chan_alloc_skb_cb()
| * 33a839830dcc RDMA/hns: Fix wrong value of max_sge_rd
| * 1d9e126a5db7 RDMA/hns: Fix a missing rollback in error path of hns_roce_create_qp_common()
| * bd3774c05c8f RDMA/hns: Fix unmatched condition in error path of alloc_user_qp_db()
| * efe544462fc0 RDMA/hns: Fix soft lockup during bt pages loop
| * e6f5739f13f0 RDMA/hns: Remove redundant 'phy_addr' in hns_roce_hem_list_find_mtt()
| * 48dc65b3dd0c RDMA/bnxt_re: Avoid clearing VLAN_ID mask in modify qp path
| * 0eb62974d6fa ARM: dts: bcm2711: Don't mark timer regs unconfigured
| * 4296c2f111d6 RDMA/bnxt_re: Add missing paranthesis in map_qp_id_to_tbl_indx
| * 5608b9b07a39 ARM: dts: bcm2711: PL011 UARTs are actually r1p5
| * 7a64c8ebf73e xfrm_output: Force software GSO only in tunnel mode
| * 7631e903a1d0 firmware: imx-scu: fix OF node leak in .probe()
| * a140224bcf87 smb: client: fix potential UAF in cifs_debug_files_proc_show()
| * 9b7cabd24812 smb: client: Fix match_session bug preventing session reuse
| * f435192e00bc drm/amd/display: Fix null check for pipe_ctx->plane_state in resource_build_scaling_params
| * 53ce3ffe7b09 drm/amd/display: Check for invalid input params when building scaling params
| * b4d89d5cb794 i2c: sis630: Fix an error handling path in sis630_probe()
| * 449aaab1338b i2c: ali15x3: Fix an error handling path in ali15x3_probe()
| * 35092c242e10 i2c: ali1535: Fix an error handling path in ali1535_probe()
| * 513f6cf2e906 cifs: Fix integer overflow while processing closetimeo mount option
| * ea8e5dd4e4cd cifs: Fix integer overflow while processing actimeo mount option
| * 0c26edf477e0 cifs: Fix integer overflow while processing acdirmax mount option
| * a13351624a6a cifs: Fix integer overflow while processing acregmax mount option
| * 2fc361f0d32c ASoC: codecs: wm0010: Fix error handling path in wm0010_spi_probe()
| * b14482befdb6 drm/gma500: Add NULL check for pci_gfx_root in mid_get_vbt_data()
| * c402f184a053 ASoC: ops: Consistently treat platform_max as control value
| * 5defdaddd53a tcp: fix races in tcp_abort()
| * 105c66116a8b lib/buildid: Handle memfd_secret() files in build_id_parse()
| * 68ae5ef2dc98 qlcnic: fix memory leak issues in qlcnic_sriov_common.c
| * 1397715b011b drm/amd/display: Fix slab-use-after-free on hdcp_work
| * 0c0016712e5d drm/amd/display: Assign normalized_pix_clk when color depth = 14
| * 9e8637d974f7 drm/amd/display: Restore correct backlight brightness after a GPU reset
| * 70b8c6f7b061 drm/atomic: Filter out redundant DPMS calls
| * 18b5d857c649 x86/microcode/AMD: Fix out-of-bounds on systems with CPU-less NUMA nodes
| * 479258418366 USB: serial: option: match on interface class for Telit FN990B
| * 8d57aa9f5207 USB: serial: option: fix Telit Cinterion FE990A name
| * 9ce2056eaada USB: serial: option: add Telit Cinterion FE990B compositions
| * cdc013ff804b USB: serial: ftdi_sio: add support for Altera USB Blaster 3
| * a755c6d1dfe7 block: fix 'kmem_cache of name 'bio-108' already exists'
| * e51d136d3369 drm/nouveau: Do not override forced connector status
| * d42130a5a228 mptcp: safety check before fallback
| * 4d63301ae35c x86/irq: Define trace events conditionally
| * c21d1fa13902 fuse: don't truncate cached, mutated symlink
| * 0cae84544670 ASoC: tas2764: Set the SDOUT polarity correctly
| * 631bc990daea ASoC: tas2764: Fix power control mask
| * 2a0177da8a81 ASoC: tas2770: Fix volume scale
| * fb97ca69cc21 nvme: only allow entering LIVE from CONNECTING state
| * f7580f081edd sctp: Fix undefined behavior in left shift operation
| * f25a991ea177 nvmet-rdma: recheck queue state is LIVE in state lock in recv done
| * 75308c6bb93e net: wwan: mhi_wwan_mbim: Silence sequence number glitch errors
| * eed857c0d173 ASoC: SOF: Intel: hda: add softdep pre to snd-hda-codec-hdmi module
| * e1b6ee40153b ASoC: arizona/madera: use fsleep() in up/down DAPM event delays.
| * 92d029655812 ASoC: rsnd: don't indicate warning on rsnd_kctrl_accept_runtime()
| * 5664d28540ae thermal/cpufreq_cooling: Remove structure member documentation
| * 9f5921f38f46 s390/cio: Fix CHPID "configure" attribute caching
| * 64577690e49c sched: Clarify wake_up_q()'s write to task->wake_q.next
| * 007a849126ef HID: ignore non-functional sensor in HP 5MP Camera
| * 6e0397d0a4ec HID: intel-ish-hid: fix the length of MNG_SYNC_FW_CLOCK in doorbell
| * 3ad860fd4be1 vboxsf: fix building with GCC 15
| * 01f5839123d6 alpha/elf: Fix misc/setarch test of util-linux by removing 32bit support
| * e8ed82ff391b ACPI: resource: IRQ override for Eluktronics MECH-17
| * c737e2a5fb7f scsi: qla1280: Fix kernel oops when debug level > 2
| * 67aad09faab8 scsi: core: Use GFP_NOIO to avoid circular locking dependency
| * b388e185bfad iscsi_ibft: Fix UBSAN shift-out-of-bounds warning in ibft_attr_show_nic()
| * 4a2ea3dd4eb9 powercap: call put_device() on an error path in powercap_register_control_type()
| * 54595d6e8b6f hrtimers: Mark is_migration_base() with __always_inline
| * c26d65527f31 nvme-fc: go straight to connecting state when initializing
| * e4cb0dd364af net/mlx5e: Prevent bridge link show failure for non-eswitch-allowed devices
| * f90c4d657248 net/mlx5: Bridge, fix the crash caused by LAG state check
| * 057dbc5b72e9 net: openvswitch: remove misbehaving actions length check
| * 23721bbf1481 openvswitch: Use kmalloc_size_roundup() to match ksize() usage
| * b6be0f687841 slab: Introduce kmalloc_size_roundup()
| * 4207e812e49f slab: clean up function prototypes
| * cb4407c921e1 gre: Fix IPv6 link-local address generation.
| * 46ea2a7a8c27 netfilter: nft_exthdr: fix offset with ipv4_find_option()
| * 003d92c91cdb net_sched: Prevent creation of classes with TC_H_ROOT
| * 65b0a61ca237 ipvs: prevent integer overflow in do_ip_vs_get_ctl()
| * e8544a5a97be netfilter: nf_conncount: Fully initialize struct nf_conncount_tuple in insert_tree()
| * 29c419c64e9b net/mlx5: handle errors in mlx5_chains_create_table()
| * 77d9b2d60b57 Drivers: hv: vmbus: Don't release fb_mmio resource in vmbus_free_mmio()
| * b018706f5fdb netpoll: hold rcu read lock in __netpoll_send_skb()
| * 7274119e8128 net: dsa: mv88e6xxx: Verify after ATU Load ops
| * e6902101f34f ice: fix memory leak in aRFS after reset
| * 595e855a0f38 netfilter: nft_ct: Use __refcount_inc() for per-CPU nft_ct_pcpu_template.
| * 10e33014552c pinctrl: bcm281xx: Fix incorrect regmap max_registers value
| * 179cf97ee278 fbdev: hyperv_fb: iounmap() the correct memory when removing a device
| * 70549c80fe80 ipv6: Fix signed integer overflow in __ip6_append_data
| * 21c0225b66b8 sched/isolation: Prevent boot crash when the boot CPU is nohz_full
| * cfd5ee5a6684 clockevents/drivers/i8253: Fix stop sequence for timer 0
| * f5dc10b910bd vlan: fix memory leak in vlan_newlink()
* | 34dddb469b06 Merge 5.15.179 into android14-5.15-lts
|\|
| * 0c935c049b5c Linux 5.15.179
| * bf500b0d0cfe net: ipv6: fix dst refleaks in rpl, seg6 and ioam6 lwtunnels
| * 02e43735932d kbuild: userprogs: use correct lld when linking through clang
| * bb0245fa72b7 sched: sch_cake: add bounds checks to host bulk flow fairness counts
| * bab61f41c942 vsock: Orphan socket after transport release
| * e48fcb403c2d vsock: Keep the binding until socket destruction
| * 857428f4acc1 bpf, vsock: Invoke proto::close on close()
| * 117f7a2975ba media: uvcvideo: Remove dangling pointers
| * 0fdd7cc59338 media: uvcvideo: Fix crash during unbind if gpio unit is in use
| * 607dc724b162 nilfs2: handle errors that nilfs_prepare_chunk() may return
| * e5606b783307 nilfs2: eliminate staggered calls to kunmap in nilfs_rename
| * 1fa500f494f1 nilfs2: move page release outside of nilfs_delete_entry and nilfs_set_link
| * 1cd7fd082c78 spi-mxs: Fix chipselect glitch
| * cd0938805875 mtd: rawnand: cadence: fix unchecked dereference
| * 3e9899c12d5a md: select BLOCK_LEGACY_AUTOLOAD
| * 1a7c8039d2ee media: uvcvideo: Avoid returning invalid controls
| * 69b06b05ff94 media: uvcvideo: Avoid invalid memory access
| * 4e15cf870d2c drivers: virt: acrn: hsm: Use kzalloc to avoid info leak in pmcmd_ioctl
| * ade9362dec18 eeprom: digsy_mtc: Make GPIO lookup table match the device
| * 7746f3bb8917 bus: mhi: host: pci_generic: Use pci_try_reset_function() to avoid deadlock
| * 09d34c4cbc38 slimbus: messaging: Free transaction ID in delayed interrupt scenario
| * 1437d13ca83e intel_th: pci: Add Panther Lake-P/U support
| * cebbd798ff25 intel_th: pci: Add Panther Lake-H support
| * 8875af55b825 intel_th: pci: Add Arrow Lake support
| * e1651332291e mei: me: add panther lake P DID
| * cf46f88b92cf Squashfs: check the inode number is not the invalid value of zero
| * ac9a7d4c9007 usb: xhci: Enable the TRB overfetch quirk on VIA VL805
| * 41eae5d6e308 xhci: pci: Fix indentation in the PCI device ID definitions
| * c3a772540220 usb: gadget: Check bmAttributes only if configuration is valid
| * 7e6b36d92dce usb: gadget: Fix setting self-powered state on suspend
| * 2b229d7b8a59 usb: gadget: Set self-powered based on MaxPower and bmAttributes
| * a0dc4a3bdede usb: typec: tcpci_rt1711h: Unmask alert interrupts to fix functionality
| * 3d8b87be73e9 usb: typec: ucsi: increase timeout for PPM reset operations
| * 00ac1ea9c0cd usb: dwc3: gadget: Prevent irq storm when TH re-executes
| * 78669d6f45a5 usb: dwc3: Set SUSPENDENABLE soon after phy init
| * bf4409f84023 usb: atm: cxacru: fix a flaw in existing endpoint checks
| * 3248c1f833f9 usb: renesas_usbhs: Flush the notify_hotplug_work
| * a1ad97347a45 usb: quirks: Add DELAY_INIT and NO_LPM for Prolific Mass Storage Card Reader
| * 894b4c75eadf usb: hub: lack of clearing xHC resources
| * ec4b6f492ea1 usb: renesas_usbhs: Use devm_usb_get_phy()
| * 50b9010da101 usb: renesas_usbhs: Call clk_put()
| * 30e37db26120 Revert "drivers/card_reader/rtsx_usb: Restore interrupt based detection"
| * 329393a0325b gpio: rcar: Fix missing of_node_put() call
| * f185b6d0aeea net: ipv6: fix missing dst ref drop in ila lwtunnel
| * 82043c99801e net: ipv6: fix dst ref loop in ila lwtunnel
| * 5cb300dcdd27 sched/fair: Fix potential memory corruption in child_cfs_rq_on_list
| * 49bf31477184 net-timestamp: support TCP GSO case for a few missing flags
| * 413e908f13ce exfat: fix soft lockup in exfat_clear_bitmap
| * 6d099f3f7b27 x86/sgx: Fix size overflows in sgx_encl_create()
| * a2d112a3b408 x86/sgx: Support VA page allocation without reclaiming
| * 51e5bc6d39d1 x86/sgx: Export sgx_encl_{grow,shrink}()
| * 48fa260f15b6 x86/sgx: Move PTE zap code to new sgx_zap_enclave_ptes()
| * 110a40c51415 x86/sgx: Support loading enclave page without VMA permissions check
| * 0fb7aa04c19e vlan: enforce underlying device type
| * 4e2191b0fd0c ppp: Fix KMSAN uninit-value warning with bpf
| * b7d8d4529984 net: hns3: make sure ptp clock is unregister and freed if hclge_ptp_get_cycle returns an error
| * 671aaa17bd31 be2net: fix sleeping while atomic bugs in be_ndo_bridge_getlink
| * 3f9e7298053c drm/sched: Fix preprocessor guard
| * e9813e0887fe hwmon: fix a NULL vs IS_ERR_OR_NULL() check in xgene_hwmon_probe()
| * 9b6f083db141 llc: do not use skb_get() before dev_queue_xmit()
| * e2eebbb52d15 ALSA: usx2y: validate nrpacks module parameter on probe
| * afa9cd90e765 hwmon: (ad7314) Validate leading zero bits and return error
| * 996340f3db89 hwmon: (ntc_thermistor) Fix the ncpXXxh103 sensor table
| * 13de3056e38c hwmon: (pmbus) Initialise page count in pmbus_identify()
| * 8e4e08ca4cc6 caif_virtio: fix wrong pointer check in cfv_probe()
| * 455217ac9db0 net: gso: fix ownership in __udp_gso_segment
| * 17451b795002 nvmet-tcp: Fix a possible sporadic response drops in weakly ordered arch
* | 5c6a566ac577 Merge 01b18a330cda ("HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()") into android14-5.15-lts
|\|
| * 01b18a330cda HID: intel-ish-hid: Fix use-after-free issue in ishtp_hid_remove()
| * 4283afde4f8d HID: google: fix unused variable warning under !CONFIG_ACPI
| * 47616b82f2d4 wifi: iwlwifi: limit printed string from FW file
| * b4739de37538 mm: don't skip arch_sync_kernel_mappings() in error paths
| * 955c5a1ddd6e mm/page_alloc: fix uninitialized variable
| * 51e0101ab9e9 block: fix conversion of GPT partition name to 7-bit
| * 03f075d56063 s390/traps: Fix test_monitor_call() inline assembly
| * cdd9f58f7fe4 rapidio: fix an API misues when rio_add_net() fails
| * 181d4daaefb3 rapidio: add check for rio_add_net() in rio_scan_alloc_net()
| * cd1bdcb77fdc wifi: nl80211: reject cooked mode if it is set along with other flags
| * 6a5e3b23054c wifi: cfg80211: regulatory: improve invalid hints checking
| * d8786dfa9f45 x86/cpu: Properly parse CPUID leaf 0x2 TLB descriptor 0x63
| * 61104ea20840 x86/cpu: Validate CPUID leaf 0x2 EDX output
| * dafc649de271 x86/cacheinfo: Validate CPUID leaf 0x2 EDX output
| * 421c91ba9099 platform/x86: thinkpad_acpi: Add battery quirk for ThinkPad X131e
| * 63c2c523f5ca drm/radeon: Fix rs400_gpu_init for ATI mobility radeon Xpress 200M
| * ffcc3f070263 ALSA: hda/realtek: update ALC222 depop optimize
| * 6ea0f0a47640 ALSA: hda: intel: Add Dell ALC3271 to power_save denylist
| * 807789018186 gpio: aggregator: protect driver attr handlers against module unload
| * 7c1f36f9c9ac gpio: rcar: Use raw_spinlock to protect register access
| * b1d95d733cd6 HID: appleir: Fix potential NULL dereference at raw event handle
| * a3325fdbee9b Revert "of: reserved-memory: Fix using wrong number of cells to get property 'alignment'"
| * 6486abfcf891 drm/amdgpu: disable BAR resize on Dell G5 SE
| * 4be891399cdc drm/amdgpu: Check extended configuration space register when system uses large bar
| * f618aeb6cad2 smb: client: Add check for next_buffer in receive_encrypted_standard()
| * a56a6e8589a9 pfifo_tail_enqueue: Drop new packet when sch->limit == 0
| * e38f9d761b34 intel_idle: Handle older CPUs, which stop the TSC in deeper C states, correctly
| * 288fdb8dcb71 sched/core: Prevent rescheduling when interrupts are disabled
| * 3d67976d304e vmlinux.lds: Ensure that const vars with relocations are mapped R/O
| * 7cca31035c05 mptcp: always handle address removal under msk socket lock
| * b66eb3f54ac3 phy: exynos5-usbdrd: fix MPLL_MULTIPLIER and SSC_REFCLKSEL masks in refclk
| * f07c325f54c4 phy: tegra: xusb: reset VBUS & ID OVERRIDE
| * d20b23a5412c net: enetc: correct the xdp_tx statistics
| * ccce797d9052 net: enetc: update UDP checksum when updating originTimestamp field
| * b68d88b79975 net: enetc: fix the off-by-one issue in enetc_map_tx_buffs()
| * 9bcb8cbc3e5d usbnet: gl620a: fix endpoint checking in genelink_bind()
| * e3aea1dba97d i2c: npcm: disable interrupt enable bit before devm_request_irq
| * c327a355a4ff drm/amd/display: Fix HPD after gpu reset
| * 922e18d67bc0 perf/core: Fix low freq setting via IOC_PERIOD
| * fca3b89abc92 ALSA: usb-audio: Re-add sample rate quirk for Pioneer DJM-900NXS2
| * 3d738b53ed6c ftrace: Avoid potential division by zero in function_stat_show()
| * 7163da88c07b x86/CPU: Fix warm boot hang regression on AMD SC1100 SoC systems
| * 2daabaa55c7c net: ipv6: fix dst ref loop on input in rpl lwt
| * c0b11dc50590 net: ipv6: rpl_iptunnel: mitigate 2-realloc issue
| * dbd4f89a4a58 net: ipv6: fix dst ref loop on input in seg6 lwt
* | c29cf44a0aa0 ANDROID: GKI: fix build in scsi_lib.c
* | def997cf2675 Merge 634710a372ba ("net: ipv6: seg6_iptunnel: mitigate 2-realloc issue") into android14-5.15-lts
|\|
| * 634710a372ba net: ipv6: seg6_iptunnel: mitigate 2-realloc issue
| * 8513e56e31fc include: net: add static inline dst_dev_overhead() to dst.h
| * 3e97606c954f seg6: add support for SRv6 H.L2Encaps.Red behavior
| * 86df97f030be seg6: add support for SRv6 H.Encaps.Red behavior
| * bf5801cc24cc net/mlx5: IRQ, Fix null string in debug print
| * b8e0dd7ff319 net: mvpp2: cls: Fixed Non IP flow, with vlan tag flow defination.
| * 0e70cec1839f tcp: Defer ts_recent changes until req is owned
| * a3c25f8374c2 ipvs: Always clear ipvs_property flag in skb_scrub_packet()
| * eba344580acb ASoC: es8328: fix route from DAC to output
| * 39a26120ad99 net: cadence: macb: Synchronize stats calculations
| * 718725496191 net: loopback: Avoid sending IP packets without an Ethernet header
| * 806fcc99e4c0 afs: Fix the server_list to unuse a displaced server rather than putting it
| * 9055fb0bb4f4 afs: Make it possible to find the volumes that are using a server
| * ba335b157a6a afs: remove variable nr_servers
| * 1154e50e53e4 Bluetooth: L2CAP: Fix L2CAP_ECRED_CONN_RSP response
| * a340768d7311 ALSA: usb-audio: Avoid dropping MIDI events at closing multiple ports
| * a8f4ceb21f65 sunrpc: suppress warnings for unused procfs functions
| * f36cf97e4978 RDMA/mlx5: Fix bind QP error cleanup flow
| * 66fee638e4dd scsi: core: Clear driver private data when retrying request
| * 668ef6c54ca7 scsi: core: Don't memset() the entire scsi_cmnd in scsi_init_command()
| * 4b49d939b5a7 ovl: fix UAF in ovl_dentry_update_reval by moving dput() in ovl_link_up
| * 802d342bf8bc ovl: pass ofs to creation operations
| * be2343e08165 ovl: use wrappers to all vfs_*xattr() calls
| * 1cd7f84c88ae IB/mlx5: Set and get correct qp_num for a DCT QP
| * 9a7fc5641c6f x86/cpu/kvm: SRSO: Fix possible missing IBPB on VM-Exit
| * b0c7cda8d636 mtd: rawnand: cadence: fix incorrect device in dma_unmap_single
| * 099a31651850 mtd: rawnand: cadence: use dma_map_resource for sdma address
| * 0301f9b44877 mtd: rawnand: cadence: fix error code in cadence_nand_init()
| * 29853440da38 acct: block access to kernel internal filesystems
| * 5d5b936cfa4b acct: perform last write from workqueue
| * d97d560f7d36 ALSA: hda/conexant: Add quirk for HP ProBook 450 G4 mute LED
| * 924b239f9704 nfp: bpf: Add check for nfp_app_ctrl_msg_alloc()
| * 872c7c7e57a7 drop_monitor: fix incorrect initialization order
| * c0a9a9481591 tee: optee: Fix supplicant wait loop
| * a3feeb1b4cb2 bpf: skip non exist keys in generic_map_lookup_batch
| * 3bb2204ec30f nvme/ioctl: add missing space in err message
| * 9f3891867e8e power: supply: da9150-fg: fix potential overflow
| * ef305447885e arp: switch to dev_getbyhwaddr() in arp_req_set_public()
| * e860d5103591 net: Add non-RCU dev_getbyhwaddr() helper
| * 2af45b1f2962 flow_dissector: Fix port range key handling in BPF conversion
| * fbb727e4934a flow_dissector: Fix handling of mixed port and port-range keys
| * 65196ee66ec2 net: extract port range fields from fl_flow_key
| * a94e59db1d89 geneve: Suppress list corruption splat in geneve_destroy_tunnels().
| * cb15bb1bde0b gtp: Suppress list corruption splat in gtp_net_exit_batch_rtnl().
| * f74f65601467 geneve: Fix use-after-free in geneve_find_dev().
* | defdae7722cc Revert "pps: Fix a use-after-free"
* | 89ebfe271bf6 Merge 6847b3e40bb9 ("powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC") into android14-5.15-lts
|\|
| * 6847b3e40bb9 powerpc/code-patching: Fix KASAN hit by not flagging text patching area as VM_ALLOC
| * 718d0480ca3a ALSA: hda/realtek: Fixup ALC225 depop procedure
| * 71f427413d2d powerpc/64s: Rewrite __real_pte() and __rpte_to_hidx() as static inline
| * 61a45806db46 powerpc/64s/mm: Move __real_pte stubs into hash-4k.h
| * b09957657d77 USB: gadget: f_midi: f_midi_complete to call queue_work
| * 006a4e9069a1 usb: dwc3: Fix timeout issue during controller enter/exit from halt state
| * 47cc53c3ebe3 usb: dwc3: Increase DWC3 controller halt timeout
| * 3c0e0aecb78c batman-adv: Drop unmanaged ELP metric worker
| * 6ad063461332 batman-adv: Drop initialization of flexible ethtool_link_ksettings
| * d775f9e9e663 media: uvcvideo: Only save async fh if success
| * e0360e009904 media: uvcvideo: Refactor iterators
| * 972f412da53b media: uvcvideo: Set error_idx during ctrl_commit errors
| * c113bccf1f87 soc: mediatek: mtk-devapc: Fix leaking IO map on driver remove
| * c3fa28e6cac8 soc/mediatek: mtk-devapc: Convert to platform remove callback returning void
| * 4dd78251db13 soc: mediatek: mtk-devapc: Fix leaking IO map on error paths
| * 10185d020c8f soc: mediatek: mtk-devapc: Switch to devm_clk_get_enabled()
| * f03ad378249f kfence: skip __GFP_THISNODE allocations on NUMA systems
| * 8e19db074ab3 kfence: enable check kfence canary on panic via boot param
| * b7792fe79fbe kfence: allow use of a deferrable timer
| * 0621d2599d6e tpm: Change to kvalloc() in eventlog/acpi.c
| * 906ac470b16c tpm: Use managed allocation for bios event log
| * 5e8bee0e4914 arm64: dts: mediatek: mt8183: Disable DSI display output by default
| * 4a06ed6b962b ASoC: renesas: rz-ssi: Add a check for negative sample_space
| * 8c4b9b0c3950 drm/rockchip: cdn-dp: Use drm_connector_helper_hpd_irq_event()
| * 5211d75e2cb7 drm/probe-helper: Create a HPD IRQ event helper for a single connector
| * f3b9fb276459 ksmbd: fix integer overflows on 32 bit systems
| * a9042dbc1ed4 memcg: fix soft lockup in the OOM process
| * 4edae3ff6d4e mm: update mark_victim tracepoints fields
| * a32ba399a030 media: imx-jpeg: Fix potential error pointer dereference in detach_pm()
| * e290d1fe37f7 crypto: testmgr - some more fixes to RSA test vectors
| * add54f963938 crypto: testmgr - populate RSA CRT parameters in RSA test vectors
| * 40689219a28b crypto: testmgr - fix version number of RSA tests
| * bd258be9a8be crypto: testmgr - Fix wrong test case of RSA
| * 8fbf27a746c3 crypto: testmgr - fix wrong key length for pkcs1pad
| * 4969dcc05bc3 arm64: mte: Do not allow PROT_MTE on MAP_HUGETLB user mappings
| * c4041b6b0a7a pps: Fix a use-after-free
| * 26f2fdc47fea btrfs: avoid monopolizing a core when activating a swap file
| * dc550af962b7 Revert "btrfs: avoid monopolizing a core when activating a swap file"
| * caae54426402 x86/i8253: Disable PIT timer 0 when not in use
| * 3aa5254d8096 f2fs: fix to wait dio completion
| * 234549fb3db3 ARM: dts: dra7: Add bus_dma_limit for l4 cfg bus
| * c97306464928 selftests: rtnetlink: update netdevsim ipsec output format
| * 28435f5d9d08 netdevsim: print human readable IP address
| * 810109436b28 parport_pc: add support for ASIX AX99100
| * 79cf08014ef3 serial: 8250_pci: add support for ASIX AX99100
* | 703fbc6d3080 Revert "cgroup: fix race between fork and cgroup.kill"
* | 92c01285ddc5 Revert "Namespaceify min_pmtu sysctl"
* | d444bbf290bf Revert "Namespaceify mtu_expires sysctl"
* | 694b49de0c39 Revert "selftest: net: Test IPv4 PMTU exceptions with DSCP and ECN"
* | b58c38c1cb6c Revert "net: ipv4: Cache pmtu for all packet paths if multipath enabled"
* | e011cc010345 Revert "ipv4: use RCU protection in __ip_rt_update_pmtu()"
* | f75cc9b727d1 Merge 1840fb92baf4 ("can: ems_pci: move ASIX AX99100 ids to pci_ids.h") into android14-5.15-lts
|\|
| * 1840fb92baf4 can: ems_pci: move ASIX AX99100 ids to pci_ids.h
| * d8ff250e085a nilfs2: protect access to buffers with no active references
| * f51ff43c4c5a nilfs2: do not force clear folio if buffer is referenced
| * 1bf43414ccff nilfs2: do not output warnings when clearing dirty buffers
| * c6ddb3848599 alpha: replace hardcoded stack offsets with autogenerated ones
| * 5fb8cda2fcea x86/static-call: Remove early_boot_irqs_disabled check to fix Xen PVH dom0
| * 9c0a3aab4b8d kdb: Do not assume write() callback available
| * 22e19c8c5f6b drm/v3d: Stop active perfmon if it is being destroyed
| * 37054243cf5d drm/tidss: Clear the interrupt status for interrupts being disabled
| * 2b7db8abf84f drm/tidss: Fix issue in irq handling causing irq-flood issue
| * 29fa42197f26 ipv6: mcast: add RCU protection to mld_newpack()
| * e24d225e4cb8 ndisc: extend RCU protection in ndisc_send_skb()
| * a884f57600e4 openvswitch: use RCU protection in ovs_vport_cmd_fill_info()
| * d9366ac2f956 arp: use RCU protection in arp_xmit()
| * 40d8f2f2a373 neighbour: use RCU protection in __neigh_notify()
| * 44e359552378 neighbour: delete redundant judgment statements
| * b870256dd2a5 ndisc: use RCU protection in ndisc_alloc_skb()
| * 28de355b63ad ipv6: use RCU protection in ip6_default_advmss()
| * ce3c6165fce0 ipv4: use RCU protection in __ip_rt_update_pmtu()
| * fc07a232326a net: ipv4: Cache pmtu for all packet paths if multipath enabled
| * a7246d3949c2 selftest: net: Test IPv4 PMTU exceptions with DSCP and ECN
| * 7385291def47 Namespaceify mtu_expires sysctl
| * 686792179f20 Namespaceify min_pmtu sysctl
| * 4561343d2b6c ipv4: use RCU protection in inet_select_addr()
| * 50d356db0542 ipv4: use RCU protection in rt_is_expired()
| * 6e0d21491686 net: add dev_net_rcu() helper
| * c22b8d77816e net: treat possible_net_t net pointer as an RCU one and add read_pnet_rcu()
| * 0e5ea98edc3b ipv4: add RCU protection to ip4_dst_hoplimit()
| * 60f54f0d4ea5 clocksource: Use migrate_disable() to avoid calling get_random_u32() in atomic context
| * a02540d4401f clocksource: Use pr_info() for "Checking clocksource synchronization" message
| * 4ae5e361537d clocksource: Replace cpumask_weight() with cpumask_empty()
| * acfebfb2abf3 btrfs: fix hole expansion when writing at an offset beyond EOF
| * e4291f26c501 mlxsw: Add return value check for mlxsw_sp_port_get_stats_raw()
| * 9abfb2c8693d arm64: Handle .ARM.attributes section in linker scripts
| * 78be8f779b20 regmap-irq: Add missing kfree()
| * 40a35d14f3c0 partitions: mac: fix handling of bogus partition table
| * 4647cb4e0013 gpio: stmpe: Check return value of stmpe_reg_read in stmpe_gpio_irq_sync_unlock
| * ede3fa7b0cb6 alpha: align stack for page fault and user unaligned trap handlers
| * bf3f395b9c37 serial: 8250: Fix fifo underflow on flush
| * 19f3e16bc9f7 cgroup: fix race between fork and cgroup.kill
| * 4d832459170d efi: Avoid cold plugged memory for placing the kernel
| * b737d6439113 alpha: make stack 16-byte aligned (most cases)
| * f1767d255807 can: j1939: j1939_sk_send_loop(): fix unable to send messages with data length zero
| * f7a43d1563ac can: c_can: fix unbalanced runtime PM disable in error path
| * 9fccb6b65510 USB: serial: option: drop MeiG Smart defines
* | 382f86c1aec2 Revert "usb: roles: set switch registered flag early on"
* | ab556cfd243f Merge 412458d7e92b ("USB: serial: option: fix Telit Cinterion FN990A name") into android14-5.15-lts
|\|
| * 412458d7e92b USB: serial: option: fix Telit Cinterion FN990A name
| * 60f0765d673b USB: serial: option: add Telit Cinterion FN990B compositions
| * 95fcacb5b9a9 USB: serial: option: add MeiG Smart SLM828
| * 6878c61a3880 usb: cdc-acm: Fix handling of oversized fragments
| * 871619c2b78f usb: cdc-acm: Check control transfer buffer size before access
| * 9ee5bb1938f3 USB: cdc-acm: Fill in Renesas R-Car D3 USB Download mode quirk
| * d3a67adb365c USB: hub: Ignore non-compliant devices with too many configs or interfaces
| * d8e86700c8a8 usb: gadget: f_midi: fix MIDI Streaming descriptor lengths
| * aeda961736f3 USB: Add USB_QUIRK_NO_LPM quirk for sony xperia xz1 smartphone
| * 6afdad04f6c1 USB: quirks: add USB_QUIRK_NO_LPM quirk for Teclast dist
| * b605fd13b832 usb: core: fix pipe creation for get_bMaxPacketSize0
| * 1af4043ec5bc USB: pci-quirks: Fix HCCPARAMS register error for LS7A EHCI
| * ef5e915db375 usb: dwc2: gadget: remove of_node reference upon udc_stop
| * 626ab15ddc4b usb: gadget: udc: renesas_usb3: Fix compiler warning
| * 6a902573f2ca usb: roles: set switch registered flag early on
* | 223b84ceae5a Revert "NFSD: fix hang in nfsd4_shutdown_callback"
* | 1bd94dcfe373 Merge f4ca0cf536b1 ("perf/x86/intel: Ensure LBRs are disabled when a CPU is starting") into android14-5.15-lts
|\|
| * f4ca0cf536b1 perf/x86/intel: Ensure LBRs are disabled when a CPU is starting
| * 45fa526b0f5a KVM: x86: Reject Hyper-V's SEND_IPI hypercalls if local APIC isn't in-kernel
| * 2e8f0f0e0097 batman-adv: Ignore neighbor throughput metrics in error case
| * f0a16c6c7976 batman-adv: fix panic during interface removal
| * 6b7d69806c42 ASoC: Intel: bytcr_rt5640: Add DMI quirk for Vexia Edu Atla 10 tablet 5V
| * 8725882b0f69 orangefs: fix a oob in orangefs_debug_write
| * 848b58151775 x86/mm/tlb: Only trim the mm_cpumask once a second
| * cd8de1f521d5 Grab mm lock before grabbing pt lock
| * 69b812149b8b vfio/pci: Enable iowrite64 and ioread64 for vfio pci
| * 20b7d9675437 PCI/DPC: Quirk PIO log size for Intel Raptor Lake-P
| * 59a707ad952e media: vidtv: Fix a null-ptr-deref in vidtv_mux_stop_thread
| * d485a8b22794 media: cxd2841er: fix 64-bit division on gcc-9
| * ba842a609ff8 x86/xen: allow larger contiguous memory regions in PV guests
| * 5b750e76dfd5 xen: remove a confusing comment on auto-translated guest I/O
| * d340047cf29b gpio: bcm-kona: Add missing newline to dev_err format string
| * f66a5da15f14 gpio: bcm-kona: Make sure GPIO bits are unlocked when requesting IRQ
| * 54b0de7b6abe gpio: bcm-kona: Fix GPIO lock/unlock for banks above bank 0
| * 092dc83b9a3c drm/i915/selftests: avoid using uninitialized context
| * 88a3e6afaf00 arm64: cacheinfo: Avoid out-of-bounds write to cacheinfo array
| * f443687ad20c team: better TEAM_OPTION_TYPE_STRING validation
| * 5bb4228c3226 vrf: use RCU protection in l3mdev_l3_out()
| * 80f70686857e ndisc: ndisc_send_redirect() must use dev_get_by_index_rcu()
| * 2052b44cd0a6 HID: multitouch: Add NULL check in mt_input_configured
| * efa8a261c575 NFSD: fix hang in nfsd4_shutdown_callback
| * 6f7cfee1a316 nfsd: clear acl_access/acl_default after releasing them
| * e22a97700901 tty: xilinx_uartps: split sysrq handling
| * 59cf03ddf127 mptcp: prevent excessive coalescing on receive
| * 03b605ac1e5b ocfs2: check dir i_size in ocfs2_find_entry
| * ad73b43e6908 memory: tegra20-emc: Correct memory device mask
| * 12a1cf9db178 gpio: xilinx: remove excess kernel doc
* | e2004dd1a721 Merge 9772e2e15482 ("net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling") into android14-5.15-lts
|\|
| * 9772e2e15482 net/ncsi: use dev_set_mac_address() for Get MC MAC Address handling
| * 3fec5d194fc9 MIPS: ftrace: Declare ftrace_get_parent_ra_addr() as static
| * 1334c64a5d1d ptp: Ensure info->enable callback is always set
| * 0eda6b12a108 net: phy: c45-tjaxx: add delay between MDIO write and read in soft_reset
| * 83db3d545d39 net/ncsi: wait for the last response to Deselect Package before configuring channel
| * 2ed6d46f8037 misc: fastrpc: Fix registered buffer page address
| * 820603335006 mtd: onenand: Fix uninitialized retlen in do_otp_read()
| * 10b3f947b609 NFC: nci: Add bounds checking in nci_hci_create_pipe()
| * 8f41df5fd4c1 nilfs2: fix possible int overflows in nilfs_fiemap()
| * 8aee4184c5b7 ocfs2: handle a symlink read error correctly
| * 5a1c86066f1b ocfs2: fix incorrect CPU endianness conversion causing mount failure
| * c00e53672d7d pnfs/flexfiles: retry getting layout segment for reads
| * f65ce06387f8 vfio/platform: check the bounds of read/write syscalls
| * 66325de71801 nvmem: core: improve range check for nvmem_cell_write()
| * c897de3d1f4d nvmem: qcom-spmi-sdam: Set size in struct nvmem_config
| * f52f00efd8c0 crypto: qce - unregister previously registered algos in error path
| * efae52c61150 crypto: qce - fix goto jump in error path
| * 14810fb99091 media: uvcvideo: Remove redundant NULL assignment
| * 74512c021525 media: uvcvideo: Fix event flags in uvc_ctrl_send_events
| * 1662c5812b84 media: ccs: Fix cleanup order in ccs_probe()
| * 66a2c461703e media: ccs: Fix CCS static data parsing for large block sizes
| * d6fae50f5eb7 media: ov5640: fix get_light_freq on auto
| * 9a6c627f3fe4 media: mc: fix endpoint iteration
| * 9e6cd5f99496 soc: qcom: smem_state: fix missing of_node_put in error path
| * 1880c45ebe14 iio: light: as73211: fix channel handling in only-color triggered buffer
| * 22d1dcd0b053 media: ccs: Clean up parsed CCS static data on parse failure
| * 6bdbb75ffc6c xfs: Add error handling for xfs_reflink_cancel_cow_range
| * 4e9af1ddbc98 crypto: qce - fix priority to be less than ARMv8 CE
| * 231dfd6bb61e arm64: dts: qcom: sm8350: Fix MPSS memory length
| * e7e06872144e x86/boot: Use '-std=gnu11' to fix build with GCC 15
| * 81a3a0c1a68f kbuild: Move -Wenum-enum-conversion to W=2
| * 2bce0a6a4433 scsi: storvsc: Set correct data length for sending SCSI command without payload
| * 73d3d3c66f10 scsi: qla2xxx: Move FCE Trace buffer allocation to user control
| * ad88fd9ee93a nvme-pci: Add TUXEDO IBP Gen9 to Samsung sleep quirk
| * 662964484f8a nvme-pci: Add TUXEDO InfinityFlex to Samsung sleep quirk
| * d88422ccb97f PCI: endpoint: Finish virtual EP removal in pci_epf_remove_vepf()
| * abe03cd5d5b7 ALSA: hda/realtek: Enable headset mic on Positivo C6400
| * 94e418935e1d Revert "media: uvcvideo: Require entities to have a non-zero unique ID"
| * d24476777e8b mips/math-emu: fix emulation of the prefx instruction
| * 63b759c9680e dm-crypt: track tag_offset in convert_context
| * 84d6db1a7327 dm-crypt: don't update io->sector after kcryptd_crypt_write_io_submit()
| * 453a0a22ceb8 powerpc/pseries/eeh: Fix get PE state translation
| * a3d92e7af72a MIPS: Loongson64: remove ROM Size unit in boardinfo
| * 48a6a4dfa5c8 serial: sh-sci: Do not probe the serial port if its slot in sci_ports[] is in use
| * 6b7947990681 serial: sh-sci: Drop __initdata macro for port_cfg
* | 6d39fe38156c Merge 2d09d3c9afa2 ("soc: qcom: socinfo: Avoid out of bounds read of serial number") into android14-5.15-lts
|\|
| * 2d09d3c9afa2 soc: qcom: socinfo: Avoid out of bounds read of serial number
| * 5fa25ae6484b usb: gadget: f_tcm: Don't prepare BOT write request twice
| * d5e48551866e usb: gadget: f_tcm: ep_autoconfig with fullspeed endpoint
| * 45956a34f9a8 usb: gadget: f_tcm: Decrement command ref count on cleanup
| * 93facdc47dc6 usb: gadget: f_tcm: Translate error to sense
| * 61541d9b5a23 wifi: brcmfmac: fix NULL pointer dereference in brcmf_txfinalize()
| * 7f44aa9d3960 wifi: rtlwifi: rtl8821ae: Fix media status report
| * e27d77db198a HID: hid-sensor-hub: don't use stale platform-data on remove
| * c0a158e7634a of: reserved-memory: Fix using wrong number of cells to get property 'alignment'
| * 4f7c0deea1b3 of: Fix of_find_node_opts_by_path() handling of alias+path+options
| * 87141db6d148 of: Correct child specifier used as input of the 2nd nexus node
| * a0d751d2d8ec perf bench: Fix undefined behavior in cmpworker()
| * be042a185cc5 efi: libstub: Use '-std=gnu11' to fix build with GCC 15
| * 38287f779b34 blk-cgroup: Fix class @block_class's subsystem refcount leakage
| * 44bd016cbaa3 clk: qcom: clk-rpmh: prevent integer overflow in recalc_rate
| * 4e2996526679 clk: qcom: gcc-mdm9607: Fix cmd_rcgr offset for blsp1_uart6 rcg
| * 175af15551ed clk: qcom: gcc-sm6350: Add missing parent_map for two clocks
| * 4d8d1f443a6c clk: qcom: clk-alpha-pll: fix alpha mode configuration
| * 45d563356db6 clk: sunxi-ng: a100: enable MMC clock reparenting
| * f26831839566 Bluetooth: L2CAP: accept zero as a special value for MTU auto-selection
| * cf601a24120c Bluetooth: L2CAP: handle NULL sock pointer in l2cap_sock_alloc
| * 250164081da0 drm/i915: Drop 64bpp YUV formats from ICL+ SDR planes
| * 5098970ecc1d drm/komeda: Add check for komeda_get_layer_fourcc_list()
| * e89f74ef6bee drm/amd/pm: Mark MM activity as unsupported
| * 224fa21f00fc KVM: s390: vsie: fix some corner-cases when grabbing vsie pages
| * 7c4899239d0f KVM: Explicitly verify target vCPU is online in kvm_get_vcpu()
| * b0e8b635a331 arm64: dts: rockchip: increase gmac rx_delay on rk3399-puma
| * bc8ca18b8ef4 binfmt_flat: Fix integer overflow bug on 32 bit systems
| * 20ecbadad51a m68k: vga: Fix I/O defines
| * 592ffb238132 s390/futex: Fix FUTEX_OP_ANDN implementation
| * 61b4e072b7e8 drm/modeset: Handle tiled displays in pan_display_atomic.
| * 4e2de62318b9 leds: lp8860: Write full EEPROM, not only half of it
| * fc7da1095247 cpufreq: s3c64xx: Fix compilation warning
| * 4defa9ebef14 tun: revert fix group permission check
| * 98a2c685293a netem: Update sch->q.qlen before qdisc_tree_reduce_backlog()
| * d85d721f3225 x86/xen: add FRAME_END to xen_hypercall_hvm()
| * aaa15fc4291b x86/xen: fix xen_hypercall_hvm() to not clobber %rbx
| * d308661a0f4e net: rose: lock the socket in rose_bind()
| * 5bb48702e946 net: atlantic: fix warning during hot unplug
| * a6f3981d04d1 gpio: pca953x: Improve interrupt support
| * 61e7e18fa64c udp: gso: do not drop small packets when PMTU reduces
| * 540ffff7925b tg3: Disable tg3 PCIe AER on system reboot
| * 712e6ed39e5c gpu: drm_dp_cec: fix broken CEC adapter properties check
| * 256768b17e62 firmware: iscsi_ibft: fix ISCSI_IBFT Kconfig entry
| * 51df156e04e5 nvme: handle connectivity loss in nvme_set_queue_count
* | e86162fd0d12 Merge cf30300a216a ("usb: xhci: Fix NULL pointer dereference on certain command aborts") into android14-5.15-lts
|\|
| * cf30300a216a usb: xhci: Fix NULL pointer dereference on certain command aborts
* | 9a52b107004a Revert "usb: xhci: Add timeout argument in address_device USB HCD callback"
* | 74fcc27b2f09 Merge b27f10764d80 ("usb: xhci: Add timeout argument in address_device USB HCD callback") into android14-5.15
|\|
| * b27f10764d80 usb: xhci: Add timeout argument in address_device USB HCD callback
* | f423b207ebb9 Revert "sched/psi: Use task->psi_flags to clear in CPU migration"
* | 8d695ff82c3b Revert "sched/fair: Fix value reported by hot tasks pulled in /proc/schedstat"
* | 8c4d09d1cbcf Revert "usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS"
* | 009eb89df4af Merge d31d3dc92775 ("xfs: don't over-report free space or inodes in statvfs") into android14-5.15-lts
|\|
| * d31d3dc92775 xfs: don't over-report free space or inodes in statvfs
| * bd015e2e7f26 xfs: report realtime block quota limits on realtime directories
| * d25041d4a3b2 gpio: xilinx: Convert gpio_lock to raw spinlock
| * 4489cce8e4e7 net/ncsi: fix locking in Get MAC Address handling
| * 8930834d1525 net/ncsi: Add NC-SI 1.2 Get MC MAC Address command
| * 3f46fefab962 usb: chipidea: ci_hdrc_imx: decrement device's refcount in .remove() and in the error path of .probe()
| * 998b1fa6c218 usb: chipidea/ci_hdrc_imx: Convert to platform remove callback returning void
| * 9794ea40979b usb: chipidea: ci_hdrc_imx: use dev_err_probe()
| * af431197516a x86/mm: Don't disable PCID when INVLPG has been fixed by microcode
| * c56ea30db33d platform/x86: acer-wmi: Ignore AC events
| * 78a88a1690bc Input: allocate keycode for phone linking
| * b191b2b3b5ad selftests/net/ipsec: Fix Null pointer dereference in rtattr_pack()
| * f213bb330fc6 tipc: re-order conditions in tipc_crypto_key_rcv()
| * c9b80829b001 mmc: sdhci-msm: Correctly set the load for the regulator
| * 4dddb00d0397 net: wwan: iosm: Fix hibernation by re-binding the driver around it
| * 5c60cdcff102 APEI: GHES: Have GHES honor the panic= setting
| * 3fa04850ddac i2c: Force ELAN06FA touchpad I2C bus freq to 100KHz
| * 0bae6625cabc wifi: iwlwifi: avoid memory leak
| * 578845229c4e net/mlx5: use do_aux_work for PHC overflow checks
| * 463f5f6402b9 HID: Wacom: Add PCI Wacom device support
| * c16b96035c48 mfd: lpc_ich: Add another Gemini Lake ISA bridge PCI device-id
| * b2bd5857a0d6 tomoyo: don't emit warning in tomoyo_write_control()
| * d280a12e9b87 wifi: brcmsmac: add gain range check to wlc_phy_iqcal_gainparams_nphy()
| * bafaee99fc23 mmc: core: Respect quirk_max_rate for non-UHS SDIO card
| * 9b560350aa7b tun: fix group permission check
| * ecf6a4a55809 safesetid: check size of policy writes
| * bb8ff054e19f printk: Fix signed integer overflow when defining LOG_BUF_LEN_MAX
| * 99795e62e7a5 x86/amd_nb: Restrict init function to AMD-based systems
| * 23434fcf90b9 lockdep: Fix upper limit for LOCKDEP_*_BITS configs
| * 56135262c1f9 sched: Don't try to catch up excess steal time.
| * 13dae4fa17be btrfs: convert BUG_ON in btrfs_reloc_cow_block() to proper error handling
| * 367b72fa18b0 btrfs: fix data race when accessing the inode's disk_i_size at btrfs_drop_extents()
| * 7e954b6bb95d btrfs: fix use-after-free when attempting to join an aborted transaction
| * 51bcf530c6dc btrfs: output the reason for open_ctree() failure
| * bbb7f49839b5 usb: gadget: f_tcm: Don't free command immediately
| * 3ba8884a56a3 media: uvcvideo: Fix double free in error path
| * 3a7fda57b0f9 mptcp: consolidate suboption status
| * 83a3a5aeb1b1 usb: typec: tcpci: Prevent Sink disconnection before vPpsShutdown in SPR PPS
| * bb52bce4c91c usb: typec: tcpm: set SRC_SEND_CAPABILITIES timeout to PD_T_SENDER_RESPONSE
| * 16d5669ff07f usb: dwc3: core: Defer the probe until USB power supply ready
| * 2cfbf53baeaf usb: gadget: f_tcm: Fix Get/SetInterface return value
| * 3c1f8dfa01b3 drivers/card_reader/rtsx_usb: Restore interrupt based detection
| * d42168f109f9 net: usb: rtl8150: enable basic endpoint checking
| * 10eff770fd16 ALSA: usb-audio: Add delay quirk for iBasso DC07 Pro
| * deec230cb835 ktest.pl: Check kernelrelease return in get_version
| * 5083a7ae4500 netfilter: nf_tables: reject mismatching sum of field_len with set key length
| * d712ca4807ce NFSD: Reset cb_seq_status after NFS4ERR_DELAY
| * b0938ffd39ae f2fs: Introduce linear search for dentries
| * 679bb865c881 hexagon: Fix unbalanced spinlock in die()
| * 8e83dbe9ff32 hexagon: fix using plain integer as NULL pointer warning in cmpxchg
| * 4bd72d9fe11d kconfig: fix memory leak in sym_warn_unmet_dep()
| * 5f45a419bdd1 kconfig: WERROR unmet symbol dependency
| * ccc1287a02ea kconfig: deduplicate code in conf_read_simple()
| * 3e31777acf2d kconfig: remove unused code for S_DEF_AUTO in conf_read_simple()
| * 131f1604fa6b kconfig: require a space after '#' for valid input
| * 6bdf078908c3 kconfig: add warn-unknown-symbols sanity check
| * 4780a614f013 kconfig: fix file name in warnings when loading KCONFIG_DEFCONFIG_LIST
| * c48b8fc7f0a8 genksyms: fix memory leak when the same symbol is read from *.symref file
| * bb28d02726ab genksyms: fix memory leak when the same symbol is added from source
| * 13310513f549 net: hsr: fix fill_frame_info() regression vs VLAN packets
| * df3398504b97 net: sh_eth: Fix missing rtnl lock in suspend/resume path
| * 3ce32a9fb1d2 bgmac: reduce max frame size to support just MTU 1500
| * ab2df791b1d4 vsock: Allow retrying on connect() failure
| * a48ebcd853a4 perf trace: Fix runtime error of index out of bounds
| * 0dd6c67f6cfe ptp: Properly handle compat ioctls
| * 7d7d201eb3b7 net: davicom: fix UAF in dm9000_drv_remove
| * cfb17f637562 net: netdevsim: try to close UDP port harness races
| * 1409b45d4690 net: rose: fix timer races against user threads
| * c499bd77ca2a PM: hibernate: Add error handling for syscore_suspend()
| * 547ef7e8cbb9 ipmr: do not call mr_mfc_uses_dev() for unres entries
| * 6468f3a9842f net: fec: implement TSO descriptor cleanup
| * 5934bfaeaffe gpio: mxc: remove dead code after switch to DT-only
| * 8c640dd3d900 net: hns3: fix oops when unload drivers paralleling
| * 1787cd67bb94 ubifs: skip dumping tnc tree when zroot is null
| * e5536677da80 rtc: pcf85063: fix potential OOB write in PCF85063 NVMEM read
| * 2943af7d72d7 dmaengine: ti: edma: fix OF node reference leaks in edma_driver
| * c9cc70bca158 xfrm: replay: Fix the update of replay_esn->oseq_hi for GSO
| * 6be3ea508111 tools/bootconfig: Fix the wrong format specifier
| * 26e5c3c8d780 NFSv4.2: mark OFFLOAD_CANCEL MOVEABLE
| * edcaf4156ced NFSv4.2: fix COPY_NOTIFY xdr buf size calculation
| * f6bae8cc42ab module: Extend the preempt disabled section in dereference_symbol_descriptor().
| * 2e2bb52b8e58 ocfs2: mark dquot as inactive if failed to start trans while releasing dquot
| * fe761befd845 scsi: ufs: bsg: Delete bsg_dev when setting up bsg fails
| * 13186db840b9 scsi: mpt3sas: Set ioc->manu_pg11.EEDPTagMode directly to 1
| * 6987e021b64c PCI: rcar-ep: Fix incorrect variable used when calling devm_request_mem_region()
| * 68ee578e6e31 staging: media: imx: fix OF node leak in imx_media_add_of_subdevs()
| * 6f3c167de057 mtd: hyperbus: hbmc-am654: fix an OF node reference leak
| * 784a7f4a9efb mtd: hyperbus: hbmc-am654: Convert to platform remove callback returning void
| * c1aea4faa984 mtd: hyperbus: Make hyperbus_unregister_device() return void
| * 3b86841430a6 media: uvcvideo: Propagate buf->error to userspace
| * 235ab2be3572 media: camif-core: Add check for clk_enable()
| * cc0d04ae127d media: mipi-csis: Add check for clk_enable()
| * 5bdd8b64153d media: i2c: ov9282: Correct the exposure offset
| * 8ab5c3af1406 media: i2c: imx412: Add missing newline to prints
| * 333f8f9b6667 media: marvell: Add check for clk_enable()
| * a61cd3df84b3 PCI: endpoint: Destroy the EPC device in devm_pci_epc_destroy()
| * 55c326068f6b media: lmedm04: Handle errors for lme2510_int_read
| * 8bea20f4d630 media: rc: iguanair: handle timeouts
| * 0486d65804cc efi: sysfb_efi: fix W=1 warnings when EFI is not set
| * 8049a0845bfc of: reserved-memory: Do not make kmemleak ignore freed address
| * ca36f0848eb8 memblock: drop memblock_free_early_nid() and memblock_free_early()
| * d26e179d2cac xen/x86: free_p2m_page: use memblock_free_ptr() to free a virtual pointer
| * 708ce479ff3c RDMA/mlx5: Fix indirect mkey ODP page count
| * 95b4474c93a0 RDMA/mlx5: Enforce umem boundaries for explicit ODP page faults
| * fe090e183d26 RDMA/mlx5: Remove iova from struct mlx5_core_mkey
| * b9c5f50926e3 fbdev: omapfb: Fix an OF node leak in dss_of_port_get_parent_device()
| * 96cd8661f225 ARM: dts: mediatek: mt7623: fix IR nodename
| * 311afb2be167 arm64: dts: qcom: sdm845: Fix interrupt types of camss interrupts
| * eb3e76baaf1b arm64: dts: qcom: sm8150-microsoft-surface-duo: fix typos in da7280 properties
| * 312e11fc5060 arm64: dts: qcom: sm8350: correct sleep clock frequency
| * 8fbb052b3bd3 arm64: dts: qcom: sm8250: correct sleep clock frequency
| * c990f5e0b2cb arm64: dts: qcom: sm6125: correct sleep clock frequency
| * 88c84e743d4c arm64: dts: qcom: sc7280: correct sleep clock frequency
| * afc66a233ad9 arm64: dts: qcom: msm8994: correct sleep clock frequency
| * 9cc46ab94b61 arm64: dts: qcom: msm8916: correct sleep clock frequency
| * 09153a482e90 arm64: dts: qcom: msm8994: Describe USB interrupts
| * 31952ff5833c arm64: dts: qcom: msm8996: Fix up USB3 interrupts
| * ea7232a05e10 arm64: dts: mediatek: mt8183-kukui-jacuzzi: Drop pp3300_panel voltage settings
| * c3def10c610a memory: tegra20-emc: fix an OF node reference bug in tegra_emc_find_node_by_ram_code()
| * d9f36f957bb2 memory: tegra20-emc: Support matching timings by LPDDR2 configuration
| * 0f3c0d94c815 memory: Add LPDDR2-info helpers
| * 4274acb5b996 arm64: dts: mediatek: mt8183: willow: Support second source touchscreen
| * cba8c5daa9d8 arm64: dts: mediatek: mt8183: kenzo: Support second source touchscreen
| * d098183961e0 arm64: dts: mediatek: mt8173-evb: Fix MT6397 PMIC sub-node names
| * b9a5544dbad5 arm64: dts: mediatek: mt8173-elm: Fix MT6397 PMIC sub-node names
| * 032c92e01aaa arm64: dts: mediatek: mt8173-elm: Drop regulator-compatible property
| * 2a28a21a925f arm64: dts: mediatek: mt8173-evb: Drop regulator-compatible property
| * e53ca458f543 rdma/cxgb4: Prevent potential integer overflow on 32bit
| * 160450e4908b RDMA/mlx4: Avoid false error about access to uninitialized gids array
| * f92f10cdb7fa arm64: dts: mediatek: mt8516: reserve 192 KiB for TF-A
| * 52a976a83dda arm64: dts: mediatek: mt8516: add i2c clock-div property
| * 6047c27de667 arm64: dts: mediatek: mt8516: remove 2 invalid i2c clocks
| * bcc6c817e2ad arm64: dts: mediatek: mt8516: fix wdt irq type
| * 3ad0e4e15581 arm64: dts: mediatek: mt8516: fix GICv2 range
| * 9792f0c9880a arm64: dts: mt8183: set DMIC one-wire mode on Damu
| * abbb15f54a35 ARM: at91: pm: change BU Power Switch to automatic mode
| * 4c6209efea22 padata: avoid UAF for reorder_work
| * 035ed9577b48 padata: add pd get/put refcnt helper
| * f3e0b9f790f8 padata: fix UAF in padata_reorder
| * e306eaaa3d78 bpf: Send signals asynchronously if !preemptible
| * d6becd34dc65 perf report: Fix misleading help message about --demangle
| * 54b587874a7c perf top: Don't complain about lack of vmlinux when not resolving some kernel samples
| * ca0b62b2dc9a padata: fix sysfs store callback check
| * b467ed29b586 crypto: ixp4xx - fix OF node reference leaks in init_ixp_crypto()
| * 778a73f8d38d crypto: hisilicon/sec2 - fix for aead invalid authsize
| * 37e032978e55 crypto: hisilicon/sec2 - fix for aead icv error
| * 017b2680816b crypto: hisilicon/sec2 - optimize the error return process
| * 8f268c476c83 crypto: hisilicon/sec - delete redundant blank lines
| * 0db426905cb4 crypto: hisilicon/sec - add some comments for soft fallback
| * 4086792b8883 ktest.pl: Remove unused declarations in run_bis
57AE
ect_test function
| * 4c45f82e101a ASoC: renesas: rz-ssi: Use only the proper amount of dividers
| * 49c5d851a2bf perf bpf: Fix two memory leakages when calling perf_env__insert_bpf_prog_info()
| * ac026a0ba486 perf header: Fix one memory leakage in process_bpf_prog_info()
| * 11491bb26fd9 perf header: Fix one memory leakage in process_bpf_btf()
| * d79fc69eda73 ASoC: sun4i-spdif: Add clock multiplier settings
| * 6a5d02ae6ff8 libbpf: Fix segfault due to libelf functions not setting errno
| * 3c99e59404f3 tools/testing/selftests/bpf/test_tc_tunnel.sh: Fix wait for server bind
| * b8583b54455c net/rose: prevent integer overflows in rose_setsockopt()
| * 3cfabbb18810 tcp_cubic: fix incorrect HyStart round start detection
| * ed8c0300f302 net: ethernet: ti: am65-cpsw: fix freeing IRQ in am65_cpsw_nuss_remove_tx_chns()
| * 920f736e6c64 netfilter: nft_flow_offload: update tcp state flags under lock
| * 38646749d6e1 net: sched: Disallow replacing of child qdisc from one parent to another
| * 26bc6076798a net: avoid race between device unregistration and ethnl ops
| * f023bf675814 net/mlxfw: Drop hard coded max FW flash image size
| * 0e2f1d93d287 net: let net.core.dev_weight always be non-zero
| * 0cc8fc34df84 selftests/landlock: Fix error message
| * 78eadb30f5ce clk: analogbits: Fix incorrect calculation of vco rate delta
| * 7d07de96990e wifi: cfg80211: adjust allocation of colocated AP data
| * 7427e4afbd16 wifi: cfg80211: Handle specific BSSID in 6GHz scanning
| * 23b54d193a90 selftests: harness: fix printing of mismatch values in __EXPECT()
| * 28063f72460d cpufreq: ACPI: Fix max-frequency computation
| * 965e41a93fce wifi: mt76: mt76u_vendor_request: Do not print error messages when -EPROTO
| * a1fccf6b72b5 landlock: Handle weird files
| * b32a42383c26 landlock: Move filesystem helpers and add a new one
| * ba079f94cb0a net/smc: fix data error when recvmsg with MSG_PEEK flag
| * 9394c1163c20 wifi: wlcore: fix unbalanced pm_runtime calls
| * a7e98a85990a samples/landlock: Fix possible NULL dereference in parse_path()
| * 332ee5fc52e1 regulator: of: Implement the unwind path of of_regulator_match()
| * bd099a2fa9be team: prevent adding a device which is already a team device lower
| * f5072f5c806f clk: imx8mp: Fix clkout1/2 support
| * 68fb4aafe3bb cpufreq: schedutil: Fix superfluous updates caused by need_freq_update
| * 0e833dc042b9 leds: netxbig: Fix an OF node reference leak in netxbig_leds_get_of_pdata()
| * 4efb30e564f2 dt-bindings: mfd…
Certain applications treat any shared memory buffer that they obtain
as an ashmem buffer, meaning that they will attempt to invoke ashmem
ioctl commands on that buffer.

Android is transitioning to replacing ashmem with memfd, and memfd
currently does not support ashmem ioctl commands. So, when an
application attempts to invoke an ashmem ioctl command on a memfd,
the invocation will fail and report an error back to the app.

In order to preserve compatibility between these apps and memfds,
add a shim layer which will handle ashmem ioctl commands for memfds.

This also folds in the following commits from the android14-6.1 branch:

1. ANDROID: mm/memfd-ashmem-shim: Fix variable length array usage
2. ANDROID: mm/memfd-ashmem-shim: Simplify buffer name retrieval

Bug: 111903542
Bug: 415769373
Change-Id: I268a29ee2805739550d79fd2c21d3cfb5a852642
[isaacmanjarres: resolved trivial merge conflicts in mm/Kconfig
and folded in fixes/simplifications that were merged into the
android14-6.1 branch after the initial commit landed.]
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
Allow the memfd-ashmem-shim ioctl handler to run for any shmem file,
so that memfds can handle ashmem ioctl commands.

While this allows ashmem ioctl commands to be invoked on more than just
memfds, this should be fine, since the ioctl commands don't expose any
additional functionality than what is already achievable via other
system calls.

Bug: 111903542
Change-Id: I0bf57ac5a90dba66e5c2c32beff70bcf9d26db6b
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
Enable memfd-ashmem compatibility support.

Bug: 111903542
Change-Id: Ia4685272b2f64db737697a3e3c1640d110060111
[isaacmanjarres: resolved trivial merge conflicts in config files.]
Signed-off-by: Isaac J. Manjarres <isaacmanjarres@google.com>
Commit 9474be3 ("binder: add failed transaction logging info")
dereferences target_{proc,thread} after they have been potentially
freed by binder_proc_dec_tmpref() and binder_thread_dec_tmpref().

This patch delays the release of the two references after their last
usage. Fixes the following two errors reported by smatch:

  drivers/android/binder.c:3562 binder_transaction() error: dereferencing freed memory 'target_proc'
  drivers/android/binder.c:3563 binder_transaction() error: dereferencing freed memory 'target_thread'

Fixes: 9474be3 ("binder: add failed transaction logging info")
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Todd Kjos <tkjos@google.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Link: https://lore.kernel.org/r/20220517185817.598872-1-cmllamas@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

(cherry picked from commit dafa5e9)
Change-Id: I1557b4fcc6eece76dc49247c01baa8b089dec54e
Signed-off-by: xiaomei.li <xiaomei.li@unisoc.com>
Signed-off-by: Carlos Llamas <cmllamas@google.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0