* [PATCH 5.4 01/45] powerpc: boot: Remove leading zero in label in udelay()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 02/45] wifi: cfg80211: fix use-after-free in cmp_bss() Greg Kroah-Hartman
` (49 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable; +Cc: Greg Kroah-Hartman, patches, Nathan Chancellor, Christophe Leroy
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Nathan Chancellor <nathan@kernel.org>
When building powerpc configurations in linux-5.4.y with binutils 2.43
or newer, there is an assembler error in arch/powerpc/boot/util.S:
arch/powerpc/boot/util.S: Assembler messages:
arch/powerpc/boot/util.S:44: Error: junk at end of line, first unrecognized character is `0'
arch/powerpc/boot/util.S:49: Error: syntax error; found `b', expected `,'
arch/powerpc/boot/util.S:49: Error: junk at end of line: `b'
binutils 2.43 contains stricter parsing of certain labels [1], namely
that leading zeros are no longer allowed. The GNU assembler
documentation already somewhat forbade this construct:
To define a local label, write a label of the form 'N:' (where N
represents any non-negative integer).
Eliminate the leading zero in the label to fix the syntax error. This is
only needed in linux-5.4.y because commit 8b14e1dff067 ("powerpc: Remove
support for PowerPC 601") removed this code altogether in 5.10.
Link: https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=226749d5a6ff0d5c607d6428d6c81e1e7e7a994b [1]
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/powerpc/boot/util.S | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
--- a/arch/powerpc/boot/util.S
+++ b/arch/powerpc/boot/util.S
@@ -41,12 +41,12 @@ udelay:
srwi r4,r4,16
cmpwi 0,r4,1 /* 601 ? */
bne .Ludelay_not_601
-00: li r0,86 /* Instructions / microsecond? */
+0: li r0,86 /* Instructions / microsecond? */
mtctr r0
10: addi r0,r0,0 /* NOP */
bdnz 10b
subic. r3,r3,1
- bne 00b
+ bne 0b
blr
.Ludelay_not_601:
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 02/45] wifi: cfg80211: fix use-after-free in cmp_bss()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 01/45] powerpc: boot: Remove leading zero in label in udelay() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 03/45] netfilter: conntrack: helper: Replace -EEXIST by -EBUSY Greg Kroah-Hartman
` (48 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, syzbot+30754ca335e6fb7e3092,
Dmitry Antipov, Johannes Berg, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dmitry Antipov <dmantipov@yandex.ru>
[ Upstream commit 26e84445f02ce6b2fe5f3e0e28ff7add77f35e08 ]
Following bss_free() quirk introduced in commit 776b3580178f
("cfg80211: track hidden SSID networks properly"), adjust
cfg80211_update_known_bss() to free the last beacon frame
elements only if they're not shared via the corresponding
'hidden_beacon_bss' pointer.
Reported-by: syzbot+30754ca335e6fb7e3092@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=30754ca335e6fb7e3092
Fixes: 3ab8227d3e7d ("cfg80211: refactor cfg80211_bss_update")
Signed-off-by: Dmitry Antipov <dmantipov@yandex.ru>
Link: https://patch.msgid.link/20250813135236.799384-1-dmantipov@yandex.ru
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/wireless/scan.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/net/wireless/scan.c b/net/wireless/scan.c
index 18398968b3ed7..33e6f41035506 100644
--- a/net/wireless/scan.c
+++ b/net/wireless/scan.c
@@ -1219,7 +1219,8 @@ cfg80211_update_known_bss(struct cfg80211_registered_device *rdev,
*/
f = rcu_access_pointer(new->pub.beacon_ies);
- kfree_rcu((struct cfg80211_bss_ies *)f, rcu_head);
+ if (!new->pub.hidden_beacon_bss)
+ kfree_rcu((struct cfg80211_bss_ies *)f, rcu_head);
return false;
}
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 03/45] netfilter: conntrack: helper: Replace -EEXIST by -EBUSY
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 01/45] powerpc: boot: Remove leading zero in label in udelay() Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 02/45] wifi: cfg80211: fix use-after-free in cmp_bss() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 04/45] Bluetooth: Fix use-after-free in l2cap_sock_cleanup_listen() Greg Kroah-Hartman
` (47 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Christophe Leroy, Phil Sutter,
Florian Westphal, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Phil Sutter <phil@nwl.cc>
[ Upstream commit 54416fd76770bd04fc3c501810e8d673550bab26 ]
The helper registration return value is passed-through by module_init
callbacks which modprobe confuses with the harmless -EEXIST returned
when trying to load an already loaded module.
Make sure modprobe fails so users notice their helper has not been
registered and won't work.
Suggested-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Fixes: 12f7a505331e ("netfilter: add user-space connection tracking helper infrastructure")
Signed-off-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/netfilter/nf_conntrack_helper.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
index 32cc91f5ba99f..89174c91053ed 100644
--- a/net/netfilter/nf_conntrack_helper.c
+++ b/net/netfilter/nf_conntrack_helper.c
@@ -417,7 +417,7 @@ int nf_conntrack_helper_register(struct nf_conntrack_helper *me)
(cur->tuple.src.l3num == NFPROTO_UNSPEC ||
cur->tuple.src.l3num == me->tuple.src.l3num) &&
cur->tuple.dst.protonum == me->tuple.dst.protonum) {
- ret = -EEXIST;
+ ret = -EBUSY;
goto out;
}
}
@@ -428,7 +428,7 @@ int nf_conntrack_helper_register(struct nf_conntrack_helper *me)
hlist_for_each_entry(cur, &nf_ct_helper_hash[h], hnode) {
if (nf_ct_tuple_src_mask_cmp(&cur->tuple, &me->tuple,
&mask)) {
- ret = -EEXIST;
+ ret = -EBUSY;
goto out;
}
}
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 04/45] Bluetooth: Fix use-after-free in l2cap_sock_cleanup_listen()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (2 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 03/45] netfilter: conntrack: helper: Replace -EEXIST by -EBUSY Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 05/45] xirc2ps_cs: fix register access when enabling FullDuplex Greg Kroah-Hartman
` (46 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, syzbot+e5e64cdf8e92046dd3e1,
Kuniyuki Iwashima, Luiz Augusto von Dentz, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kuniyuki Iwashima <kuniyu@google.com>
[ Upstream commit 862c628108562d8c7a516a900034823b381d3cba ]
syzbot reported the splat below without a repro.
In the splat, a single thread calling bt_accept_dequeue() freed sk
and touched it after that.
The root cause would be the racy l2cap_sock_cleanup_listen() call
added by the cited commit.
bt_accept_dequeue() is called under lock_sock() except for
l2cap_sock_release().
Two threads could see the same socket during the list iteration
in bt_accept_dequeue():
CPU1 CPU2 (close())
---- ----
sock_hold(sk) sock_hold(sk);
lock_sock(sk) <-- block close()
sock_put(sk)
bt_accept_unlink(sk)
sock_put(sk) <-- refcnt by bt_accept_enqueue()
release_sock(sk)
lock_sock(sk)
sock_put(sk)
bt_accept_unlink(sk)
sock_put(sk) <-- last refcnt
bt_accept_unlink(sk) <-- UAF
Depending on the timing, the other thread could show up in the
"Freed by task" part.
Let's call l2cap_sock_cleanup_listen() under lock_sock() in
l2cap_sock_release().
[0]:
BUG: KASAN: slab-use-after-free in debug_spin_lock_before kernel/locking/spinlock_debug.c:86 [inline]
BUG: KASAN: slab-use-after-free in do_raw_spin_lock+0x26f/0x2b0 kernel/locking/spinlock_debug.c:115
Read of size 4 at addr ffff88803b7eb1c4 by task syz.5.3276/16995
CPU: 3 UID: 0 PID: 16995 Comm: syz.5.3276 Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2~bpo12+1 04/01/2014
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120
print_address_description mm/kasan/report.c:378 [inline]
print_report+0xcd/0x630 mm/kasan/report.c:482
kasan_report+0xe0/0x110 mm/kasan/report.c:595
debug_spin_lock_before kernel/locking/spinlock_debug.c:86 [inline]
do_raw_spin_lock+0x26f/0x2b0 kernel/locking/spinlock_debug.c:115
spin_lock_bh include/linux/spinlock.h:356 [inline]
release_sock+0x21/0x220 net/core/sock.c:3746
bt_accept_dequeue+0x505/0x600 net/bluetooth/af_bluetooth.c:312
l2cap_sock_cleanup_listen+0x5c/0x2a0 net/bluetooth/l2cap_sock.c:1451
l2cap_sock_release+0x5c/0x210 net/bluetooth/l2cap_sock.c:1425
__sock_release+0xb3/0x270 net/socket.c:649
sock_close+0x1c/0x30 net/socket.c:1439
__fput+0x3ff/0xb70 fs/file_table.c:468
task_work_run+0x14d/0x240 kernel/task_work.c:227
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
exit_to_user_mode_loop+0xeb/0x110 kernel/entry/common.c:43
exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline]
do_syscall_64+0x3f6/0x4c0 arch/x86/entry/syscall_64.c:100
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7f2accf8ebe9
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 a8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffdb6cb1378 EFLAGS: 00000246 ORIG_RAX: 00000000000001b4
RAX: 0000000000000000 RBX: 00000000000426fb RCX: 00007f2accf8ebe9
RDX: 0000000000000000 RSI: 000000000000001e RDI: 0000000000000003
RBP: 00007f2acd1b7da0 R08: 0000000000000001 R09: 00000012b6cb166f
R10: 0000001b30e20000 R11: 0000000000000246 R12: 00007f2acd1b609c
R13: 00007f2acd1b6090 R14: ffffffffffffffff R15: 00007ffdb6cb1490
</TASK>
Allocated by task 5326:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:47
kasan_save_track+0x14/0x30 mm/kasan/common.c:68
poison_kmalloc_redzone mm/kasan/common.c:388 [inline]
__kasan_kmalloc+0xaa/0xb0 mm/kasan/common.c:405
kasan_kmalloc include/linux/kasan.h:260 [inline]
__do_kmalloc_node mm/slub.c:4365 [inline]
__kmalloc_noprof+0x223/0x510 mm/slub.c:4377
kmalloc_noprof include/linux/slab.h:909 [inline]
sk_prot_alloc+0x1a8/0x2a0 net/core/sock.c:2239
sk_alloc+0x36/0xc20 net/core/sock.c:2295
bt_sock_alloc+0x3b/0x3a0 net/bluetooth/af_bluetooth.c:151
l2cap_sock_alloc.constprop.0+0x33/0x1d0 net/bluetooth/l2cap_sock.c:1894
l2cap_sock_new_connection_cb+0x101/0x240 net/bluetooth/l2cap_sock.c:1482
l2cap_connect_cfm+0x4c4/0xf80 net/bluetooth/l2cap_core.c:7287
hci_connect_cfm include/net/bluetooth/hci_core.h:2050 [inline]
hci_remote_features_evt+0x4dd/0x970 net/bluetooth/hci_event.c:3712
hci_event_func net/bluetooth/hci_event.c:7519 [inline]
hci_event_packet+0xa0d/0x11c0 net/bluetooth/hci_event.c:7573
hci_rx_work+0x2c5/0x16b0 net/bluetooth/hci_core.c:4071
process_one_work+0x9cf/0x1b70 kernel/workqueue.c:3236
process_scheduled_works kernel/workqueue.c:3319 [inline]
worker_thread+0x6c8/0xf10 kernel/workqueue.c:3400
kthread+0x3c2/0x780 kernel/kthread.c:463
ret_from_fork+0x5d7/0x6f0 arch/x86/kernel/process.c:148
ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245
Freed by task 16995:
kasan_save_stack+0x33/0x60 mm/kasan/common.c:47
kasan_save_track+0x14/0x30 mm/kasan/common.c:68
kasan_save_free_info+0x3b/0x60 mm/kasan/generic.c:576
poison_slab_object mm/kasan/common.c:243 [inline]
__kasan_slab_free+0x60/0x70 mm/kasan/common.c:275
kasan_slab_free include/linux/kasan.h:233 [inline]
slab_free_hook mm/slub.c:2417 [inline]
slab_free mm/slub.c:4680 [inline]
kfree+0x2b4/0x4d0 mm/slub.c:4879
sk_prot_free net/core/sock.c:2278 [inline]
__sk_destruct+0x75f/0x9a0 net/core/sock.c:2373
sk_destruct+0xc2/0xf0 net/core/sock.c:2401
__sk_free+0xf4/0x3e0 net/core/sock.c:2412
sk_free+0x6a/0x90 net/core/sock.c:2423
sock_put include/net/sock.h:1960 [inline]
bt_accept_unlink+0x245/0x2e0 net/bluetooth/af_bluetooth.c:262
bt_accept_dequeue+0x517/0x600 net/bluetooth/af_bluetooth.c:308
l2cap_sock_cleanup_listen+0x5c/0x2a0 net/bluetooth/l2cap_sock.c:1451
l2cap_sock_release+0x5c/0x210 net/bluetooth/l2cap_sock.c:1425
__sock_release+0xb3/0x270 net/socket.c:649
sock_close+0x1c/0x30 net/socket.c:1439
__fput+0x3ff/0xb70 fs/file_table.c:468
task_work_run+0x14d/0x240 kernel/task_work.c:227
resume_user_mode_work include/linux/resume_user_mode.h:50 [inline]
exit_to_user_mode_loop+0xeb/0x110 kernel/entry/common.c:43
exit_to_user_mode_prepare include/linux/irq-entry-common.h:225 [inline]
syscall_exit_to_user_mode_work include/linux/entry-common.h:175 [inline]
syscall_exit_to_user_mode include/linux/entry-common.h:210 [inline]
do_syscall_64+0x3f6/0x4c0 arch/x86/entry/syscall_64.c:100
entry_SYSCALL_64_after_hwframe+0x77/0x7f
Fixes: 1728137b33c0 ("Bluetooth: L2CAP: Fix use-after-free in l2cap_sock_ready_cb")
Reported-by: syzbot+e5e64cdf8e92046dd3e1@syzkaller.appspotmail.com
Closes: https://lore.kernel.org/linux-bluetooth/68af6b9d.a70a0220.3cafd4.0032.GAE@google.com/
Signed-off-by: Kuniyuki Iwashima <kuniyu@google.com>
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/bluetooth/l2cap_sock.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
index 93df53f2b76e3..dfffc5bb292dd 100644
--- a/net/bluetooth/l2cap_sock.c
+++ b/net/bluetooth/l2cap_sock.c
@@ -1226,7 +1226,10 @@ static int l2cap_sock_release(struct socket *sock)
if (!sk)
return 0;
+ lock_sock_nested(sk, L2CAP_NESTING_PARENT);
l2cap_sock_cleanup_listen(sk);
+ release_sock(sk);
+
bt_sock_unlink(&l2cap_sk_list, sk);
err = l2cap_sock_shutdown(sock, 2);
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 05/45] xirc2ps_cs: fix register access when enabling FullDuplex
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (3 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 04/45] Bluetooth: Fix use-after-free in l2cap_sock_cleanup_listen() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 06/45] mISDN: Fix memory leak in dsp_hwec_enable() Greg Kroah-Hartman
` (45 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Alok Tiwari, Simon Horman,
Jacob Keller, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alok Tiwari <alok.a.tiwari@oracle.com>
[ Upstream commit b79e498080b170fd94fc83bca2471f450811549b ]
The current code incorrectly passes (XIRCREG1_ECR | FullDuplex) as
the register address to GetByte(), instead of fetching the register
value and OR-ing it with FullDuplex. This results in an invalid
register access.
Fix it by reading XIRCREG1_ECR first, then or-ing with FullDuplex
before writing it back.
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Jacob Keller <jacob.e.keller@intel.com>
Link: https://patch.msgid.link/20250827192645.658496-1-alok.a.tiwari@oracle.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/xircom/xirc2ps_cs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/xircom/xirc2ps_cs.c b/drivers/net/ethernet/xircom/xirc2ps_cs.c
index e3438cef5f9c6..4d8a1728e8ed6 100644
--- a/drivers/net/ethernet/xircom/xirc2ps_cs.c
+++ b/drivers/net/ethernet/xircom/xirc2ps_cs.c
@@ -1584,7 +1584,7 @@ do_reset(struct net_device *dev, int full)
msleep(40); /* wait 40 msec to let it complete */
}
if (full_duplex)
- PutByte(XIRCREG1_ECR, GetByte(XIRCREG1_ECR | FullDuplex));
+ PutByte(XIRCREG1_ECR, GetByte(XIRCREG1_ECR) | FullDuplex);
} else { /* No MII */
SelectPage(0);
value = GetByte(XIRCREG_ESR); /* read the ESR */
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 06/45] mISDN: Fix memory leak in dsp_hwec_enable()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (4 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 05/45] xirc2ps_cs: fix register access when enabling FullDuplex Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 07/45] icmp: fix icmp_ndo_send address translation for reply direction Greg Kroah-Hartman
` (44 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Miaoqian Lin, Simon Horman,
Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Miaoqian Lin <linmq006@gmail.com>
[ Upstream commit 0704a3da7ce50f972e898bbda88d2692a22922d9 ]
dsp_hwec_enable() allocates dup pointer by kstrdup(arg),
but then it updates dup variable by strsep(&dup, ",").
As a result when it calls kfree(dup), the dup variable may be
a modified pointer that no longer points to the original allocated
memory, causing a memory leak.
The issue is the same pattern as fixed in commit c6a502c22999
("mISDN: Fix memory leak in dsp_pipeline_build()").
Fixes: 9a4381618262 ("mISDN: Remove VLAs")
Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250828081457.36061-1-linmq006@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/isdn/mISDN/dsp_hwec.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/isdn/mISDN/dsp_hwec.c b/drivers/isdn/mISDN/dsp_hwec.c
index 0b3f29195330a..0cd216e28f009 100644
--- a/drivers/isdn/mISDN/dsp_hwec.c
+++ b/drivers/isdn/mISDN/dsp_hwec.c
@@ -51,14 +51,14 @@ void dsp_hwec_enable(struct dsp *dsp, const char *arg)
goto _do;
{
- char *dup, *tok, *name, *val;
+ char *dup, *next, *tok, *name, *val;
int tmp;
- dup = kstrdup(arg, GFP_ATOMIC);
+ dup = next = kstrdup(arg, GFP_ATOMIC);
if (!dup)
return;
- while ((tok = strsep(&dup, ","))) {
+ while ((tok = strsep(&next, ","))) {
if (!strlen(tok))
continue;
name = strsep(&tok, "=");
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 07/45] icmp: fix icmp_ndo_send address translation for reply direction
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (5 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 06/45] mISDN: Fix memory leak in dsp_hwec_enable() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 08/45] i40e: Fix potential invalid access when MAC list is empty Greg Kroah-Hartman
` (43 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Fabian Bläse,
Jason A. Donenfeld, Florian Westphal, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Fabian Bläse <fabian@blaese.de>
[ Upstream commit c6dd1aa2cbb72b33e0569f3e71d95792beab5042 ]
The icmp_ndo_send function was originally introduced to ensure proper
rate limiting when icmp_send is called by a network device driver,
where the packet's source address may have already been transformed
by SNAT.
However, the original implementation only considers the
IP_CT_DIR_ORIGINAL direction for SNAT and always replaced the packet's
source address with that of the original-direction tuple. This causes
two problems:
1. For SNAT:
Reply-direction packets were incorrectly translated using the source
address of the CT original direction, even though no translation is
required.
2. For DNAT:
Reply-direction packets were not handled at all. In DNAT, the original
direction's destination is translated. Therefore, in the reply
direction the source address must be set to the reply-direction
source, so rate limiting works as intended.
Fix this by using the connection direction to select the correct tuple
for source address translation, and adjust the pre-checks to handle
reply-direction packets in case of DNAT.
Additionally, wrap the `ct->status` access in READ_ONCE(). This avoids
possible KCSAN reports about concurrent updates to `ct->status`.
Fixes: 0b41713b6066 ("icmp: introduce helper for nat'd source address in network device context")
Signed-off-by: Fabian Bläse <fabian@blaese.de>
Cc: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Florian Westphal <fw@strlen.de>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ipv4/icmp.c | 6 ++++--
net/ipv6/ip6_icmp.c | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/net/ipv4/icmp.c b/net/ipv4/icmp.c
index ac82a4158b86b..875424c428e66 100644
--- a/net/ipv4/icmp.c
+++ b/net/ipv4/icmp.c
@@ -790,11 +790,12 @@ void icmp_ndo_send(struct sk_buff *skb_in, int type, int code, __be32 info)
struct sk_buff *cloned_skb = NULL;
struct ip_options opts = { 0 };
enum ip_conntrack_info ctinfo;
+ enum ip_conntrack_dir dir;
struct nf_conn *ct;
__be32 orig_ip;
ct = nf_ct_get(skb_in, &ctinfo);
- if (!ct || !(ct->status & IPS_SRC_NAT)) {
+ if (!ct || !(READ_ONCE(ct->status) & IPS_NAT_MASK)) {
__icmp_send(skb_in, type, code, info, &opts);
return;
}
@@ -809,7 +810,8 @@ void icmp_ndo_send(struct sk_buff *skb_in, int type, int code, __be32 info)
goto out;
orig_ip = ip_hdr(skb_in)->saddr;
- ip_hdr(skb_in)->saddr = ct->tuplehash[0].tuple.src.u3.ip;
+ dir = CTINFO2DIR(ctinfo);
+ ip_hdr(skb_in)->saddr = ct->tuplehash[dir].tuple.src.u3.ip;
__icmp_send(skb_in, type, code, info, &opts);
ip_hdr(skb_in)->saddr = orig_ip;
out:
diff --git a/net/ipv6/ip6_icmp.c b/net/ipv6/ip6_icmp.c
index 9e3574880cb03..233914b63bdb8 100644
--- a/net/ipv6/ip6_icmp.c
+++ b/net/ipv6/ip6_icmp.c
@@ -54,11 +54,12 @@ void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info)
struct inet6_skb_parm parm = { 0 };
struct sk_buff *cloned_skb = NULL;
enum ip_conntrack_info ctinfo;
+ enum ip_conntrack_dir dir;
struct in6_addr orig_ip;
struct nf_conn *ct;
ct = nf_ct_get(skb_in, &ctinfo);
- if (!ct || !(ct->status & IPS_SRC_NAT)) {
+ if (!ct || !(READ_ONCE(ct->status) & IPS_NAT_MASK)) {
__icmpv6_send(skb_in, type, code, info, &parm);
return;
}
@@ -73,7 +74,8 @@ void icmpv6_ndo_send(struct sk_buff *skb_in, u8 type, u8 code, __u32 info)
goto out;
orig_ip = ipv6_hdr(skb_in)->saddr;
- ipv6_hdr(skb_in)->saddr = ct->tuplehash[0].tuple.src.u3.in6;
+ dir = CTINFO2DIR(ctinfo);
+ ipv6_hdr(skb_in)->saddr = ct->tuplehash[dir].tuple.src.u3.in6;
__icmpv6_send(skb_in, type, code, info, &parm);
ipv6_hdr(skb_in)->saddr = orig_ip;
out:
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 08/45] i40e: Fix potential invalid access when MAC list is empty
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (6 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 07/45] icmp: fix icmp_ndo_send address translation for reply direction Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 09/45] net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets Greg Kroah-Hartman
` (42 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Zhen Ni, Paul Menzel, Tony Nguyen,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Zhen Ni <zhen.ni@easystack.cn>
[ Upstream commit a556f06338e1d5a85af0e32ecb46e365547f92b9 ]
list_first_entry() never returns NULL - if the list is empty, it still
returns a pointer to an invalid object, leading to potential invalid
memory access when dereferenced.
Fix this by using list_first_entry_or_null instead of list_first_entry.
Fixes: e3219ce6a775 ("i40e: Add support for client interface for IWARP driver")
Signed-off-by: Zhen Ni <zhen.ni@easystack.cn>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/intel/i40e/i40e_client.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ethernet/intel/i40e/i40e_client.c b/drivers/net/ethernet/intel/i40e/i40e_client.c
index 10125b02d1543..b7c3625aec154 100644
--- a/drivers/net/ethernet/intel/i40e/i40e_client.c
+++ b/drivers/net/ethernet/intel/i40e/i40e_client.c
@@ -320,8 +320,8 @@ static void i40e_client_add_instance(struct i40e_pf *pf)
return;
}
- mac = list_first_entry(&cdev->lan_info.netdev->dev_addrs.list,
- struct netdev_hw_addr, list);
+ mac = list_first_entry_or_null(&cdev->lan_info.netdev->dev_addrs.list,
+ struct netdev_hw_addr, list);
if (mac)
ether_addr_copy(cdev->lan_info.lanmac, mac->addr);
else
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 09/45] net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (7 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 08/45] i40e: Fix potential invalid access when MAC list is empty Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 10/45] wifi: cw1200: cap SSID length in cw1200_do_join() Greg Kroah-Hartman
` (41 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Thibaut VARENE, Felix Fietkau,
Simon Horman, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Felix Fietkau <nbd@nbd.name>
[ Upstream commit d4736737110ffa83d29f1c5d17b26113864205f6 ]
When sending llc packets with vlan tx offload, the hardware fails to
actually add the tag. Deal with this by fixing it up in software.
Fixes: 656e705243fd ("net-next: mediatek: add support for MT7623 ethernet")
Reported-by: Thibaut VARENE <hacks@slashdirt.org>
Signed-off-by: Felix Fietkau <nbd@nbd.name>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250831182007.51619-1-nbd@nbd.name
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/mediatek/mtk_eth_soc.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/mediatek/mtk_eth_soc.c b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
index 7b9f5eba78dcc..6ab4c84bc22ef 100644
--- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c
+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c
@@ -1173,6 +1173,13 @@ static int mtk_start_xmit(struct sk_buff *skb, struct net_device *dev)
bool gso = false;
int tx_num;
+ if (skb_vlan_tag_present(skb) &&
+ !eth_proto_is_802_3(eth_hdr(skb)->h_proto)) {
+ skb = __vlan_hwaccel_push_inside(skb);
+ if (!skb)
+ goto dropped;
+ }
+
/* normally we can rely on the stack not calling this more than once,
* however we have 2 queues running on the same ring so we need to lock
* the ring access
@@ -1218,8 +1225,9 @@ static int mtk_start_xmit(struct sk_buff *skb, struct net_device *dev)
drop:
spin_unlock(ð->page_lock);
- stats->tx_dropped++;
dev_kfree_skb_any(skb);
+dropped:
+ stats->tx_dropped++;
return NETDEV_TX_OK;
}
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 10/45] wifi: cw1200: cap SSID length in cw1200_do_join()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (8 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 09/45] net: ethernet: mtk_eth_soc: fix tx vlan tag for llc packets Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 11/45] wifi: libertas: cap SSID len in lbs_associate() Greg Kroah-Hartman
` (40 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Dan Carpenter, Johannes Berg,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Carpenter <dan.carpenter@linaro.org>
[ Upstream commit f8f15f6742b8874e59c9c715d0af3474608310ad ]
If the ssidie[1] length is more that 32 it leads to memory corruption.
Fixes: a910e4a94f69 ("cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/e91fb43fcedc4893b604dfb973131661510901a7.1756456951.git.dan.carpenter@linaro.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/st/cw1200/sta.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/wireless/st/cw1200/sta.c b/drivers/net/wireless/st/cw1200/sta.c
index 236022d4ae2a3..0f2d1ec34cd82 100644
--- a/drivers/net/wireless/st/cw1200/sta.c
+++ b/drivers/net/wireless/st/cw1200/sta.c
@@ -1289,7 +1289,7 @@ static void cw1200_do_join(struct cw1200_common *priv)
rcu_read_lock();
ssidie = ieee80211_bss_get_ie(bss, WLAN_EID_SSID);
if (ssidie) {
- join.ssid_len = ssidie[1];
+ join.ssid_len = min(ssidie[1], IEEE80211_MAX_SSID_LEN);
memcpy(join.ssid, &ssidie[2], join.ssid_len);
}
rcu_read_unlock();
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 11/45] wifi: libertas: cap SSID len in lbs_associate()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (9 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 10/45] wifi: cw1200: cap SSID length in cw1200_do_join() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 12/45] net: thunder_bgx: add a missing of_node_put Greg Kroah-Hartman
` (39 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Dan Carpenter, Johannes Berg,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Carpenter <dan.carpenter@linaro.org>
[ Upstream commit c786794bd27b0d7a5fd9063695df83206009be59 ]
If the ssid_eid[1] length is more that 32 it leads to memory corruption.
Fixes: a910e4a94f69 ("cw1200: add driver for the ST-E CW1100 & CW1200 WLAN chipsets")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/2a40f5ec7617144aef412034c12919a4927d90ad.1756456951.git.dan.carpenter@linaro.org
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/wireless/marvell/libertas/cfg.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/drivers/net/wireless/marvell/libertas/cfg.c b/drivers/net/wireless/marvell/libertas/cfg.c
index 4e3de684928bf..a659054c1bcd9 100644
--- a/drivers/net/wireless/marvell/libertas/cfg.c
+++ b/drivers/net/wireless/marvell/libertas/cfg.c
@@ -1102,10 +1102,13 @@ static int lbs_associate(struct lbs_private *priv,
/* add SSID TLV */
rcu_read_lock();
ssid_eid = ieee80211_bss_get_ie(bss, WLAN_EID_SSID);
- if (ssid_eid)
- pos += lbs_add_ssid_tlv(pos, ssid_eid + 2, ssid_eid[1]);
- else
+ if (ssid_eid) {
+ u32 ssid_len = min(ssid_eid[1], IEEE80211_MAX_SSID_LEN);
+
+ pos += lbs_add_ssid_tlv(pos, ssid_eid + 2, ssid_len);
+ } else {
lbs_deb_assoc("no SSID\n");
+ }
rcu_read_unlock();
/* add DS param TLV */
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 12/45] net: thunder_bgx: add a missing of_node_put
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (10 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 11/45] wifi: libertas: cap SSID len in lbs_associate() Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:57 ` [PATCH 5.4 13/45] net: thunder_bgx: decrement cleanup index before use Greg Kroah-Hartman
` (38 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Rosen Penev, Simon Horman,
Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Rosen Penev <rosenp@gmail.com>
[ Upstream commit 9d28f94912589f04ab51fbccaef287d4f40e0d1f ]
phy_np needs to get freed, just like the other child nodes.
Fixes: 5fc7cf179449 ("net: thunderx: Cleanup PHY probing code.")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250901213018.47392-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
.../net/ethernet/cavium/thunder/thunder_bgx.c | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index 8854025610e64..e3acbdbc80993 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -1497,13 +1497,17 @@ static int bgx_init_of_phy(struct bgx *bgx)
* this cortina phy, for which there is no driver
* support, ignore it.
*/
- if (phy_np &&
- !of_device_is_compatible(phy_np, "cortina,cs4223-slice")) {
- /* Wait until the phy drivers are available */
- pd = of_phy_find_device(phy_np);
- if (!pd)
- goto defer;
- bgx->lmac[lmac].phydev = pd;
+ if (phy_np) {
+ if (!of_device_is_compatible(phy_np, "cortina,cs4223-slice")) {
+ /* Wait until the phy drivers are available */
+ pd = of_phy_find_device(phy_np);
+ if (!pd) {
+ of_node_put(phy_np);
+ goto defer;
+ }
+ bgx->lmac[lmac].phydev = pd;
+ }
+ of_node_put(phy_np);
}
lmac++;
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 13/45] net: thunder_bgx: decrement cleanup index before use
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (11 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 12/45] net: thunder_bgx: add a missing of_node_put Greg Kroah-Hartman
@ 2025-09-07 19:57 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 14/45] ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init() Greg Kroah-Hartman
` (37 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:57 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Rosen Penev, Vadim Fedorenko,
Simon Horman, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Rosen Penev <rosenp@gmail.com>
[ Upstream commit 9e3d71a92e561ccc77025689dab25d201fee7a3e ]
All paths in probe that call goto defer do so before assigning phydev
and thus it makes sense to cleanup the prior index. It also fixes a bug
where index 0 does not get cleaned up.
Fixes: b7d3e3d3d21a ("net: thunderx: Don't leak phy device references on -EPROBE_DEFER condition.")
Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Vadim Fedorenko <vadim.fedorenko@linux.dev>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250901213314.48599-1-rosenp@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ethernet/cavium/thunder/thunder_bgx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
index e3acbdbc80993..8f4f831237cd2 100644
--- a/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
+++ b/drivers/net/ethernet/cavium/thunder/thunder_bgx.c
@@ -1523,11 +1523,11 @@ static int bgx_init_of_phy(struct bgx *bgx)
* for phy devices we may have already found.
*/
while (lmac) {
+ lmac--;
if (bgx->lmac[lmac].phydev) {
put_device(&bgx->lmac[lmac].phydev->mdio.dev);
bgx->lmac[lmac].phydev = NULL;
}
- lmac--;
}
of_node_put(node);
return -EPROBE_DEFER;
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 14/45] ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (12 preceding siblings ...)
2025-09-07 19:57 ` [PATCH 5.4 13/45] net: thunder_bgx: decrement cleanup index before use Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 15/45] ax25: properly unshare skbs in ax25_kiss_rcv() Greg Kroah-Hartman
` (36 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Dan Carpenter, Simon Horman,
Eric Dumazet, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dan Carpenter <dan.carpenter@linaro.org>
[ Upstream commit a51160f8da850a65afbf165f5bbac7ffb388bf74 ]
The inetdev_init() function never returns NULL. Check for error
pointers instead.
Fixes: 22600596b675 ("ipv4: give an IPv4 dev to blackhole_netdev")
Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org>
Reviewed-by: Simon Horman <horms@kernel.org>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Link: https://patch.msgid.link/aLaQWL9NguWmeM1i@stanley.mountain
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ipv4/devinet.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 6855372d57a34..b4fb75be24d9c 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -332,14 +332,13 @@ static void inetdev_destroy(struct in_device *in_dev)
static int __init inet_blackhole_dev_init(void)
{
- int err = 0;
+ struct in_device *in_dev;
rtnl_lock();
- if (!inetdev_init(blackhole_netdev))
- err = -ENOMEM;
+ in_dev = inetdev_init(blackhole_netdev);
rtnl_unlock();
- return err;
+ return PTR_ERR_OR_ZERO(in_dev);
}
late_initcall(inet_blackhole_dev_init);
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 15/45] ax25: properly unshare skbs in ax25_kiss_rcv()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (13 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 14/45] ipv4: Fix NULL vs error pointer check in inet_blackhole_dev_init() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 16/45] net: atm: fix memory leak in atm_register_sysfs when device_register fail Greg Kroah-Hartman
` (35 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Bernard Pidoux, Eric Dumazet,
Joerg Reuter, David Ranch, Folkert van Heusden, Dan Cross,
Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Eric Dumazet <edumazet@google.com>
[ Upstream commit 8156210d36a43e76372312c87eb5ea3dbb405a85 ]
Bernard Pidoux reported a regression apparently caused by commit
c353e8983e0d ("net: introduce per netns packet chains").
skb->dev becomes NULL and we crash in __netif_receive_skb_core().
Before above commit, different kind of bugs or corruptions could happen
without a major crash.
But the root cause is that ax25_kiss_rcv() can queue/mangle input skb
without checking if this skb is shared or not.
Many thanks to Bernard Pidoux for his help, diagnosis and tests.
We had a similar issue years ago fixed with commit 7aaed57c5c28
("phonet: properly unshare skbs in phonet_rcv()").
Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Reported-by: Bernard Pidoux <f6bvp@free.fr>
Closes: https://lore.kernel.org/netdev/1713f383-c538-4918-bc64-13b3288cd542@free.fr/
Tested-by: Bernard Pidoux <f6bvp@free.fr>
Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Joerg Reuter <jreuter@yaina.de>
Cc: David Ranch <dranch@trinnet.net>
Cc: Folkert van Heusden <folkert@vanheusden.com>
Reviewed-by: Dan Cross <crossd@gmail.com>
Link: https://patch.msgid.link/20250902124642.212705-1-edumazet@google.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/ax25/ax25_in.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/net/ax25/ax25_in.c b/net/ax25/ax25_in.c
index dcdbaeeb2358a..506a88b2357bf 100644
--- a/net/ax25/ax25_in.c
+++ b/net/ax25/ax25_in.c
@@ -433,6 +433,10 @@ static int ax25_rcv(struct sk_buff *skb, struct net_device *dev,
int ax25_kiss_rcv(struct sk_buff *skb, struct net_device *dev,
struct packet_type *ptype, struct net_device *orig_dev)
{
+ skb = skb_share_check(skb, GFP_ATOMIC);
+ if (!skb)
+ return NET_RX_DROP;
+
skb_orphan(skb);
if (!net_eq(dev_net(dev), &init_net)) {
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 16/45] net: atm: fix memory leak in atm_register_sysfs when device_register fail
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (14 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 15/45] ax25: properly unshare skbs in ax25_kiss_rcv() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 17/45] ppp: fix memory leak in pad_compress_skb Greg Kroah-Hartman
` (34 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Wang Liang, Simon Horman,
Paolo Abeni, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Wang Liang <wangliang74@huawei.com>
[ Upstream commit 0a228624bcc00af41f281a2a84c928595a74c17d ]
When device_register() return error in atm_register_sysfs(), which can be
triggered by kzalloc fail in device_private_init() or other reasons,
kmemleak reports the following memory leaks:
unreferenced object 0xffff88810182fb80 (size 8):
comm "insmod", pid 504, jiffies 4294852464
hex dump (first 8 bytes):
61 64 75 6d 6d 79 30 00 adummy0.
backtrace (crc 14dfadaf):
__kmalloc_node_track_caller_noprof+0x335/0x450
kvasprintf+0xb3/0x130
kobject_set_name_vargs+0x45/0x120
dev_set_name+0xa9/0xe0
atm_register_sysfs+0xf3/0x220
atm_dev_register+0x40b/0x780
0xffffffffa000b089
do_one_initcall+0x89/0x300
do_init_module+0x27b/0x7d0
load_module+0x54cd/0x5ff0
init_module_from_file+0xe4/0x150
idempotent_init_module+0x32c/0x610
__x64_sys_finit_module+0xbd/0x120
do_syscall_64+0xa8/0x270
entry_SYSCALL_64_after_hwframe+0x77/0x7f
When device_create_file() return error in atm_register_sysfs(), the same
issue also can be triggered.
Function put_device() should be called to release kobj->name memory and
other device resource, instead of kfree().
Fixes: 1fa5ae857bb1 ("driver core: get rid of struct device's bus_id string array")
Signed-off-by: Wang Liang <wangliang74@huawei.com>
Reviewed-by: Simon Horman <horms@kernel.org>
Link: https://patch.msgid.link/20250901063537.1472221-1-wangliang74@huawei.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
net/atm/resources.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/net/atm/resources.c b/net/atm/resources.c
index e244c2576d1e0..a00799254e2d6 100644
--- a/net/atm/resources.c
+++ b/net/atm/resources.c
@@ -114,7 +114,9 @@ struct atm_dev *atm_dev_register(const char *type, struct device *parent,
if (atm_proc_dev_register(dev) < 0) {
pr_err("atm_proc_dev_register failed for dev %s\n", type);
- goto out_fail;
+ mutex_unlock(&atm_dev_mutex);
+ kfree(dev);
+ return NULL;
}
if (atm_register_sysfs(dev, parent) < 0) {
@@ -130,7 +132,7 @@ struct atm_dev *atm_dev_register(const char *type, struct device *parent,
return dev;
out_fail:
- kfree(dev);
+ put_device(&dev->class_dev);
dev = NULL;
goto out;
}
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 17/45] ppp: fix memory leak in pad_compress_skb
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (15 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 16/45] net: atm: fix memory leak in atm_register_sysfs when device_register fail Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 18/45] ALSA: usb-audio: Add mute TLV for playback volumes on some devices Greg Kroah-Hartman
` (33 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Qingfang Deng, Eric Dumazet,
Yue Haibing, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Qingfang Deng <dqfext@gmail.com>
[ Upstream commit 4844123fe0b853a4982c02666cb3fd863d701d50 ]
If alloc_skb() fails in pad_compress_skb(), it returns NULL without
releasing the old skb. The caller does:
skb = pad_compress_skb(ppp, skb);
if (!skb)
goto drop;
drop:
kfree_skb(skb);
When pad_compress_skb() returns NULL, the reference to the old skb is
lost and kfree_skb(skb) ends up doing nothing, leading to a memory leak.
Align pad_compress_skb() semantics with realloc(): only free the old
skb if allocation and compression succeed. At the call site, use the
new_skb variable so the original skb is not lost when pad_compress_skb()
fails.
Fixes: b3f9b92a6ec1 ("[PPP]: add PPP MPPE encryption module")
Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Reviewed-by: Eric Dumazet <edumazet@google.com>
Reviewed-by: Yue Haibing <yuehaibing@huawei.com>
Link: https://patch.msgid.link/20250903100726.269839-1-dqfext@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/net/ppp/ppp_generic.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
index 7b9337e16d6e1..dd7c84e4b4986 100644
--- a/drivers/net/ppp/ppp_generic.c
+++ b/drivers/net/ppp/ppp_generic.c
@@ -1528,7 +1528,6 @@ pad_compress_skb(struct ppp *ppp, struct sk_buff *skb)
*/
if (net_ratelimit())
netdev_err(ppp->dev, "ppp: compressor dropped pkt\n");
- kfree_skb(skb);
consume_skb(new_skb);
new_skb = NULL;
}
@@ -1630,9 +1629,10 @@ ppp_send_frame(struct ppp *ppp, struct sk_buff *skb)
"down - pkt dropped.\n");
goto drop;
}
- skb = pad_compress_skb(ppp, skb);
- if (!skb)
+ new_skb = pad_compress_skb(ppp, skb);
+ if (!new_skb)
goto drop;
+ skb = new_skb;
}
/*
--
2.50.1
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 18/45] ALSA: usb-audio: Add mute TLV for playback volumes on some devices
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (16 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 17/45] ppp: fix memory leak in pad_compress_skb Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 19/45] pcmcia: Fix a NULL pointer dereference in __iodyn_find_io_region() Greg Kroah-Hartman
` (32 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Guoli An, Cryolitia PukNgae,
Takashi Iwai
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Cryolitia PukNgae <cryolitia@uniontech.com>
commit 9c6182843b0d02ca04cc1d946954a65a2286c7db upstream.
Applying the quirk of that, the lowest Playback mixer volume setting
mutes the audio output, on more devices.
Link: https://gitlab.freedesktop.org/pipewire/pipewire/-/merge_requests/2514
Cc: <stable@vger.kernel.org>
Tested-by: Guoli An <anguoli@uniontech.com>
Signed-off-by: Cryolitia PukNgae <cryolitia@uniontech.com>
Link: https://patch.msgid.link/20250822-mixer-quirk-v1-1-b19252239c1c@uniontech.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/usb/mixer_quirks.c | 2 ++
1 file changed, 2 insertions(+)
--- a/sound/usb/mixer_quirks.c
+++ b/sound/usb/mixer_quirks.c
@@ -2587,9 +2587,11 @@ void snd_usb_mixer_fu_apply_quirk(struct
snd_dragonfly_quirk_db_scale(mixer, cval, kctl);
break;
/* lowest playback value is muted on some devices */
+ case USB_ID(0x0572, 0x1b09): /* Conexant Systems (Rockwell), Inc. */
case USB_ID(0x0d8c, 0x000c): /* C-Media */
case USB_ID(0x0d8c, 0x0014): /* C-Media */
case USB_ID(0x19f7, 0x0003): /* RODE NT-USB */
+ case USB_ID(0x2d99, 0x0026): /* HECATE G2 GAMING HEADSET */
if (strstr(kctl->id.name, "Playback"))
cval->min_mute = 1;
break;
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 19/45] pcmcia: Fix a NULL pointer dereference in __iodyn_find_io_region()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (17 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 18/45] ALSA: usb-audio: Add mute TLV for playback volumes on some devices Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 20/45] wifi: mwifiex: Initialize the chan_stats array to zero Greg Kroah-Hartman
` (31 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable; +Cc: Greg Kroah-Hartman, patches, Ma Ke, Dominik Brodowski
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ma Ke <make24@iscas.ac.cn>
commit 44822df89e8f3386871d9cad563ece8e2fd8f0e7 upstream.
In __iodyn_find_io_region(), pcmcia_make_resource() is assigned to
res and used in pci_bus_alloc_resource(). There is a dereference of res
in pci_bus_alloc_resource(), which could lead to a NULL pointer
dereference on failure of pcmcia_make_resource().
Fix this bug by adding a check of res.
Cc: stable@vger.kernel.org
Fixes: 49b1153adfe1 ("pcmcia: move all pcmcia_resource_ops providers into one module")
Signed-off-by: Ma Ke <make24@iscas.ac.cn>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/pcmcia/rsrc_iodyn.c | 3 +++
1 file changed, 3 insertions(+)
--- a/drivers/pcmcia/rsrc_iodyn.c
+++ b/drivers/pcmcia/rsrc_iodyn.c
@@ -62,6 +62,9 @@ static struct resource *__iodyn_find_io_
unsigned long min = base;
int ret;
+ if (!res)
+ return NULL;
+
data.mask = align - 1;
data.offset = base & data.mask;
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 20/45] wifi: mwifiex: Initialize the chan_stats array to zero
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (18 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 19/45] pcmcia: Fix a NULL pointer dereference in __iodyn_find_io_region() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 21/45] drm/amdgpu: drop hw access in non-DC audio fini Greg Kroah-Hartman
` (30 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Dan Carpenter, Qianfeng Rong,
Johannes Berg
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Qianfeng Rong <rongqianfeng@vivo.com>
commit 0e20450829ca3c1dbc2db536391537c57a40fe0b upstream.
The adapter->chan_stats[] array is initialized in
mwifiex_init_channel_scan_gap() with vmalloc(), which doesn't zero out
memory. The array is filled in mwifiex_update_chan_statistics()
and then the user can query the data in mwifiex_cfg80211_dump_survey().
There are two potential issues here. What if the user calls
mwifiex_cfg80211_dump_survey() before the data has been filled in.
Also the mwifiex_update_chan_statistics() function doesn't necessarily
initialize the whole array. Since the array was not initialized at
the start that could result in an information leak.
Also this array is pretty small. It's a maximum of 900 bytes so it's
more appropriate to use kcalloc() instead vmalloc().
Cc: stable@vger.kernel.org
Fixes: bf35443314ac ("mwifiex: channel statistics support for mwifiex")
Suggested-by: Dan Carpenter <dan.carpenter@linaro.org>
Signed-off-by: Qianfeng Rong <rongqianfeng@vivo.com>
Reviewed-by: Dan Carpenter <dan.carpenter@linaro.org>
Link: https://patch.msgid.link/20250815023055.477719-1-rongqianfeng@vivo.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/wireless/marvell/mwifiex/cfg80211.c | 5 +++--
drivers/net/wireless/marvell/mwifiex/main.c | 4 ++--
2 files changed, 5 insertions(+), 4 deletions(-)
--- a/drivers/net/wireless/marvell/mwifiex/cfg80211.c
+++ b/drivers/net/wireless/marvell/mwifiex/cfg80211.c
@@ -4273,8 +4273,9 @@ int mwifiex_init_channel_scan_gap(struct
* additional active scan request for hidden SSIDs on passive channels.
*/
adapter->num_in_chan_stats = 2 * (n_channels_bg + n_channels_a);
- adapter->chan_stats = vmalloc(array_size(sizeof(*adapter->chan_stats),
- adapter->num_in_chan_stats));
+ adapter->chan_stats = kcalloc(adapter->num_in_chan_stats,
+ sizeof(*adapter->chan_stats),
+ GFP_KERNEL);
if (!adapter->chan_stats)
return -ENOMEM;
--- a/drivers/net/wireless/marvell/mwifiex/main.c
+++ b/drivers/net/wireless/marvell/mwifiex/main.c
@@ -635,7 +635,7 @@ static int _mwifiex_fw_dpc(const struct
goto done;
err_add_intf:
- vfree(adapter->chan_stats);
+ kfree(adapter->chan_stats);
err_init_chan_scan:
wiphy_unregister(adapter->wiphy);
wiphy_free(adapter->wiphy);
@@ -1448,7 +1448,7 @@ static void mwifiex_uninit_sw(struct mwi
wiphy_free(adapter->wiphy);
adapter->wiphy = NULL;
- vfree(adapter->chan_stats);
+ kfree(adapter->chan_stats);
mwifiex_free_cmd_buffers(adapter);
}
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 21/45] drm/amdgpu: drop hw access in non-DC audio fini
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (19 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 20/45] wifi: mwifiex: Initialize the chan_stats array to zero Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 22/45] batman-adv: fix OOB read/write in network-coding decode Greg Kroah-Hartman
` (29 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable; +Cc: Greg Kroah-Hartman, patches, oushixiong, Alex Deucher
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Alex Deucher <alexander.deucher@amd.com>
commit 71403f58b4bb6c13b71c05505593a355f697fd94 upstream.
We already disable the audio pins in hw_fini so
there is no need to do it again in sw_fini.
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4481
Cc: oushixiong <oushixiong1025@163.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
(cherry picked from commit 5eeb16ca727f11278b2917fd4311a7d7efb0bbd6)
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 5 -----
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 5 -----
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 5 -----
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 5 -----
4 files changed, 20 deletions(-)
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -1445,17 +1445,12 @@ static int dce_v10_0_audio_init(struct a
static void dce_v10_0_audio_fini(struct amdgpu_device *adev)
{
- int i;
-
if (!amdgpu_audio)
return;
if (!adev->mode_info.audio.enabled)
return;
- for (i = 0; i < adev->mode_info.audio.num_pins; i++)
- dce_v10_0_audio_enable(adev, &adev->mode_info.audio.pin[i], false);
-
adev->mode_info.audio.enabled = false;
}
--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
@@ -1487,17 +1487,12 @@ static int dce_v11_0_audio_init(struct a
static void dce_v11_0_audio_fini(struct amdgpu_device *adev)
{
- int i;
-
if (!amdgpu_audio)
return;
if (!adev->mode_info.audio.enabled)
return;
- for (i = 0; i < adev->mode_info.audio.num_pins; i++)
- dce_v11_0_audio_enable(adev, &adev->mode_info.audio.pin[i], false);
-
adev->mode_info.audio.enabled = false;
}
--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
@@ -1358,17 +1358,12 @@ static int dce_v6_0_audio_init(struct am
static void dce_v6_0_audio_fini(struct amdgpu_device *adev)
{
- int i;
-
if (!amdgpu_audio)
return;
if (!adev->mode_info.audio.enabled)
return;
- for (i = 0; i < adev->mode_info.audio.num_pins; i++)
- dce_v6_0_audio_enable(adev, &adev->mode_info.audio.pin[i], false);
-
adev->mode_info.audio.enabled = false;
}
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -1408,17 +1408,12 @@ static int dce_v8_0_audio_init(struct am
static void dce_v8_0_audio_fini(struct amdgpu_device *adev)
{
- int i;
-
if (!amdgpu_audio)
return;
if (!adev->mode_info.audio.enabled)
return;
- for (i = 0; i < adev->mode_info.audio.num_pins; i++)
- dce_v8_0_audio_enable(adev, &adev->mode_info.audio.pin[i], false);
-
adev->mode_info.audio.enabled = false;
}
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 22/45] batman-adv: fix OOB read/write in network-coding decode
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (20 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 21/45] drm/amdgpu: drop hw access in non-DC audio fini Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 23/45] e1000e: fix heap overflow in e1000_set_eeprom Greg Kroah-Hartman
` (28 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Stanislav Fort, Stanislav Fort,
Sven Eckelmann, Simon Wunderlich
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Stanislav Fort <stanislav.fort@aisle.com>
commit d77b6ff0ce35a6d0b0b7b9581bc3f76d041d4087 upstream.
batadv_nc_skb_decode_packet() trusts coded_len and checks only against
skb->len. XOR starts at sizeof(struct batadv_unicast_packet), reducing
payload headroom, and the source skb length is not verified, allowing an
out-of-bounds read and a small out-of-bounds write.
Validate that coded_len fits within the payload area of both destination
and source sk_buffs before XORing.
Fixes: 2df5278b0267 ("batman-adv: network coding - receive coded packets and decode them")
Cc: stable@vger.kernel.org
Reported-by: Stanislav Fort <disclosure@aisle.com>
Signed-off-by: Stanislav Fort <stanislav.fort@aisle.com>
Signed-off-by: Sven Eckelmann <sven@narfation.org>
Signed-off-by: Simon Wunderlich <sw@simonwunderlich.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/batman-adv/network-coding.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/net/batman-adv/network-coding.c
+++ b/net/batman-adv/network-coding.c
@@ -1694,7 +1694,12 @@ batadv_nc_skb_decode_packet(struct batad
coding_len = ntohs(coded_packet_tmp.coded_len);
- if (coding_len > skb->len)
+ /* ensure dst buffer is large enough (payload only) */
+ if (coding_len + h_size > skb->len)
+ return NULL;
+
+ /* ensure src buffer is large enough (payload only) */
+ if (coding_len + h_size > nc_packet->skb->len)
return NULL;
/* Here the magic is reversed:
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 23/45] e1000e: fix heap overflow in e1000_set_eeprom
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (21 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 22/45] batman-adv: fix OOB read/write in network-coding decode Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 24/45] mm/khugepaged: fix ->anon_vma race Greg Kroah-Hartman
` (27 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Mikael Wessel, Vitaly Lifshits,
Mor Bar-Gabay, Tony Nguyen
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Vitaly Lifshits <vitaly.lifshits@intel.com>
commit 90fb7db49c6dbac961c6b8ebfd741141ffbc8545 upstream.
Fix a possible heap overflow in e1000_set_eeprom function by adding
input validation for the requested length of the change in the EEPROM.
In addition, change the variable type from int to size_t for better
code practices and rearrange declarations to RCT.
Cc: stable@vger.kernel.org
Fixes: bc7f75fa9788 ("[E1000E]: New pci-express e1000 driver (currently for ICH9 devices only)")
Co-developed-by: Mikael Wessel <post@mikaelkw.online>
Signed-off-by: Mikael Wessel <post@mikaelkw.online>
Signed-off-by: Vitaly Lifshits <vitaly.lifshits@intel.com>
Tested-by: Mor Bar-Gabay <morx.bar.gabay@intel.com>
Signed-off-by: Tony Nguyen <anthony.l.nguyen@intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/ethernet/intel/e1000e/ethtool.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
--- a/drivers/net/ethernet/intel/e1000e/ethtool.c
+++ b/drivers/net/ethernet/intel/e1000e/ethtool.c
@@ -552,12 +552,12 @@ static int e1000_set_eeprom(struct net_d
{
struct e1000_adapter *adapter = netdev_priv(netdev);
struct e1000_hw *hw = &adapter->hw;
+ size_t total_len, max_len;
u16 *eeprom_buff;
- void *ptr;
- int max_len;
+ int ret_val = 0;
int first_word;
int last_word;
- int ret_val = 0;
+ void *ptr;
u16 i;
if (eeprom->len == 0)
@@ -572,6 +572,10 @@ static int e1000_set_eeprom(struct net_d
max_len = hw->nvm.word_size * 2;
+ if (check_add_overflow(eeprom->offset, eeprom->len, &total_len) ||
+ total_len > max_len)
+ return -EFBIG;
+
first_word = eeprom->offset >> 1;
last_word = (eeprom->offset + eeprom->len - 1) >> 1;
eeprom_buff = kmalloc(max_len, GFP_KERNEL);
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 24/45] mm/khugepaged: fix ->anon_vma race
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (22 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 23/45] e1000e: fix heap overflow in e1000_set_eeprom Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 25/45] scsi: lpfc: Fix buffer free/clear order in deferred receive path Greg Kroah-Hartman
` (26 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Jann Horn, Zach OKeefe,
Kirill A. Shutemov, Yang Shi, David Hildenbrand, Andrew Morton,
Bjoern Doebel
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jann Horn <jannh@google.com>
commit 023f47a8250c6bdb4aebe744db4bf7f73414028b upstream.
If an ->anon_vma is attached to the VMA, collapse_and_free_pmd() requires
it to be locked.
Page table traversal is allowed under any one of the mmap lock, the
anon_vma lock (if the VMA is associated with an anon_vma), and the
mapping lock (if the VMA is associated with a mapping); and so to be
able to remove page tables, we must hold all three of them.
retract_page_tables() bails out if an ->anon_vma is attached, but does
this check before holding the mmap lock (as the comment above the check
explains).
If we racily merged an existing ->anon_vma (shared with a child
process) from a neighboring VMA, subsequent rmap traversals on pages
belonging to the child will be able to see the page tables that we are
concurrently removing while assuming that nothing else can access them.
Repeat the ->anon_vma check once we hold the mmap lock to ensure that
there really is no concurrent page table access.
Hitting this bug causes a lockdep warning in collapse_and_free_pmd(),
in the line "lockdep_assert_held_write(&vma->anon_vma->root->rwsem)".
It can also lead to use-after-free access.
Link: https://lore.kernel.org/linux-mm/CAG48ez3434wZBKFFbdx4M9j6eUwSUVPd4dxhzW_k_POneSDF+A@mail.gmail.com/
Link: https://lkml.kernel.org/r/20230111133351.807024-1-jannh@google.com
Fixes: f3f0e1d2150b ("khugepaged: add support of collapse for tmpfs/shmem pages")
Signed-off-by: Jann Horn <jannh@google.com>
Reported-by: Zach O'Keefe <zokeefe@google.com>
Acked-by: Kirill A. Shutemov <kirill.shutemov@intel.linux.com>
Reviewed-by: Yang Shi <shy828301@gmail.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
[doebel@amazon.de: Kernel 5.4 uses different control flow and locking
mechanism. Context adjustments.]
Signed-off-by: Bjoern Doebel <doebel@amazon.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
mm/khugepaged.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
--- a/mm/khugepaged.c
+++ b/mm/khugepaged.c
@@ -1476,7 +1476,7 @@ static void retract_page_tables(struct a
* has higher cost too. It would also probably require locking
* the anon_vma.
*/
- if (vma->anon_vma)
+ if (READ_ONCE(vma->anon_vma))
continue;
addr = vma->vm_start + ((pgoff - vma->vm_pgoff) << PAGE_SHIFT);
if (addr & ~HPAGE_PMD_MASK)
@@ -1498,6 +1498,18 @@ static void retract_page_tables(struct a
if (!khugepaged_test_exit(mm)) {
struct mmu_notifier_range range;
+ /*
+ * Re-check whether we have an ->anon_vma, because
+ * collapse_and_free_pmd() requires that either no
+ * ->anon_vma exists or the anon_vma is locked.
+ * We already checked ->anon_vma above, but that check
+ * is racy because ->anon_vma can be populated under the
+ * mmap_sem in read mode.
+ */
+ if (vma->anon_vma) {
+ up_write(&mm->mmap_sem);
+ continue;
+ }
mmu_notifier_range_init(&range,
MMU_NOTIFY_CLEAR, 0,
NULL, mm, addr,
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 25/45] scsi: lpfc: Fix buffer free/clear order in deferred receive path
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (23 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 24/45] mm/khugepaged: fix ->anon_vma race Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 26/45] mm/slub: avoid accessing metadata when pointer is invalid in object_err() Greg Kroah-Hartman
` (25 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, John Evans, Justin Tee,
Martin K. Petersen, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: John Evans <evans1210144@gmail.com>
[ Upstream commit 9dba9a45c348e8460da97c450cddf70b2056deb3 ]
Fix a use-after-free window by correcting the buffer release sequence in
the deferred receive path. The code freed the RQ buffer first and only
then cleared the context pointer under the lock. Concurrent paths (e.g.,
ABTS and the repost path) also inspect and release the same pointer under
the lock, so the old order could lead to double-free/UAF.
Note that the repost path already uses the correct pattern: detach the
pointer under the lock, then free it after dropping the lock. The
deferred path should do the same.
Fixes: 472e146d1cf3 ("scsi: lpfc: Correct upcalling nvmet_fc transport during io done downcall")
Cc: stable@vger.kernel.org
Signed-off-by: John Evans <evans1210144@gmail.com>
Link: https://lore.kernel.org/r/20250828044008.743-1-evans1210144@gmail.com
Reviewed-by: Justin Tee <justin.tee@broadcom.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
[ Adjust context ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/scsi/lpfc/lpfc_nvmet.c | 10 ++++++----
1 file changed, 6 insertions(+), 4 deletions(-)
--- a/drivers/scsi/lpfc/lpfc_nvmet.c
+++ b/drivers/scsi/lpfc/lpfc_nvmet.c
@@ -1172,7 +1172,7 @@ lpfc_nvmet_defer_rcv(struct nvmet_fc_tar
struct lpfc_nvmet_tgtport *tgtp;
struct lpfc_nvmet_rcv_ctx *ctxp =
container_of(rsp, struct lpfc_nvmet_rcv_ctx, ctx.fcp_req);
- struct rqb_dmabuf *nvmebuf = ctxp->rqb_buffer;
+ struct rqb_dmabuf *nvmebuf;
struct lpfc_hba *phba = ctxp->phba;
unsigned long iflag;
@@ -1180,13 +1180,18 @@ lpfc_nvmet_defer_rcv(struct nvmet_fc_tar
lpfc_nvmeio_data(phba, "NVMET DEFERRCV: xri x%x sz %d CPU %02x\n",
ctxp->oxid, ctxp->size, raw_smp_processor_id());
+ spin_lock_irqsave(&ctxp->ctxlock, iflag);
+ nvmebuf = ctxp->rqb_buffer;
if (!nvmebuf) {
+ spin_unlock_irqrestore(&ctxp->ctxlock, iflag);
lpfc_printf_log(phba, KERN_INFO, LOG_NVME_IOERR,
"6425 Defer rcv: no buffer oxid x%x: "
"flg %x ste %x\n",
ctxp->oxid, ctxp->flag, ctxp->state);
return;
}
+ ctxp->rqb_buffer = NULL;
+ spin_unlock_irqrestore(&ctxp->ctxlock, iflag);
tgtp = phba->targetport->private;
if (tgtp)
@@ -1194,9 +1199,6 @@ lpfc_nvmet_defer_rcv(struct nvmet_fc_tar
/* Free the nvmebuf since a new buffer already replaced it */
nvmebuf->hrq->rqbp->rqb_free_buffer(phba, nvmebuf);
- spin_lock_irqsave(&ctxp->ctxlock, iflag);
- ctxp->rqb_buffer = NULL;
- spin_unlock_irqrestore(&ctxp->ctxlock, iflag);
}
static void
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 26/45] mm/slub: avoid accessing metadata when pointer is invalid in object_err()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (24 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 25/45] scsi: lpfc: Fix buffer free/clear order in deferred receive path Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 27/45] cpufreq/sched: Explicitly synchronize limits_changed flag handling Greg Kroah-Hartman
` (24 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Li Qiong, Harry Yoo,
Matthew Wilcox (Oracle), Vlastimil Babka, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Li Qiong <liqiong@nfschina.com>
[ Upstream commit b4efccec8d06ceb10a7d34d7b1c449c569d53770 ]
object_err() reports details of an object for further debugging, such as
the freelist pointer, redzone, etc. However, if the pointer is invalid,
attempting to access object metadata can lead to a crash since it does
not point to a valid object.
One known path to the crash is when alloc_consistency_checks()
determines the pointer to the allocated object is invalid because of a
freelist corruption, and calls object_err() to report it. The debug code
should report and handle the corruption gracefully and not crash in the
process.
In case the pointer is NULL or check_valid_pointer() returns false for
the pointer, only print the pointer value and skip accessing metadata.
Fixes: 81819f0fc828 ("SLUB core")
Cc: <stable@vger.kernel.org>
Signed-off-by: Li Qiong <liqiong@nfschina.com>
Reviewed-by: Harry Yoo <harry.yoo@oracle.com>
Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
[ struct page + print_page_info() ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
mm/slub.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -719,7 +719,12 @@ void object_err(struct kmem_cache *s, st
u8 *object, char *reason)
{
slab_bug(s, "%s", reason);
- print_trailer(s, page, object);
+ if (!object || !check_valid_pointer(s, page, object)) {
+ print_page_info(page);
+ pr_err("Invalid pointer 0x%p\n", object);
+ } else {
+ print_trailer(s, page, object);
+ }
}
static __printf(3, 4) void slab_err(struct kmem_cache *s, struct page *page,
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 27/45] cpufreq/sched: Explicitly synchronize limits_changed flag handling
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (25 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 26/45] mm/slub: avoid accessing metadata when pointer is invalid in object_err() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 28/45] KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer Greg Kroah-Hartman
` (23 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Rafael J. Wysocki, Christian Loehle,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com>
[ Upstream commit 79443a7e9da3c9f68290a8653837e23aba0fa89f ]
The handling of the limits_changed flag in struct sugov_policy needs to
be explicitly synchronized to ensure that cpufreq policy limits updates
will not be missed in some cases.
Without that synchronization it is theoretically possible that
the limits_changed update in sugov_should_update_freq() will be
reordered with respect to the reads of the policy limits in
cpufreq_driver_resolve_freq() and in that case, if the limits_changed
update in sugov_limits() clobbers the one in sugov_should_update_freq(),
the new policy limits may not take effect for a long time.
Likewise, the limits_changed update in sugov_limits() may theoretically
get reordered with respect to the updates of the policy limits in
cpufreq_set_policy() and if sugov_should_update_freq() runs between
them, the policy limits change may be missed.
To ensure that the above situations will not take place, add memory
barriers preventing the reordering in question from taking place and
add READ_ONCE() and WRITE_ONCE() annotations around all of the
limits_changed flag updates to prevent the compiler from messing up
with that code.
Fixes: 600f5badb78c ("cpufreq: schedutil: Don't skip freq update when limits change")
Cc: 5.3+ <stable@vger.kernel.org> # 5.3+
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Christian Loehle <christian.loehle@arm.com>
Link: https://patch.msgid.link/3376719.44csPzL39Z@rjwysocki.net
[ Adjust context ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
kernel/sched/cpufreq_schedutil.c | 28 ++++++++++++++++++++++++----
1 file changed, 24 insertions(+), 4 deletions(-)
--- a/kernel/sched/cpufreq_schedutil.c
+++ b/kernel/sched/cpufreq_schedutil.c
@@ -88,9 +88,20 @@ static bool sugov_should_update_freq(str
if (!cpufreq_this_cpu_can_update(sg_policy->policy))
return false;
- if (unlikely(sg_policy->limits_changed)) {
- sg_policy->limits_changed = false;
+ if (unlikely(READ_ONCE(sg_policy->limits_changed))) {
+ WRITE_ONCE(sg_policy->limits_changed, false);
sg_policy->need_freq_update = true;
+
+ /*
+ * The above limits_changed update must occur before the reads
+ * of policy limits in cpufreq_driver_resolve_freq() or a policy
+ * limits update might be missed, so use a memory barrier to
+ * ensure it.
+ *
+ * This pairs with the write memory barrier in sugov_limits().
+ */
+ smp_mb();
+
return true;
}
@@ -444,7 +455,7 @@ static inline bool sugov_cpu_is_busy(str
static inline void ignore_dl_rate_limit(struct sugov_cpu *sg_cpu, struct sugov_policy *sg_policy)
{
if (cpu_bw_dl(cpu_rq(sg_cpu->cpu)) > sg_cpu->bw_dl)
- sg_policy->limits_changed = true;
+ WRITE_ONCE(sg_policy->limits_changed, true);
}
static void sugov_update_single(struct update_util_data *hook, u64 time,
@@ -894,7 +905,16 @@ static void sugov_limits(struct cpufreq_
mutex_unlock(&sg_policy->work_lock);
}
- sg_policy->limits_changed = true;
+ /*
+ * The limits_changed update below must take place before the updates
+ * of policy limits in cpufreq_set_policy() or a policy limits update
+ * might be missed, so use a memory barrier to ensure it.
+ *
+ * This pairs with the memory barrier in sugov_should_update_freq().
+ */
+ smp_wmb();
+
+ WRITE_ONCE(sg_policy->limits_changed, true);
}
struct cpufreq_governor schedutil_gov = {
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 28/45] KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (26 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 27/45] cpufreq/sched: Explicitly synchronize limits_changed flag handling Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 29/45] iio: chemical: pms7003: use aligned_s64 for timestamp Greg Kroah-Hartman
` (22 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Sean Christopherson, Paolo Bonzini,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Sean Christopherson <seanjc@google.com>
[ Upstream commit f1fb088d9cecde5c3066d8ff8846789667519b7d ]
Take irqfds.lock when adding/deleting an IRQ bypass producer to ensure
irqfd->producer isn't modified while kvm_irq_routing_update() is running.
The only lock held when a producer is added/removed is irqbypass's mutex.
Fixes: 872768800652 ("KVM: x86: select IRQ_BYPASS_MANAGER")
Cc: stable@vger.kernel.org
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-ID: <20250404193923.1413163-5-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
[ Adjust context ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
arch/x86/kvm/x86.c | 16 ++++++++++++++--
1 file changed, 14 insertions(+), 2 deletions(-)
--- a/arch/x86/kvm/x86.c
+++ b/arch/x86/kvm/x86.c
@@ -10394,11 +10394,18 @@ int kvm_arch_irq_bypass_add_producer(str
{
struct kvm_kernel_irqfd *irqfd =
container_of(cons, struct kvm_kernel_irqfd, consumer);
+ struct kvm *kvm = irqfd->kvm;
+ int ret;
+ spin_lock_irq(&kvm->irqfds.lock);
irqfd->producer = prod;
- return kvm_x86_ops->update_pi_irte(irqfd->kvm,
+ ret = kvm_x86_ops->update_pi_irte(irqfd->kvm,
prod->irq, irqfd->gsi, 1);
+
+ spin_unlock_irq(&kvm->irqfds.lock);
+
+ return ret;
}
void kvm_arch_irq_bypass_del_producer(struct irq_bypass_consumer *cons,
@@ -10407,9 +10414,9 @@ void kvm_arch_irq_bypass_del_producer(st
int ret;
struct kvm_kernel_irqfd *irqfd =
container_of(cons, struct kvm_kernel_irqfd, consumer);
+ struct kvm *kvm = irqfd->kvm;
WARN_ON(irqfd->producer != prod);
- irqfd->producer = NULL;
/*
* When producer of consumer is unregistered, we change back to
@@ -10417,10 +10424,15 @@ void kvm_arch_irq_bypass_del_producer(st
* when the irq is masked/disabled or the consumer side (KVM
* int this case doesn't want to receive the interrupts.
*/
+ spin_lock_irq(&kvm->irqfds.lock);
+ irqfd->producer = NULL;
+
ret = kvm_x86_ops->update_pi_irte(irqfd->kvm, prod->irq, irqfd->gsi, 0);
if (ret)
printk(KERN_INFO "irq bypass consumer (token %p) unregistration"
" fails: %d\n", irqfd->consumer.token, ret);
+
+ spin_unlock_irq(&kvm->irqfds.lock);
}
int kvm_arch_update_irqfd_routing(struct kvm *kvm, unsigned int host_irq,
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 29/45] iio: chemical: pms7003: use aligned_s64 for timestamp
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (27 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 28/45] KVM: x86: Take irqfds.lock when adding/deleting IRQ bypass producer Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 30/45] iio: light: opt3001: fix deadlock due to concurrent flag access Greg Kroah-Hartman
` (21 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, David Lechner, Nuno Sá, Stable,
Jonathan Cameron, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: David Lechner <dlechner@baylibre.com>
[ Upstream commit 6ffa698674053e82e811520642db2650d00d2c01 ]
Follow the pattern of other drivers and use aligned_s64 for the
timestamp. This will ensure that the timestamp is correctly aligned on
all architectures.
Also move the unaligned.h header while touching this since it was the
only one not in alphabetical order.
Fixes: 13e945631c2f ("iio:chemical:pms7003: Fix timestamp alignment and prevent data leak.")
Signed-off-by: David Lechner <dlechner@baylibre.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250417-iio-more-timestamp-alignment-v1-4-eafac1e22318@baylibre.com
Cc: <Stable@vger.kernel.org>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
[ linux/unaligned.h => asm/unaligned.h ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iio/chemical/pms7003.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/iio/chemical/pms7003.c
+++ b/drivers/iio/chemical/pms7003.c
@@ -5,7 +5,6 @@
* Copyright (c) Tomasz Duszynski <tduszyns@gmail.com>
*/
-#include <asm/unaligned.h>
#include <linux/completion.h>
#include <linux/device.h>
#include <linux/errno.h>
@@ -19,6 +18,8 @@
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/serdev.h>
+#include <linux/types.h>
+#include <asm/unaligned.h>
#define PMS7003_DRIVER_NAME "pms7003"
@@ -76,7 +77,7 @@ struct pms7003_state {
/* Used to construct scan to push to the IIO buffer */
struct {
u16 data[3]; /* PM1, PM2P5, PM10 */
- s64 ts;
+ aligned_s64 ts;
} scan;
};
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 30/45] iio: light: opt3001: fix deadlock due to concurrent flag access
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (28 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 29/45] iio: chemical: pms7003: use aligned_s64 for timestamp Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 31/45] gpio: pca953x: fix IRQ storm on system wake up Greg Kroah-Hartman
` (20 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Luca Ceresoli, Jonathan Cameron,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Luca Ceresoli <luca.ceresoli@bootlin.com>
[ Upstream commit f063a28002e3350088b4577c5640882bf4ea17ea ]
The threaded IRQ function in this driver is reading the flag twice: once to
lock a mutex and once to unlock it. Even though the code setting the flag
is designed to prevent it, there are subtle cases where the flag could be
true at the mutex_lock stage and false at the mutex_unlock stage. This
results in the mutex not being unlocked, resulting in a deadlock.
Fix it by making the opt3001_irq() code generally more robust, reading the
flag into a variable and using the variable value at both stages.
Fixes: 94a9b7b1809f ("iio: light: add support for TI's opt3001 light sensor")
Cc: stable@vger.kernel.org
Signed-off-by: Luca Ceresoli <luca.ceresoli@bootlin.com>
Link: https://patch.msgid.link/20250321-opt3001-irq-fix-v1-1-6c520d851562@bootlin.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
[ Adjust context ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/iio/light/opt3001.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/iio/light/opt3001.c
+++ b/drivers/iio/light/opt3001.c
@@ -691,8 +691,9 @@ static irqreturn_t opt3001_irq(int irq,
struct opt3001 *opt = iio_priv(iio);
int ret;
bool wake_result_ready_queue = false;
+ bool ok_to_ignore_lock = opt->ok_to_ignore_lock;
- if (!opt->ok_to_ignore_lock)
+ if (!ok_to_ignore_lock)
mutex_lock(&opt->lock);
ret = i2c_smbus_read_word_swapped(opt->client, OPT3001_CONFIGURATION);
@@ -729,7 +730,7 @@ static irqreturn_t opt3001_irq(int irq,
}
out:
- if (!opt->ok_to_ignore_lock)
+ if (!ok_to_ignore_lock)
mutex_unlock(&opt->lock);
if (wake_result_ready_queue)
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 31/45] gpio: pca953x: fix IRQ storm on system wake up
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (29 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 30/45] iio: light: opt3001: fix deadlock due to concurrent flag access Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 32/45] ALSA: hda/realtek - Add new HP ZBook laptop with micmute led fixup Greg Kroah-Hartman
` (19 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Emanuele Ghidoli, Francesco Dolcini,
Andy Shevchenko, Geert Uytterhoeven, Bartosz Golaszewski,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
[ Upstream commit 3e38f946062b4845961ab86b726651b4457b2af8 ]
If an input changes state during wake-up and is used as an interrupt
source, the IRQ handler reads the volatile input register to clear the
interrupt mask and deassert the IRQ line. However, the IRQ handler is
triggered before access to the register is granted, causing the read
operation to fail.
As a result, the IRQ handler enters a loop, repeatedly printing the
"failed reading register" message, until `pca953x_resume()` is eventually
called, which restores the driver context and enables access to
registers.
Fix by disabling the IRQ line before entering suspend mode, and
re-enabling it after the driver context is restored in `pca953x_resume()`.
An IRQ can be disabled with disable_irq() and still wake the system as
long as the IRQ has wake enabled, so the wake-up functionality is
preserved.
Fixes: b76574300504 ("gpio: pca953x: Restore registers after suspend/resume cycle")
Cc: stable@vger.kernel.org
Signed-off-by: Emanuele Ghidoli <emanuele.ghidoli@toradex.com>
Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Tested-by: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20250512095441.31645-1-francesco@dolcini.it
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
[ Apply directly to suspend/resume functions ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/gpio/gpio-pca953x.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -1199,6 +1199,9 @@ static int pca953x_suspend(struct device
struct pca953x_chip *chip = dev_get_drvdata(dev);
mutex_lock(&chip->i2c_lock);
+ /* Disable IRQ to prevent early triggering while regmap "cache only" is on */
+ if (chip->client->irq > 0)
+ disable_irq(chip->client->irq);
regcache_cache_only(chip->regmap, true);
mutex_unlock(&chip->i2c_lock);
@@ -1224,6 +1227,8 @@ static int pca953x_resume(struct device
}
mutex_lock(&chip->i2c_lock);
+ if (chip->client->irq > 0)
+ enable_irq(chip->client->irq);
regcache_cache_only(chip->regmap, false);
regcache_mark_dirty(chip->regmap);
ret = pca953x_regcache_sync(dev);
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 32/45] ALSA: hda/realtek - Add new HP ZBook laptop with micmute led fixup
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (30 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 31/45] gpio: pca953x: fix IRQ storm on system wake up Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 33/45] dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status() Greg Kroah-Hartman
` (18 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable; +Cc: Greg Kroah-Hartman, patches, Chris Chiu, Takashi Iwai,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Chris Chiu <chris.chiu@canonical.com>
[ Upstream commit f709b78aecab519dbcefa9a6603b94ad18c553e3 ]
New HP ZBook with Realtek HDA codec ALC3247 needs the quirk
ALC236_FIXUP_HP_GPIO_LED to fix the micmute LED.
Signed-off-by: Chris Chiu <chris.chiu@canonical.com>
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20250520132101.120685-1-chris.chiu@canonical.com
Signed-off-by: Takashi Iwai <tiwai@suse.de>
[ Adjust context ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_realtek.c | 1 +
1 file changed, 1 insertion(+)
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -8390,6 +8390,7 @@ static const struct snd_pci_quirk alc269
SND_PCI_QUIRK(0x103c, 0x877d, "HP", ALC236_FIXUP_HP_MUTE_LED),
SND_PCI_QUIRK(0x103c, 0x87e5, "HP ProBook 440 G8 Notebook PC", ALC236_FIXUP_HP_GPIO_LED),
SND_PCI_QUIRK(0x103c, 0x89aa, "HP EliteBook 630 G9", ALC236_FIXUP_HP_GPIO_LED),
+ SND_PCI_QUIRK(0x103c, 0x8e1d, "HP ZBook X Gli 16 G12", ALC236_FIXUP_HP_GPIO_LED),
SND_PCI_QUIRK(0x1043, 0x103e, "ASUS X540SA", ALC256_FIXUP_ASUS_MIC),
SND_PCI_QUIRK(0x1043, 0x103f, "ASUS TX300", ALC282_FIXUP_ASUS_TX300),
SND_PCI_QUIRK(0x1043, 0x106d, "Asus K53BE", ALC269_FIXUP_LIMIT_INT_MIC_BOOST),
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 33/45] dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (31 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 32/45] ALSA: hda/realtek - Add new HP ZBook laptop with micmute led fixup Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 34/45] net: dsa: microchip: update tag_ksz masks for KSZ9477 family Greg Kroah-Hartman
` (17 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Qiu-ji Chen,
AngeloGioacchino Del Regno, Vinod Koul, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Qiu-ji Chen <chenqiuji666@gmail.com>
[ Upstream commit 157ae5ffd76a2857ccb4b7ce40bc5a344ca00395 ]
Fix a potential deadlock bug. Observe that in the mtk-cqdma.c
file, functions like mtk_cqdma_issue_pending() and
mtk_cqdma_free_active_desc() properly acquire the pc lock before the vc
lock when handling pc and vc fields. However, mtk_cqdma_tx_status()
violates this order by first acquiring the vc lock before invoking
mtk_cqdma_find_active_desc(), which subsequently takes the pc lock. This
reversed locking sequence (vc → pc) contradicts the established
pc → vc order and creates deadlock risks.
Fix the issue by moving the vc lock acquisition code from
mtk_cqdma_find_active_desc() to mtk_cqdma_tx_status(). Ensure the pc lock
is acquired before the vc lock in the calling function to maintain correct
locking hierarchy. Note that since mtk_cqdma_find_active_desc() is a
static function with only one caller (mtk_cqdma_tx_status()), this
modification safely eliminates the deadlock possibility without affecting
other components.
This possible bug is found by an experimental static analysis tool
developed by our team. This tool analyzes the locking APIs to extract
function pairs that can be concurrently executed, and then analyzes the
instructions in the paired functions to identify possible concurrency bugs
including deadlocks, data races and atomicity violations.
Fixes: b1f01e48df5a ("dmaengine: mediatek: Add MediaTek Command-Queue DMA controller for MT6765 SoC")
Cc: stable@vger.kernel.org
Signed-off-by: Qiu-ji Chen <chenqiuji666@gmail.com>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20250508073634.3719-1-chenqiuji666@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/dma/mediatek/mtk-cqdma.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
--- a/drivers/dma/mediatek/mtk-cqdma.c
+++ b/drivers/dma/mediatek/mtk-cqdma.c
@@ -421,15 +421,11 @@ static struct virt_dma_desc *mtk_cqdma_f
{
struct mtk_cqdma_vchan *cvc = to_cqdma_vchan(c);
struct virt_dma_desc *vd;
- unsigned long flags;
- spin_lock_irqsave(&cvc->pc->lock, flags);
list_for_each_entry(vd, &cvc->pc->queue, node)
if (vd->tx.cookie == cookie) {
- spin_unlock_irqrestore(&cvc->pc->lock, flags);
return vd;
}
- spin_unlock_irqrestore(&cvc->pc->lock, flags);
list_for_each_entry(vd, &cvc->vc.desc_issued, node)
if (vd->tx.cookie == cookie)
@@ -453,9 +449,11 @@ static enum dma_status mtk_cqdma_tx_stat
if (ret == DMA_COMPLETE || !txstate)
return ret;
+ spin_lock_irqsave(&cvc->pc->lock, flags);
spin_lock_irqsave(&cvc->vc.lock, flags);
vd = mtk_cqdma_find_active_desc(c, cookie);
spin_unlock_irqrestore(&cvc->vc.lock, flags);
+ spin_unlock_irqrestore(&cvc->pc->lock, flags);
if (vd) {
cvd = to_cqdma_vdesc(vd);
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 34/45] net: dsa: microchip: update tag_ksz masks for KSZ9477 family
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (32 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 33/45] dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 35/45] net: dsa: microchip: linearize skb for tail-tagging switches Greg Kroah-Hartman
` (16 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Pieter Van Trappen, Florian Fainelli,
Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Pieter Van Trappen <pieter.van.trappen@cern.ch>
[ Upstream commit 3f464b193d40e49299dcd087b10cc3b77cbbea68 ]
Remove magic number 7 by introducing a GENMASK macro instead.
Remove magic number 0x80 by using the BIT macro instead.
Signed-off-by: Pieter Van Trappen <pieter.van.trappen@cern.ch>
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
Link: https://patch.msgid.link/20240909134301.75448-1-vtpieter@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Stable-dep-of: ba54bce747fa ("net: dsa: microchip: linearize skb for tail-tagging switches")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/dsa/tag_ksz.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/net/dsa/tag_ksz.c
+++ b/net/dsa/tag_ksz.c
@@ -149,8 +149,9 @@ MODULE_ALIAS_DSA_TAG_DRIVER(DSA_TAG_PROT
#define KSZ9477_INGRESS_TAG_LEN 2
#define KSZ9477_PTP_TAG_LEN 4
-#define KSZ9477_PTP_TAG_INDICATION 0x80
+#define KSZ9477_PTP_TAG_INDICATION BIT(7)
+#define KSZ9477_TAIL_TAG_EG_PORT_M GENMASK(2, 0)
#define KSZ9477_TAIL_TAG_OVERRIDE BIT(9)
#define KSZ9477_TAIL_TAG_LOOKUP BIT(10)
@@ -185,7 +186,7 @@ static struct sk_buff *ksz9477_rcv(struc
{
/* Tag decoding */
u8 *tag = skb_tail_pointer(skb) - KSZ_EGRESS_TAG_LEN;
- unsigned int port = tag[0] & 7;
+ unsigned int port = tag[0] & KSZ9477_TAIL_TAG_EG_PORT_M;
unsigned int len = KSZ_EGRESS_TAG_LEN;
/* Extra 4-bytes PTP timestamp */
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 35/45] net: dsa: microchip: linearize skb for tail-tagging switches
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (33 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 34/45] net: dsa: microchip: update tag_ksz masks for KSZ9477 family Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 36/45] vmxnet3: update MTU after device quiesce Greg Kroah-Hartman
` (15 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Jakob Unterwurzacher,
Vladimir Oltean, Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Jakob Unterwurzacher <jakobunt@gmail.com>
[ Upstream commit ba54bce747fa9e07896c1abd9b48545f7b4b31d2 ]
The pointer arithmentic for accessing the tail tag only works
for linear skbs.
For nonlinear skbs, it reads uninitialized memory inside the
skb headroom, essentially randomizing the tag. I have observed
it gets set to 6 most of the time.
Example where ksz9477_rcv thinks that the packet from port 1 comes from port 6
(which does not exist for the ksz9896 that's in use), dropping the packet.
Debug prints added by me (not included in this patch):
[ 256.645337] ksz9477_rcv:323 tag0=6
[ 256.645349] skb len=47 headroom=78 headlen=0 tailroom=0
mac=(64,14) mac_len=14 net=(78,0) trans=78
shinfo(txflags=0 nr_frags=1 gso(size=0 type=0 segs=0))
csum(0x0 start=0 offset=0 ip_summed=0 complete_sw=0 valid=0 level=0)
hash(0x0 sw=0 l4=0) proto=0x00f8 pkttype=1 iif=3
priority=0x0 mark=0x0 alloc_cpu=0 vlan_all=0x0
encapsulation=0 inner(proto=0x0000, mac=0, net=0, trans=0)
[ 256.645377] dev name=end1 feat=0x0002e10200114bb3
[ 256.645386] skb headroom: 00000000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 256.645395] skb headroom: 00000010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 256.645403] skb headroom: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 256.645411] skb headroom: 00000030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
[ 256.645420] skb headroom: 00000040: ff ff ff ff ff ff 00 1c 19 f2 e2 db 08 06
[ 256.645428] skb frag: 00000000: 00 01 08 00 06 04 00 01 00 1c 19 f2 e2 db 0a 02
[ 256.645436] skb frag: 00000010: 00 83 00 00 00 00 00 00 0a 02 a0 2f 00 00 00 00
[ 256.645444] skb frag: 00000020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01
[ 256.645452] ksz_common_rcv:92 dsa_conduit_find_user returned NULL
Call skb_linearize before trying to access the tag.
This patch fixes ksz9477_rcv which is used by the ksz9896 I have at
hand, and also applies the same fix to ksz8795_rcv which seems to have
the same problem.
Signed-off-by: Jakob Unterwurzacher <jakob.unterwurzacher@cherry.de>
CC: stable@vger.kernel.org
Fixes: 016e43a26bab ("net: dsa: ksz: Add KSZ8795 tag code")
Fixes: 8b8010fb7876 ("dsa: add support for Microchip KSZ tail tagging")
Reviewed-by: Vladimir Oltean <olteanv@gmail.com>
Link: https://patch.msgid.link/20250515072920.2313014-1-jakob.unterwurzacher@cherry.de
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
net/dsa/tag_ksz.c | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
--- a/net/dsa/tag_ksz.c
+++ b/net/dsa/tag_ksz.c
@@ -115,7 +115,12 @@ static struct sk_buff *ksz8795_xmit(stru
static struct sk_buff *ksz8795_rcv(struct sk_buff *skb, struct net_device *dev,
struct packet_type *pt)
{
- u8 *tag = skb_tail_pointer(skb) - KSZ_EGRESS_TAG_LEN;
+ u8 *tag;
+
+ if (skb_linearize(skb))
+ return NULL;
+
+ tag = skb_tail_pointer(skb) - KSZ_EGRESS_TAG_LEN;
return ksz_common_rcv(skb, dev, tag[0] & 7, KSZ_EGRESS_TAG_LEN);
}
@@ -184,10 +189,16 @@ static struct sk_buff *ksz9477_xmit(stru
static struct sk_buff *ksz9477_rcv(struct sk_buff *skb, struct net_device *dev,
struct packet_type *pt)
{
- /* Tag decoding */
- u8 *tag = skb_tail_pointer(skb) - KSZ_EGRESS_TAG_LEN;
- unsigned int port = tag[0] & KSZ9477_TAIL_TAG_EG_PORT_M;
unsigned int len = KSZ_EGRESS_TAG_LEN;
+ unsigned int port;
+ u8 *tag;
+
+ if (skb_linearize(skb))
+ return NULL;
+
+ /* Tag decoding */
+ tag = skb_tail_pointer(skb) - KSZ_EGRESS_TAG_LEN;
+ port = tag[0] & KSZ9477_TAIL_TAG_EG_PORT_M;
/* Extra 4-bytes PTP timestamp */
if (tag[0] & KSZ9477_PTP_TAG_INDICATION)
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 36/45] vmxnet3: update MTU after device quiesce
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (34 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 35/45] net: dsa: microchip: linearize skb for tail-tagging switches Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 37/45] randstruct: gcc-plugin: Remove bogus void member Greg Kroah-Hartman
` (14 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Ronak Doshi, Guolin Yang,
Jakub Kicinski, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Ronak Doshi <ronak.doshi@broadcom.com>
[ Upstream commit 43f0999af011fba646e015f0bb08b6c3002a0170 ]
Currently, when device mtu is updated, vmxnet3 updates netdev mtu, quiesces
the device and then reactivates it for the ESXi to know about the new mtu.
So, technically the OS stack can start using the new mtu before ESXi knows
about the new mtu.
This can lead to issues for TSO packets which use mss as per the new mtu
configured. This patch fixes this issue by moving the mtu write after
device quiesce.
Cc: stable@vger.kernel.org
Fixes: d1a890fa37f2 ("net: VMware virtual Ethernet NIC driver: vmxnet3")
Signed-off-by: Ronak Doshi <ronak.doshi@broadcom.com>
Acked-by: Guolin Yang <guolin.yang@broadcom.com>
Changes v1-> v2:
Moved MTU write after destroy of rx rings
Link: https://patch.msgid.link/20250515190457.8597-1-ronak.doshi@broadcom.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
[ no WRITE_ONCE() in older trees ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/net/vmxnet3/vmxnet3_drv.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
--- a/drivers/net/vmxnet3/vmxnet3_drv.c
+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
@@ -2998,8 +2998,6 @@ vmxnet3_change_mtu(struct net_device *ne
struct vmxnet3_adapter *adapter = netdev_priv(netdev);
int err = 0;
- netdev->mtu = new_mtu;
-
/*
* Reset_work may be in the middle of resetting the device, wait for its
* completion.
@@ -3013,6 +3011,7 @@ vmxnet3_change_mtu(struct net_device *ne
/* we need to re-create the rx queue based on the new mtu */
vmxnet3_rq_destroy_all(adapter);
+ netdev->mtu = new_mtu;
vmxnet3_adjust_rx_ring_size(adapter);
err = vmxnet3_rq_create_all(adapter);
if (err) {
@@ -3029,6 +3028,8 @@ vmxnet3_change_mtu(struct net_device *ne
"Closing it\n", err);
goto out;
}
+ } else {
+ netdev->mtu = new_mtu;
}
out:
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 37/45] randstruct: gcc-plugin: Remove bogus void member
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (35 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 36/45] vmxnet3: update MTU after device quiesce Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 38/45] randstruct: gcc-plugin: Fix attribute addition Greg Kroah-Hartman
` (13 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Dr. David Alan Gilbert, Mark Brown,
WangYuli, Kees Cook, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kees Cook <kees@kernel.org>
[ Upstream commit e136a4062174a9a8d1c1447ca040ea81accfa6a8 ]
When building the randomized replacement tree of struct members, the
randstruct GCC plugin would insert, as the first member, a 0-sized void
member. This appears as though it was done to catch non-designated
("unnamed") static initializers, which wouldn't be stable since they
depend on the original struct layout order.
This was accomplished by having the side-effect of the "void member"
tripping an assert in GCC internals (count_type_elements) if the member
list ever needed to be counted (e.g. for figuring out the order of members
during a non-designated initialization), which would catch impossible type
(void) in the struct:
security/landlock/fs.c: In function ‘hook_file_ioctl_common’:
security/landlock/fs.c:1745:61: internal compiler error: in count_type_elements, at expr.cc:7075
1745 | .u.op = &(struct lsm_ioctlop_audit) {
| ^
static HOST_WIDE_INT
count_type_elements (const_tree type, bool for_ctor_p)
{
switch (TREE_CODE (type))
...
case VOID_TYPE:
default:
gcc_unreachable ();
}
}
However this is a redundant safety measure since randstruct uses the
__designated_initializer attribute both internally and within the
__randomized_layout attribute macro so that this would be enforced
by the compiler directly even when randstruct was not enabled (via
-Wdesignated-init).
A recent change in Landlock ended up tripping the same member counting
routine when using a full-struct copy initializer as part of an anonymous
initializer. This, however, is a false positive as the initializer is
copying between identical structs (and hence identical layouts). The
"path" member is "struct path", a randomized struct, and is being copied
to from another "struct path", the "f_path" member:
landlock_log_denial(landlock_cred(file->f_cred), &(struct landlock_request) {
.type = LANDLOCK_REQUEST_FS_ACCESS,
.audit = {
.type = LSM_AUDIT_DATA_IOCTL_OP,
.u.op = &(struct lsm_ioctlop_audit) {
.path = file->f_path,
.cmd = cmd,
},
},
...
As can be seen with the coming randstruct KUnit test, there appears to
be no behavioral problems with this kind of initialization when the void
member is removed from the randstruct GCC plugin, so remove it.
Reported-by: "Dr. David Alan Gilbert" <linux@treblig.org>
Closes: https://lore.kernel.org/lkml/Z_PRaKx7q70MKgCA@gallifrey/
Reported-by: Mark Brown <broonie@kernel.org>
Closes: https://lore.kernel.org/lkml/20250407-kbuild-disable-gcc-plugins-v1-1-5d46ae583f5e@kernel.org/
Reported-by: WangYuli <wangyuli@uniontech.com>
Closes: https://lore.kernel.org/lkml/337D5D4887277B27+3c677db3-a8b9-47f0-93a4-7809355f1381@uniontech.com/
Fixes: 313dd1b62921 ("gcc-plugins: Add the randstruct plugin")
Signed-off-by: Kees Cook <kees@kernel.org>
Stable-dep-of: f39f18f3c353 ("randstruct: gcc-plugin: Fix attribute addition")
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
scripts/gcc-plugins/randomize_layout_plugin.c | 18 +-----------------
1 file changed, 1 insertion(+), 17 deletions(-)
--- a/scripts/gcc-plugins/randomize_layout_plugin.c
+++ b/scripts/gcc-plugins/randomize_layout_plugin.c
@@ -377,29 +377,13 @@ static int relayout_struct(tree type)
shuffle(type, (tree *)newtree, shuffle_length);
- /*
- * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
- * as gcc provides no other way to detect such code
- */
- list = make_node(FIELD_DECL);
- TREE_CHAIN(list) = newtree[0];
- TREE_TYPE(list) = void_type_node;
- DECL_SIZE(list) = bitsize_zero_node;
- DECL_NONADDRESSABLE_P(list) = 1;
- DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
- DECL_SIZE_UNIT(list) = size_zero_node;
- DECL_FIELD_OFFSET(list) = size_zero_node;
- DECL_CONTEXT(list) = type;
- // to satisfy the constify plugin
- TREE_READONLY(list) = 1;
-
for (i = 0; i < num_fields - 1; i++)
TREE_CHAIN(newtree[i]) = newtree[i+1];
TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
main_variant = TYPE_MAIN_VARIANT(type);
for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
- TYPE_FIELDS(variant) = list;
+ TYPE_FIELDS(variant) = newtree[0];
TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("designated_init"), NULL_TREE, TYPE_ATTRIBUTES(variant));
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 38/45] randstruct: gcc-plugin: Fix attribute addition
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (36 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 37/45] randstruct: gcc-plugin: Remove bogus void member Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 39/45] ALSA: hda/hdmi: Add pin fix for another HP EliteDesk 800 G4 model Greg Kroah-Hartman
` (12 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Thiago Jung Bauermann, Ingo Saitz,
Kees Cook, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Kees Cook <kees@kernel.org>
[ Upstream commit f39f18f3c3531aa802b58a20d39d96e82eb96c14 ]
Based on changes in the 2021 public version of the randstruct
out-of-tree GCC plugin[1], more carefully update the attributes on
resulting decls, to avoid tripping checks in GCC 15's
comptypes_check_enum_int() when it has been configured with
"--enable-checking=misc":
arch/arm64/kernel/kexec_image.c:132:14: internal compiler error: in comptypes_check_enum_int, at c/c-typeck.cc:1519
132 | const struct kexec_file_ops kexec_image_ops = {
| ^~~~~~~~~~~~~~
internal_error(char const*, ...), at gcc/gcc/diagnostic-global-context.cc:517
fancy_abort(char const*, int, char const*), at gcc/gcc/diagnostic.cc:1803
comptypes_check_enum_int(tree_node*, tree_node*, bool*), at gcc/gcc/c/c-typeck.cc:1519
...
Link: https://archive.org/download/grsecurity/grsecurity-3.1-5.10.41-202105280954.patch.gz [1]
Reported-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Closes: https://github.com/KSPP/linux/issues/367
Closes: https://lore.kernel.org/lkml/20250530000646.104457-1-thiago.bauermann@linaro.org/
Reported-by: Ingo Saitz <ingo@hannover.ccc.de>
Closes: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1104745
Fixes: 313dd1b62921 ("gcc-plugins: Add the randstruct plugin")
Tested-by: Thiago Jung Bauermann <thiago.bauermann@linaro.org>
Link: https://lore.kernel.org/r/20250530221824.work.623-kees@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
scripts/gcc-plugins/gcc-common.h | 32 ++++++++++++++++++++++++++
scripts/gcc-plugins/randomize_layout_plugin.c | 22 ++++++++---------
2 files changed, 43 insertions(+), 11 deletions(-)
--- a/scripts/gcc-plugins/gcc-common.h
+++ b/scripts/gcc-plugins/gcc-common.h
@@ -182,6 +182,38 @@ static inline tree build_const_char_stri
return cstr;
}
+static inline void __add_type_attr(tree type, const char *attr, tree args)
+{
+ tree oldattr;
+
+ if (type == NULL_TREE)
+ return;
+ oldattr = lookup_attribute(attr, TYPE_ATTRIBUTES(type));
+ if (oldattr != NULL_TREE) {
+ gcc_assert(TREE_VALUE(oldattr) == args || TREE_VALUE(TREE_VALUE(oldattr)) == TREE_VALUE(args));
+ return;
+ }
+
+ TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
+ TYPE_ATTRIBUTES(type) = tree_cons(get_identifier(attr), args, TYPE_ATTRIBUTES(type));
+}
+
+static inline void add_type_attr(tree type, const char *attr, tree args)
+{
+ tree main_variant = TYPE_MAIN_VARIANT(type);
+
+ __add_type_attr(TYPE_CANONICAL(type), attr, args);
+ __add_type_attr(TYPE_CANONICAL(main_variant), attr, args);
+ __add_type_attr(main_variant, attr, args);
+
+ for (type = TYPE_NEXT_VARIANT(main_variant); type; type = TYPE_NEXT_VARIANT(type)) {
+ if (!lookup_attribute(attr, TYPE_ATTRIBUTES(type)))
+ TYPE_ATTRIBUTES(type) = TYPE_ATTRIBUTES(main_variant);
+
+ __add_type_attr(TYPE_CANONICAL(type), attr, args);
+ }
+}
+
#define PASS_INFO(NAME, REF, ID, POS) \
struct register_pass_info NAME##_pass_info = { \
.pass = make_##NAME##_pass(), \
--- a/scripts/gcc-plugins/randomize_layout_plugin.c
+++ b/scripts/gcc-plugins/randomize_layout_plugin.c
@@ -95,6 +95,9 @@ static tree handle_randomize_layout_attr
if (TYPE_P(*node)) {
type = *node;
+ } else if (TREE_CODE(*node) == FIELD_DECL) {
+ *no_add_attrs = false;
+ return NULL_TREE;
} else {
gcc_assert(TREE_CODE(*node) == TYPE_DECL);
type = TREE_TYPE(*node);
@@ -381,15 +384,14 @@ static int relayout_struct(tree type)
TREE_CHAIN(newtree[i]) = newtree[i+1];
TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
+ add_type_attr(type, "randomize_performed", NULL_TREE);
+ add_type_attr(type, "designated_init", NULL_TREE);
+ if (has_flexarray)
+ add_type_attr(type, "has_flexarray", NULL_TREE);
+
main_variant = TYPE_MAIN_VARIANT(type);
- for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
+ for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant))
TYPE_FIELDS(variant) = newtree[0];
- TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
- TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
- TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("designated_init"), NULL_TREE, TYPE_ATTRIBUTES(variant));
- if (has_flexarray)
- TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("has_flexarray"), NULL_TREE, TYPE_ATTRIBUTES(type));
- }
/*
* force a re-layout of the main variant
@@ -457,10 +459,8 @@ static void randomize_type(tree type)
if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
relayout_struct(type);
- for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
- TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
- TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
- }
+ add_type_attr(type, "randomize_considered", NULL_TREE);
+
#ifdef __DEBUG_PLUGIN
fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
#ifdef __DEBUG_VERBOSE
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 39/45] ALSA: hda/hdmi: Add pin fix for another HP EliteDesk 800 G4 model
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (37 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 38/45] randstruct: gcc-plugin: Fix attribute addition Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 40/45] pcmcia: Add error handling for add_interval() in do_validate_mem() Greg Kroah-Hartman
` (11 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable; +Cc: Greg Kroah-Hartman, patches, Takashi Iwai
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Takashi Iwai <tiwai@suse.de>
commit bcd6659d4911c528381531472a0cefbd4003e29e upstream.
It was reported that HP EliteDesk 800 G4 DM 65W (SSID 103c:845a) needs
the similar quirk for enabling HDMI outputs, too. This patch adds the
corresponding quirk entry.
Cc: <stable@vger.kernel.org>
Link: https://patch.msgid.link/20250901115009.27498-1-tiwai@suse.de
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
sound/pci/hda/patch_hdmi.c | 1 +
1 file changed, 1 insertion(+)
--- a/sound/pci/hda/patch_hdmi.c
+++ b/sound/pci/hda/patch_hdmi.c
@@ -1820,6 +1820,7 @@ static int hdmi_add_cvt(struct hda_codec
static const struct snd_pci_quirk force_connect_list[] = {
SND_PCI_QUIRK(0x103c, 0x83e2, "HP EliteDesk 800 G4", 1),
SND_PCI_QUIRK(0x103c, 0x83ef, "HP MP9 G4 Retail System AMS", 1),
+ SND_PCI_QUIRK(0x103c, 0x845a, "HP EliteDesk 800 G4 DM 65W", 1),
SND_PCI_QUIRK(0x103c, 0x870f, "HP", 1),
SND_PCI_QUIRK(0x103c, 0x871a, "HP", 1),
SND_PCI_QUIRK(0x103c, 0x8711, "HP", 1),
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 40/45] pcmcia: Add error handling for add_interval() in do_validate_mem()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (38 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 39/45] ALSA: hda/hdmi: Add pin fix for another HP EliteDesk 800 G4 model Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 41/45] spi: spi-fsl-lpspi: Fix transmissions when using CONT Greg Kroah-Hartman
` (10 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Wentao Liang, Dominik Brodowski,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Wentao Liang <vulab@iscas.ac.cn>
[ Upstream commit 4a81f78caa53e0633cf311ca1526377d9bff7479 ]
In the do_validate_mem(), the call to add_interval() does not
handle errors. If kmalloc() fails in add_interval(), it could
result in a null pointer being inserted into the linked list,
leading to illegal memory access when sub_interval() is called
next.
This patch adds an error handling for the add_interval(). If
add_interval() returns an error, the function will return early
with the error code.
Fixes: 7b4884ca8853 ("pcmcia: validate late-added resources")
Signed-off-by: Wentao Liang <vulab@iscas.ac.cn>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/pcmcia/rsrc_nonstatic.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/pcmcia/rsrc_nonstatic.c b/drivers/pcmcia/rsrc_nonstatic.c
index 6b311d6f8bf02..12bcbeca4a448 100644
--- a/drivers/pcmcia/rsrc_nonstatic.c
+++ b/drivers/pcmcia/rsrc_nonstatic.c
@@ -375,7 +375,9 @@ static int do_validate_mem(struct pcmcia_socket *s,
if (validate && !s->fake_cis) {
/* move it to the validated data set */
- add_interval(&s_data->mem_db_valid, base, size);
+ ret = add_interval(&s_data->mem_db_valid, base, size);
+ if (ret)
+ return ret;
sub_interval(&s_data->mem_db, base, size);
}
--
2.51.0
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 41/45] spi: spi-fsl-lpspi: Fix transmissions when using CONT
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (39 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 40/45] pcmcia: Add error handling for add_interval() in do_validate_mem() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 42/45] spi: spi-fsl-lpspi: Set correct chip-select polarity bit Greg Kroah-Hartman
` (9 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Larisa Grigore, James Clark,
Frank Li, Mark Brown, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Larisa Grigore <larisa.grigore@nxp.com>
[ Upstream commit 782a7c73078e1301c0c427f21c06377d77dfa541 ]
Commit 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use
CONT") breaks transmissions when CONT is used. The TDIE interrupt should
not be disabled in all cases. If CONT is used and the TX transfer is not
yet completed yet, but the interrupt handler is called because there are
characters to be received, TDIE is replaced with FCIE. When the transfer
is finally completed, SR_TDF is set but the interrupt handler isn't
called again.
Fixes: 6a130448498c ("spi: lpspi: Fix wrong transmission when don't use CONT")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250828-james-nxp-lpspi-v2-1-6262b9aa9be4@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/spi/spi-fsl-lpspi.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 2708bf15e1263..8a4925469dfb9 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -3,7 +3,7 @@
// Freescale i.MX7ULP LPSPI driver
//
// Copyright 2016 Freescale Semiconductor, Inc.
-// Copyright 2018 NXP Semiconductors
+// Copyright 2018, 2023, 2025 NXP
#include <linux/clk.h>
#include <linux/completion.h>
@@ -772,7 +772,7 @@ static irqreturn_t fsl_lpspi_isr(int irq, void *dev_id)
if (temp_SR & SR_MBF ||
readl(fsl_lpspi->base + IMX7ULP_FSR) & FSR_TXCOUNT) {
writel(SR_FCF, fsl_lpspi->base + IMX7ULP_SR);
- fsl_lpspi_intctrl(fsl_lpspi, IER_FCIE);
+ fsl_lpspi_intctrl(fsl_lpspi, IER_FCIE | (temp_IER & IER_TDIE));
return IRQ_HANDLED;
}
--
2.51.0
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 42/45] spi: spi-fsl-lpspi: Set correct chip-select polarity bit
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (40 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 41/45] spi: spi-fsl-lpspi: Fix transmissions when using CONT Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 43/45] spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort Greg Kroah-Hartman
` (8 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Larisa Grigore, James Clark,
Frank Li, Mark Brown, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Larisa Grigore <larisa.grigore@nxp.com>
[ Upstream commit cbe33705864ba2697a2939de715b81538cf32430 ]
The driver currently supports multiple chip-selects, but only sets the
polarity for the first one (CS 0). Fix it by setting the PCSPOL bit for
the desired chip-select.
Fixes: 5314987de5e5 ("spi: imx: add lpspi bus driver")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Link: https://patch.msgid.link/20250828-james-nxp-lpspi-v2-2-6262b9aa9be4@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/spi/spi-fsl-lpspi.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 8a4925469dfb9..6cabad2923aec 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -5,6 +5,7 @@
// Copyright 2016 Freescale Semiconductor, Inc.
// Copyright 2018, 2023, 2025 NXP
+#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/completion.h>
#include <linux/delay.h>
@@ -74,7 +75,7 @@
#define DER_TDDE BIT(0)
#define CFGR1_PCSCFG BIT(27)
#define CFGR1_PINCFG (BIT(24)|BIT(25))
-#define CFGR1_PCSPOL BIT(8)
+#define CFGR1_PCSPOL_MASK GENMASK(11, 8)
#define CFGR1_NOSTALL BIT(3)
#define CFGR1_MASTER BIT(0)
#define FSR_TXCOUNT (0xFF)
@@ -415,7 +416,9 @@ static int fsl_lpspi_config(struct fsl_lpspi_data *fsl_lpspi)
else
temp = CFGR1_PINCFG;
if (fsl_lpspi->config.mode & SPI_CS_HIGH)
- temp |= CFGR1_PCSPOL;
+ temp |= FIELD_PREP(CFGR1_PCSPOL_MASK,
+ BIT(fsl_lpspi->config.chip_select));
+
writel(temp, fsl_lpspi->base + IMX7ULP_CFGR1);
temp = readl(fsl_lpspi->base + IMX7ULP_CR);
--
2.51.0
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 43/45] spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (41 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 42/45] spi: spi-fsl-lpspi: Set correct chip-select polarity bit Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 44/45] cifs: fix integer overflow in match_server() Greg Kroah-Hartman
` (7 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Larisa Grigore, Frank Li,
James Clark, Mark Brown, Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Larisa Grigore <larisa.grigore@nxp.com>
[ Upstream commit e811b088a3641861fc9d2b2b840efc61a0f1907d ]
In DMA mode fsl_lpspi_reset() is always called at the end, even when the
transfer is aborted. In PIO mode aborts skip the reset leaving the FIFO
filled and the module enabled.
Fix it by always calling fsl_lpspi_reset().
Fixes: a15dc3d657fa ("spi: lpspi: Fix CLK pin becomes low before one transfer")
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com>
Reviewed-by: Frank Li <Frank.Li@nxp.com>
Signed-off-by: James Clark <james.clark@linaro.org>
Link: https://patch.msgid.link/20250828-james-nxp-lpspi-v2-3-6262b9aa9be4@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/spi/spi-fsl-lpspi.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/spi/spi-fsl-lpspi.c b/drivers/spi/spi-fsl-lpspi.c
index 6cabad2923aec..789cdb001eb64 100644
--- a/drivers/spi/spi-fsl-lpspi.c
+++ b/drivers/spi/spi-fsl-lpspi.c
@@ -722,12 +722,10 @@ static int fsl_lpspi_pio_transfer(struct spi_controller *controller,
fsl_lpspi_write_tx_fifo(fsl_lpspi);
ret = fsl_lpspi_wait_for_completion(controller);
- if (ret)
- return ret;
fsl_lpspi_reset(fsl_lpspi);
- return 0;
+ return ret;
}
static int fsl_lpspi_transfer_one(struct spi_controller *controller,
--
2.51.0
^ permalink raw reply related [flat|nested] 55+ messages in thread* [PATCH 5.4 44/45] cifs: fix integer overflow in match_server()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (42 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 43/45] spi: spi-fsl-lpspi: Reset FIFO and disable module on transfer abort Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 19:58 ` [PATCH 5.4 45/45] dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status() Greg Kroah-Hartman
` (6 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, Roman Smirnov, Steve French,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Roman Smirnov <r.smirnov@omp.ru>
[ Upstream commit 2510859475d7f46ed7940db0853f3342bf1b65ee ]
The echo_interval is not limited in any way during mounting,
which makes it possible to write a large number to it. This can
cause an overflow when multiplying ctx->echo_interval by HZ in
match_server().
Add constraints for echo_interval to smb3_fs_context_parse_param().
Found by Linux Verification Center (linuxtesting.org) with Svace.
Fixes: adfeb3e00e8e1 ("cifs: Make echo interval tunable")
Cc: stable@vger.kernel.org
Signed-off-by: Roman Smirnov <r.smirnov@omp.ru>
Signed-off-by: Steve French <stfrench@microsoft.com>
[ Adapted to older CIFS filesystem structure and mount option parsing ]
Signed-off-by: Sasha Levin <sashal@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
fs/cifs/connect.c | 5 +++++
1 file changed, 5 insertions(+)
--- a/fs/cifs/connect.c
+++ b/fs/cifs/connect.c
@@ -2144,6 +2144,11 @@ cifs_parse_mount_options(const char *mou
__func__);
goto cifs_parse_mount_err;
}
+ if (option < SMB_ECHO_INTERVAL_MIN ||
+ option > SMB_ECHO_INTERVAL_MAX) {
+ cifs_dbg(VFS, "echo interval is out of bounds\n");
+ goto cifs_parse_mount_err;
+ }
vol->echo_interval = option;
break;
case Opt_snapshot:
^ permalink raw reply [flat|nested] 55+ messages in thread* [PATCH 5.4 45/45] dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status()
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (43 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 44/45] cifs: fix integer overflow in match_server() Greg Kroah-Hartman
@ 2025-09-07 19:58 ` Greg Kroah-Hartman
2025-09-07 21:08 ` [PATCH 5.4 00/45] 5.4.299-rc1 review Florian Fainelli
` (5 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-07 19:58 UTC (permalink / raw)
To: stable
Cc: Greg Kroah-Hartman, patches, kernel test robot, Qiu-ji Chen,
Eugen Hristev, AngeloGioacchino Del Regno, Vinod Koul,
Sasha Levin
5.4-stable review patch. If anyone has any objections, please let me know.
------------------
From: Qiu-ji Chen <chenqiuji666@gmail.com>
[ Upstream commit 8eba2187391e5ab49940cd02d6bd45a5617f4daf ]
Fixed a flag reuse bug in the mtk_cqdma_tx_status() function.
Fixes: 157ae5ffd76a ("dmaengine: mediatek: Fix a possible deadlock error in mtk_cqdma_tx_status()")
Cc: stable@vger.kernel.org
Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202505270641.MStzJUfU-lkp@intel.com/
Signed-off-by: Qiu-ji Chen <chenqiuji666@gmail.com>
Reviewed-by: Eugen Hristev <eugen.hristev@linaro.org>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20250606090017.5436-1-chenqiuji666@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/dma/mediatek/mtk-cqdma.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/dma/mediatek/mtk-cqdma.c b/drivers/dma/mediatek/mtk-cqdma.c
index 11ec5734a816e..175b27b66b045 100644
--- a/drivers/dma/mediatek/mtk-cqdma.c
+++ b/drivers/dma/mediatek/mtk-cqdma.c
@@ -450,9 +450,9 @@ static enum dma_status mtk_cqdma_tx_status(struct dma_chan *c,
return ret;
spin_lock_irqsave(&cvc->pc->lock, flags);
- spin_lock_irqsave(&cvc->vc.lock, flags);
+ spin_lock(&cvc->vc.lock);
vd = mtk_cqdma_find_active_desc(c, cookie);
- spin_unlock_irqrestore(&cvc->vc.lock, flags);
+ spin_unlock(&cvc->vc.lock);
spin_unlock_irqrestore(&cvc->pc->lock, flags);
if (vd) {
--
2.51.0
^ permalink raw reply related [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (44 preceding siblings ...)
2025-09-07 19:58 ` [PATCH 5.4 45/45] dmaengine: mediatek: Fix a flag reuse error in mtk_cqdma_tx_status() Greg Kroah-Hartman
@ 2025-09-07 21:08 ` Florian Fainelli
2025-09-07 21:28 ` Florian Fainelli
2025-09-08 9:27 ` Brett A C Sheffield
` (4 subsequent siblings)
50 siblings, 1 reply; 55+ messages in thread
From: Florian Fainelli @ 2025-09-07 21:08 UTC (permalink / raw)
To: Greg Kroah-Hartman, stable
Cc: patches, linux-kernel, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, sudipm.mukherjee, srw, rwarsow,
conor, hargar, broonie, achill
On 9/7/2025 12:57 PM, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.299 release.
> There are 45 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.299-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on
BMIPS_GENERIC:
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
Looks like we have a minor regression introduced in the 5.4.297 cycle
that I will be solving separately:
[ 5.019301] xhci-hcd 8d00000.xhci_v2: xHCI Host Controller
[ 5.024929] xhci-hcd 8d00000.xhci_v2: new USB bus registered,
assigned bus number 1
[ 5.032865] xhci-hcd 8d00000.xhci_v2: hcc params 0x0220fe6d hci
version 0x110 quirks 0x0000180000010090
[ 5.042311] xhci-hcd 8d00000.xhci_v2: irq 39, io mem 0x08d00000
[ 5.048316] xhci-hcd 8d00000.xhci_v2: xHCI Host Controller
[ 5.053885] xhci-hcd 8d00000.xhci_v2: new USB bus registered,
assigned bus number 2
[ 5.061564] xhci-hcd 8d00000.xhci_v2: Host supports USB 3.0 SuperSpeed
[ 5.068404] hub 1-0:1.0: USB hub found
[ 5.072180] hub 1-0:1.0: 1 port detected
[ 5.076289] usb usb2: We don't know the algorithms for LPM for this
host, disabling LPM.
[ 5.084621] hub 2-0:1.0: USB hub found
[ 5.088393] hub 2-0:1.0: config failed, hub doesn't have any ports!
(err -19)
[ 5.095545] ------------[ cut here ]------------
[ 5.100182] WARNING: CPU: 0 PID: 41 at kernel/workqueue.c:3052
__flush_work+0x2e4/0x364
[ 5.106281] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[ 5.108219] Modules linked in:
[ 5.117467] CPU: 0 PID: 41 Comm: kworker/0:1 Not tainted
5.4.296-1.19pre-gebfa69b7e348 #2
[ 5.125654] Hardware name: Broadcom STB (Flattened Device Tree)
[ 5.131588] Workqueue: events deferred_probe_work_func
[ 5.136732] Backtrace:
[ 5.139187] [<c0cccbd8>] (dump_backtrace) from [<c0ccce70>]
(show_stack+0x20/0x24)
[ 5.146766] r7:00000bec r6:60000013 r5:00000000 r4:c26b3ca0
[ 5.152434] [<c0ccce50>] (show_stack) from [<c0cdaf18>]
(dump_stack+0x94/0xa8)
[ 5.159668] [<c0cdae84>] (dump_stack) from [<c0226194>]
(__warn+0x98/0xec)
[ 5.166550] r7:00000bec r6:c02438cc r5:00000009 r4:c0f51eb0
[ 5.172216] [<c02260fc>] (__warn) from [<c0ccd67c>]
(warn_slowpath_fmt+0x70/0xcc)
[ 5.179708] r7:00000009 r6:00000bec r5:c0f51eb0 r4:00000000
[ 5.185373] [<c0ccd610>] (warn_slowpath_fmt) from [<c02438cc>]
(__flush_work+0x2e4/0x364)
[ 5.193561] r8:00000001 r7:cd316510 r6:cd949c00 r5:cd3164d4 r4:cd3164d4
[ 5.200271] [<c02435e8>] (__flush_work) from [<c0244328>]
(flush_delayed_work+0x3c/0x54)
[ 5.208372] r10:cd316400 r9:cd949c78 r8:00000000 r7:cd316510
r6:cd949c00 r5:cd316400
[ 5.216210] r4:cd3164d4
[ 5.218749] [<c02442ec>] (flush_delayed_work) from [<c0932150>]
(hub_quiesce+0x94/0xcc)
[ 5.226761] r5:cd316400 r4:00000000
[ 5.230341] [<c09320bc>] (hub_quiesce) from [<c09324bc>]
(hub_disconnect+0x48/0x16c)
[ 5.238092] r7:c2710ab8 r6:cd94a800 r5:cd316400 r4:cd94a820
[ 5.243758] [<c0932474>] (hub_disconnect) from [<c0935b14>]
(hub_probe+0x31c/0xeac)
[ 5.251424] r9:80000080 r8:00000003 r7:cd949c00 r6:cd309380
r5:cd94a800 r4:cd94a820
[ 5.259178] [<c09357f8>] (hub_probe) from [<c093ff2c>]
(usb_probe_interface+0x104/0x2ec)
[ 5.267278] r10:cd949c00 r9:cd94a800 r8:c268e298 r7:c0e74c64
r6:cd949c78 r5:00000001
[ 5.275117] r4:cd94a820
[ 5.277654] [<c093fe28>] (usb_probe_interface) from [<c07e5d78>]
(really_probe+0x11c/0x4c8)
[ 5.286016] r10:c26c6f90 r9:c268e298 r8:c270e478 r7:00000000
r6:00000000 r5:c270e474
[ 5.293854] r4:cd94a820
[ 5.296390] [<c07e5c5c>] (really_probe) from [<c07e65ec>]
(driver_probe_device+0x88/0x1d4)
[ 5.304665] r10:00000000 r9:c268e330 r8:00000000 r7:cd94a820
r6:ce2999f4 r5:c268e298
[ 5.312504] r4:cd94a820
[ 5.315040] [<c07e6564>] (driver_probe_device) from [<c07e696c>]
(__device_attach_driver+0xbc/0x120)
[ 5.324183] r8:00000000 r7:cd94a820 r6:ce2999f4 r5:c268e298 r4:00000001
[ 5.330893] [<c07e68b0>] (__device_attach_driver) from [<c07e3904>]
(bus_for_each_drv+0x90/0xe0)
[ 5.339688] r7:c270e450 r6:c07e68b0 r5:ce2999f4 r4:00000000
[ 5.345354] [<c07e3874>] (bus_for_each_drv) from [<c07e61dc>]
(__device_attach+0xb8/0x1fc)
[ 5.353627] r6:cd94a864 r5:00000001 r4:cd94a820
[ 5.358251] [<c07e6124>] (__device_attach) from [<c07e69ec>]
(device_initial_probe+0x1c/0x20)
[ 5.366785] r6:c268e348 r5:cd94a820 r4:cd94a820
[ 5.371408] [<c07e69d0>] (device_initial_probe) from [<c07e4c94>]
(bus_probe_device+0x94/0x9c)
[ 5.380031] [<c07e4c00>] (bus_probe_device) from [<c07e0e5c>]
(device_add+0x2c8/0x680)
[ 5.387957] r7:c270e450 r6:cd949c78 r5:00000000 r4:cd94a820
[ 5.393624] [<c07e0b94>] (device_add) from [<c093dfe4>]
(usb_set_configuration+0x49c/0x8a4)
[ 5.401985] r9:c26cd200 r8:cd949c78 r7:cd316250 r6:cd316250
r5:cd949c00 r4:cd94a800
[ 5.409741] [<c093db48>] (usb_set_configuration) from [<c094a820>]
(generic_probe+0x60/0x9c)
[ 5.418189] r10:c26c6f90 r9:c268eb28 r8:c270e478 r7:cd949c00
r6:c268eb28 r5:00000001
[ 5.426027] r4:cd949c00
[ 5.428563] [<c094a7c0>] (generic_probe) from [<c093f6a8>]
(usb_probe_device+0x4c/0x9c)
[ 5.436575] r5:c270e474 r4:cd949c78
[ 5.440155] [<c093f65c>] (usb_probe_device) from [<c07e5d78>]
(really_probe+0x11c/0x4c8)
[ 5.448254] r7:00000000 r6:00000000 r5:c270e474 r4:cd949c78
[ 5.453921] [<c07e5c5c>] (really_probe) from [<c07e65ec>]
(driver_probe_device+0x88/0x1d4)
[ 5.462195] r10:ce0fc000 r9:c268e20c r8:00000000 r7:cd949c78
r6:ce299c24 r5:c268eb28
[ 5.470034] r4:cd949c78
[ 5.472571] [<c07e6564>] (driver_probe_device) from [<c07e696c>]
(__device_attach_driver+0xbc/0x120)
[ 5.481715] r8:00000000 r7:cd949c78 r6:ce299c24 r5:c268eb28 r4:00000001
[ 5.488425] [<c07e68b0>] (__device_attach_driver) from [<c07e3904>]
(bus_for_each_drv+0x90/0xe0)
[ 5.497220] r7:c270e450 r6:c07e68b0 r5:ce299c24 r4:00000000
[ 5.502887] [<c07e3874>] (bus_for_each_drv) from [<c07e61dc>]
(__device_attach+0xb8/0x1fc)
[ 5.511160] r6:cd949cbc r5:00000001 r4:cd949c78
[ 5.515784] [<c07e6124>] (__device_attach) from [<c07e69ec>]
(device_initial_probe+0x1c/0x20)
[ 5.524319] r6:c268e348 r5:cd949c78 r4:cd949c78
[ 5.528941] [<c07e69d0>] (device_initial_probe) from [<c07e4c94>]
(bus_probe_device+0x94/0x9c)
[ 5.537564] [<c07e4c00>] (bus_probe_device) from [<c07e0e5c>]
(device_add+0x2c8/0x680)
[ 5.545491] r7:c270e450 r6:ce307410 r5:00000000 r4:cd949c78
[ 5.551157] [<c07e0b94>] (device_add) from [<c09327b8>]
(usb_new_device+0x1d8/0x400)
[ 5.558910] r9:00000000 r8:ce0fe0c8 r7:ce307410 r6:cd309000
r5:cd949c78 r4:cd949c00
[ 5.566663] [<c09325e0>] (usb_new_device) from [<c0cd6e60>]
(register_root_hub+0x158/0x1dc)
[ 5.575024] r9:00000000 r8:ce0fe0c8 r7:ce307410 r6:ce0fe000
r5:00000000 r4:cd949c00
[ 5.582778] [<c0cd6d08>] (register_root_hub) from [<c09388c0>]
(usb_add_hcd+0x5a4/0x680)
[ 5.590878] r7:00000000 r6:ce0fc000 r5:00000027 r4:ce0fe000
[ 5.596546] [<c093831c>] (usb_add_hcd) from [<c0971f98>]
(xhci_plat_probe+0x514/0x644)
[ 5.604472] r9:00000000 r8:ce307410 r7:ce0fc000 r6:ce307400
r5:ce307508 r4:ce307410
[ 5.612227] [<c0971a84>] (xhci_plat_probe) from [<c07e8bbc>]
(platform_drv_probe+0x58/0xac)
[ 5.620588] r10:c26c6f90 r9:c2690480 r8:c270e478 r7:00000000
r6:c2690480 r5:ce307410
[ 5.628427] r4:00000000
[ 5.630964] [<c07e8b64>] (platform_drv_probe) from [<c07e5d78>]
(really_probe+0x11c/0x4c8)
[ 5.639237] r7:00000000 r6:00000000 r5:c270e474 r4:ce307410
[ 5.644903] [<c07e5c5c>] (really_probe) from [<c07e65ec>]
(driver_probe_device+0x88/0x1d4)
[ 5.653178] r10:00000000 r9:c26bc3f0 r8:00000000 r7:ce307410
r6:ce299e84 r5:c2690480
[ 5.661016] r4:ce307410
[ 5.663553] [<c07e6564>] (driver_probe_device) from [<c07e696c>]
(__device_attach_driver+0xbc/0x120)
[ 5.672697] r8:00000000 r7:ce307410 r6:ce299e84 r5:c2690480 r4:00000001
[ 5.679406] [<c07e68b0>] (__device_attach_driver) from [<c07e3904>]
(bus_for_each_drv+0x90/0xe0)
[ 5.688202] r7:c26c6f90 r6:c07e68b0 r5:ce299e84 r4:00000000
[ 5.693869] [<c07e3874>] (bus_for_each_drv) from [<c07e61dc>]
(__device_attach+0xb8/0x1fc)
[ 5.702142] r6:ce307454 r5:00000001 r4:ce307410
[ 5.706765] [<c07e6124>] (__device_attach) from [<c07e69ec>]
(device_initial_probe+0x1c/0x20)
[ 5.715300] r6:c2680428 r5:ce307410 r4:ce307410
[ 5.719923] [<c07e69d0>] (device_initial_probe) from [<c07e4c94>]
(bus_probe_device+0x94/0x9c)
[ 5.728546] [<c07e4c00>] (bus_probe_device) from [<c07e51bc>]
(deferred_probe_work_func+0x84/0xcc)
[ 5.737515] r7:c26c6f90 r6:c26801ac r5:c2680198 r4:ce307410
[ 5.743182] [<c07e5138>] (deferred_probe_work_func) from [<c02447ac>]
(process_one_work+0x208/0x53c)
[ 5.752325] r7:d07a4400 r6:d07a1140 r5:ce0d0e00 r4:c26801c0
[ 5.757992] [<c02445a4>] (process_one_work) from [<c0244d20>]
(worker_thread+0x240/0x5c0)
[ 5.766180] r10:00000008 r9:ce298000 r8:c2603d00 r7:d07a1158
r6:ce0d0e14 r5:d07a1140
[ 5.774018] r4:ce0d0e00
[ 5.776554] [<c0244ae0>] (worker_thread) from [<c024b244>]
(kthread+0x16c/0x170)
[ 5.783960] r10:ce135e80 r9:c0244ae0 r8:ce0d0e00 r7:ce298000
r6:00000000 r5:ce225f00
[ 5.791798] r4:ce24c0c0
[ 5.794336] [<c024b0d8>] (kthread) from [<c02010d8>]
(ret_from_fork+0x14/0x3c)
[ 5.801567] Exception stack(0xce299fb0 to 0xce299ff8)
[ 5.806623] 9fa0: 00000000
00000000 00000000 00000000
[ 5.814811] 9fc0: 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00000000
[ 5.822998] 9fe0: 00000000 00000000 00000000 00000000 00000013 00000000
[ 5.829621] r10:00000000 r9:00000000 r8:00000000 r7:00000000
r6:00000000 r5:c024b0d8
[ 5.837460] r4:ce225f00
[ 5.840013] ata1.00: ATA-8: WDC WD3200BEKT-00F3T0, 11.01A11, max UDMA/133
[ 5.840016] ---[ end trace 268ceb3d3c2e8a73 ]---
--
Florian
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 21:08 ` [PATCH 5.4 00/45] 5.4.299-rc1 review Florian Fainelli
@ 2025-09-07 21:28 ` Florian Fainelli
2025-09-09 16:43 ` Greg Kroah-Hartman
0 siblings, 1 reply; 55+ messages in thread
From: Florian Fainelli @ 2025-09-07 21:28 UTC (permalink / raw)
To: Greg Kroah-Hartman, stable
Cc: patches, linux-kernel, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, sudipm.mukherjee, srw, rwarsow,
conor, hargar, broonie, achill
On 9/7/2025 2:08 PM, Florian Fainelli wrote:
>
>
> On 9/7/2025 12:57 PM, Greg Kroah-Hartman wrote:
>> This is the start of the stable review cycle for the 5.4.299 release.
>> There are 45 patches in this series, all will be posted as a response
>> to this one. If anyone has any issues with these being applied, please
>> let me know.
>>
>> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
>> Anything received after that time might be too late.
>>
>> The whole patch series can be found in one patch at:
>> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/
>> patch-5.4.299-rc1.gz
>> or in the git tree and branch at:
>> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-
>> rc.git linux-5.4.y
>> and the diffstat can be found below.
>>
>> thanks,
>>
>> greg k-h
>
> On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on
> BMIPS_GENERIC:
>
> Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
>
> Looks like we have a minor regression introduced in the 5.4.297 cycle
> that I will be solving separately:
Looks like we are missing 9bd9c8026341f75f25c53104eb7e656e357ca1a2
("usb: hub: Fix flushing of delayed work used for post resume purposes")
in the 5.4.y branch, while we do have
a49e1e2e785fb3621f2d748581881b23a364998a ("usb: hub: Fix flushing and
scheduling of delayed work that tunes runtime pm"), looks like the
cherry pick is not exactly clean, will work on that later today.
--
Florian
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 21:28 ` Florian Fainelli
@ 2025-09-09 16:43 ` Greg Kroah-Hartman
0 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-09 16:43 UTC (permalink / raw)
To: Florian Fainelli
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, sudipm.mukherjee, srw,
rwarsow, conor, hargar, broonie, achill
On Sun, Sep 07, 2025 at 02:28:40PM -0700, Florian Fainelli wrote:
>
>
> On 9/7/2025 2:08 PM, Florian Fainelli wrote:
> >
> >
> > On 9/7/2025 12:57 PM, Greg Kroah-Hartman wrote:
> > > This is the start of the stable review cycle for the 5.4.299 release.
> > > There are 45 patches in this series, all will be posted as a response
> > > to this one. If anyone has any issues with these being applied, please
> > > let me know.
> > >
> > > Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> > > Anything received after that time might be too late.
> > >
> > > The whole patch series can be found in one patch at:
> > > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/
> > > patch-5.4.299-rc1.gz
> > > or in the git tree and branch at:
> > > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-
> > > rc.git linux-5.4.y
> > > and the diffstat can be found below.
> > >
> > > thanks,
> > >
> > > greg k-h
> >
> > On ARCH_BRCMSTB using 32-bit and 64-bit ARM kernels, build tested on
> > BMIPS_GENERIC:
> >
> > Tested-by: Florian Fainelli <florian.fainelli@broadcom.com>
> >
> > Looks like we have a minor regression introduced in the 5.4.297 cycle
> > that I will be solving separately:
>
> Looks like we are missing 9bd9c8026341f75f25c53104eb7e656e357ca1a2 ("usb:
> hub: Fix flushing of delayed work used for post resume purposes") in the
> 5.4.y branch, while we do have a49e1e2e785fb3621f2d748581881b23a364998a
> ("usb: hub: Fix flushing and scheduling of delayed work that tunes runtime
> pm"), looks like the cherry pick is not exactly clean, will work on that
> later today.
Thanks for the backport!
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (45 preceding siblings ...)
2025-09-07 21:08 ` [PATCH 5.4 00/45] 5.4.299-rc1 review Florian Fainelli
@ 2025-09-08 9:27 ` Brett A C Sheffield
2025-09-08 15:01 ` Jon Hunter
` (3 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Brett A C Sheffield @ 2025-09-08 9:27 UTC (permalink / raw)
To: gregkh
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, hargar, broonie, achill,
Brett A C Sheffield
Builds and boots. No network testing performed.
CPU/kernel: Linux auntie 5.4.299-rc1-00070-gf858bf548429 #68 SMP Mon Sep 8 07:03:03 -00 2025 x86_64 AMD Ryzen 9 9950X 16-Core Processor AuthenticAMD GNU/Linux
Tested-by: Brett A C Sheffield <bacs@librecast.net>
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (46 preceding siblings ...)
2025-09-08 9:27 ` Brett A C Sheffield
@ 2025-09-08 15:01 ` Jon Hunter
2025-09-08 22:52 ` Shuah Khan
` (2 subsequent siblings)
50 siblings, 0 replies; 55+ messages in thread
From: Jon Hunter @ 2025-09-08 15:01 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: Greg Kroah-Hartman, patches, linux-kernel, torvalds, akpm, linux,
shuah, patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, hargar, broonie, achill,
linux-tegra, stable
On Sun, 07 Sep 2025 21:57:46 +0200, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.299 release.
> There are 45 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.299-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
All tests passing for Tegra ...
Test results for stable-v5.4:
10 builds: 10 pass, 0 fail
24 boots: 24 pass, 0 fail
54 tests: 54 pass, 0 fail
Linux version: 5.4.299-rc1-gf858bf548429
Boards tested: tegra124-jetson-tk1, tegra186-p2771-0000,
tegra194-p2972-0000, tegra20-ventana,
tegra210-p2371-2180, tegra210-p3450-0000,
tegra30-cardhu-a04
Tested-by: Jon Hunter <jonathanh@nvidia.com>
Jon
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (47 preceding siblings ...)
2025-09-08 15:01 ` Jon Hunter
@ 2025-09-08 22:52 ` Shuah Khan
2025-09-09 7:52 ` Naresh Kamboju
2025-09-09 15:16 ` ALOK TIWARI
50 siblings, 0 replies; 55+ messages in thread
From: Shuah Khan @ 2025-09-08 22:52 UTC (permalink / raw)
To: Greg Kroah-Hartman, stable
Cc: patches, linux-kernel, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee, srw,
rwarsow, conor, hargar, broonie, achill, Shuah Khan
On 9/7/25 13:57, Greg Kroah-Hartman wrote:
> This is the start of the stable review cycle for the 5.4.299 release.
> There are 45 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.299-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
>
Compiled and booted on my test system. No dmesg regressions.
Tested-by: Shuah Khan <skhan@linuxfoundation.org>
thanks,
-- Shuah
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (48 preceding siblings ...)
2025-09-08 22:52 ` Shuah Khan
@ 2025-09-09 7:52 ` Naresh Kamboju
2025-09-09 10:23 ` Greg Kroah-Hartman
2025-09-09 15:16 ` ALOK TIWARI
50 siblings, 1 reply; 55+ messages in thread
From: Naresh Kamboju @ 2025-09-09 7:52 UTC (permalink / raw)
To: Greg Kroah-Hartman
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, hargar, broonie, achill,
Netdev, linux-wireless
On Mon, 8 Sept 2025 at 01:40, Greg Kroah-Hartman
<gregkh@linuxfoundation.org> wrote:
>
> This is the start of the stable review cycle for the 5.4.299 release.
> There are 45 patches in this series, all will be posted as a response
> to this one. If anyone has any issues with these being applied, please
> let me know.
>
> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.299-rc1.gz
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
Results from Linaro’s test farm.
No regressions on arm64, arm, x86_64, and i386.
Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
NOTE:
Following list of new build warnings noticed on arm build with gcc-12 and clang.
drivers/net/wireless/marvell/libertas/cfg.c: In function 'lbs_associate':
include/linux/kernel.h:843:43: warning: comparison of distinct pointer
types lacks a cast
843 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
| ^~
drivers/net/wireless/st/cw1200/sta.c:1292:20: warning: comparison of
distinct pointer types ('typeof (ssidie[1]) *' (aka 'const unsigned
char *') and 'typeof (32) *' (aka 'int *'))
[-Wcompare-distinct-pointer-types]
1292 | join.ssid_len = min(ssidie[1],
IEEE80211_MAX_SSID_LEN);
|
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/net/wireless/marvell/libertas/cfg.c:1106:18: warning:
comparison of distinct pointer types ('typeof (ssid_eid[1]) *' (aka
'const unsigned char *') and 'typeof (32) *' (aka 'int *'))
[-Wcompare-distinct-pointer-types]
1106 | u32 ssid_len = min(ssid_eid[1], IEEE80211_MAX_SSID_LEN);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
## Build
* kernel: 5.4.299-rc1
* git: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
* git commit: f858bf5484295b4f9ee720b49c5348ce54eceae3
* git describe: v5.4.297-70-gf858bf548429
* test details:
https://qa-reports.linaro.org/lkft/linux-stable-rc-linux-5.4.y/build/v5.4.297-70-gf858bf548429
## Test Regressions (compared to v5.4.297-24-g79c1b3cebd7a)
## Metric Regressions (compared to v5.4.297-24-g79c1b3cebd7a)
## Test Fixes (compared to v5.4.297-24-g79c1b3cebd7a)
## Metric Fixes (compared to v5.4.297-24-g79c1b3cebd7a)
## Test result summary
total: 39701, pass: 30356, fail: 2171, skip: 7026, xfail: 148
## Build Summary
* arc: 5 total, 5 passed, 0 failed
* arm: 131 total, 131 passed, 0 failed
* arm64: 31 total, 29 passed, 2 failed
* i386: 18 total, 13 passed, 5 failed
* mips: 25 total, 25 passed, 0 failed
* parisc: 3 total, 0 passed, 3 failed
* powerpc: 26 total, 26 passed, 0 failed
* riscv: 9 total, 3 passed, 6 failed
* s390: 6 total, 6 passed, 0 failed
* sh: 10 total, 10 passed, 0 failed
* sparc: 6 total, 6 passed, 0 failed
* x86_64: 27 total, 27 passed, 0 failed
## Test suites summary
* boot
* kselftest-arm64
* kselftest-breakpoints
* kselftest-capabilities
* kselftest-clone3
* kselftest-core
* kselftest-cpu-hotplug
* kselftest-exec
* kselftest-fpu
* kselftest-futex
* kselftest-intel_pstate
* kselftest-kcmp
* kselftest-membarrier
* kselftest-mincore
* kselftest-mqueue
* kselftest-openat2
* kselftest-ptrace
* kselftest-rseq
* kselftest-rtc
* kselftest-sigaltstack
* kselftest-size
* kselftest-timers
* kselftest-tmpfs
* kselftest-tpm2
* kselftest-user_events
* kselftest-vDSO
* kselftest-x86
* kunit
* lava
* libhugetlbfs
* log-parser-boot
* log-parser-build-clang
* log-parser-build-gcc
* log-parser-test
* ltp-capability
* ltp-commands
* ltp-containers
* ltp-controllers
* ltp-crypto
* ltp-cve
* ltp-dio
* ltp-fcntl-locktests
* ltp-fs
* ltp-fs_bind
* ltp-fs_perms_simple
* ltp-hugetlb
* ltp-math
* ltp-mm
* ltp-nptl
* ltp-pty
* ltp-sched
* ltp-smoke
* ltp-syscalls
* ltp-tracing
* perf
* rcutorture
--
Linaro LKFT
https://lkft.linaro.org
^ permalink raw reply [flat|nested] 55+ messages in thread* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-09 7:52 ` Naresh Kamboju
@ 2025-09-09 10:23 ` Greg Kroah-Hartman
0 siblings, 0 replies; 55+ messages in thread
From: Greg Kroah-Hartman @ 2025-09-09 10:23 UTC (permalink / raw)
To: Naresh Kamboju
Cc: stable, patches, linux-kernel, torvalds, akpm, linux, shuah,
patches, lkft-triage, pavel, jonathanh, f.fainelli,
sudipm.mukherjee, srw, rwarsow, conor, hargar, broonie, achill,
Netdev, linux-wireless
On Tue, Sep 09, 2025 at 01:22:42PM +0530, Naresh Kamboju wrote:
> On Mon, 8 Sept 2025 at 01:40, Greg Kroah-Hartman
> <gregkh@linuxfoundation.org> wrote:
> >
> > This is the start of the stable review cycle for the 5.4.299 release.
> > There are 45 patches in this series, all will be posted as a response
> > to this one. If anyone has any issues with these being applied, please
> > let me know.
> >
> > Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> > Anything received after that time might be too late.
> >
> > The whole patch series can be found in one patch at:
> > https://www.kernel.org/pub/linux/kernel/v5.x/stable-review/patch-5.4.299-rc1.gz
> > or in the git tree and branch at:
> > git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> > and the diffstat can be found below.
> >
> > thanks,
> >
> > greg k-h
>
>
> Results from Linaro’s test farm.
> No regressions on arm64, arm, x86_64, and i386.
>
> Tested-by: Linux Kernel Functional Testing <lkft@linaro.org>
>
> NOTE:
> Following list of new build warnings noticed on arm build with gcc-12 and clang.
>
> drivers/net/wireless/marvell/libertas/cfg.c: In function 'lbs_associate':
> include/linux/kernel.h:843:43: warning: comparison of distinct pointer
> types lacks a cast
> 843 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
> | ^~
>
> drivers/net/wireless/st/cw1200/sta.c:1292:20: warning: comparison of
> distinct pointer types ('typeof (ssidie[1]) *' (aka 'const unsigned
> char *') and 'typeof (32) *' (aka 'int *'))
> [-Wcompare-distinct-pointer-types]
> 1292 | join.ssid_len = min(ssidie[1],
> IEEE80211_MAX_SSID_LEN);
> |
> ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> drivers/net/wireless/marvell/libertas/cfg.c:1106:18: warning:
> comparison of distinct pointer types ('typeof (ssid_eid[1]) *' (aka
> 'const unsigned char *') and 'typeof (32) *' (aka 'int *'))
> [-Wcompare-distinct-pointer-types]
> 1106 | u32 ssid_len = min(ssid_eid[1], IEEE80211_MAX_SSID_LEN);
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Not much I can do about this one, as the call to min() is correct. It's
a type-check issue :(
thanks,
greg k-h
^ permalink raw reply [flat|nested] 55+ messages in thread
* Re: [PATCH 5.4 00/45] 5.4.299-rc1 review
2025-09-07 19:57 [PATCH 5.4 00/45] 5.4.299-rc1 review Greg Kroah-Hartman
` (49 preceding siblings ...)
2025-09-09 7:52 ` Naresh Kamboju
@ 2025-09-09 15:16 ` ALOK TIWARI
50 siblings, 0 replies; 55+ messages in thread
From: ALOK TIWARI @ 2025-09-09 15:16 UTC (permalink / raw)
To: Greg Kroah-Hartman, stable
Cc: patches, linux-kernel, torvalds, akpm, linux, shuah, patches,
lkft-triage, pavel, jonathanh, f.fainelli, sudipm.mukherjee, srw,
rwarsow, conor, hargar, broonie, achill
Hi Greg,
On 9/8/2025 1:27 AM, Greg Kroah-Hartman wrote:
> Responses should be made by Tue, 09 Sep 2025 19:55:53 +0000.
> Anything received after that time might be too late.
>
> The whole patch series can be found in one patch at:
> https://urldefense.com/v3/__https://www.kernel.org/pub/linux/kernel/
> v5.x/stable-review/patch-5.4.299-rc1.gz__;!!ACWV5N9M2RV99hQ!
> PONJiXxRvlcT9OU_jrsR0DdIWqAIVYqaLfLaeQdn4dJ6FFKQc094nFJyiFzexOhLx9OYb29xxdPKTxC2A40n5dcibg$
> or in the git tree and branch at:
> git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-5.4.y
> and the diffstat can be found below.
>
> thanks,
>
> greg k-h
No problems seen on x86_64 and aarch64 with our testing.
Tested-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Thanks,
Alok
^ permalink raw reply [flat|nested] 55+ messages in thread