Skip to content

Commit b70e012

Browse files
committed
patches: Apply fixes for randstruct behavior change in LLVM 21
Link: llvm/llvm-project@04364fb Signed-off-by: Nathan Chancellor <[email protected]>
1 parent 42707db commit b70e012

21 files changed

+507
-0
lines changed
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
From d8720235d5b5cad86c1f07f65117ef2a96f8bec7 Mon Sep 17 00:00:00 2001
2+
From: Kees Cook <[email protected]>
3+
Date: Fri, 2 May 2025 15:41:57 -0700
4+
Subject: scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops
5+
6+
Recent fixes to the randstruct GCC plugin allowed it to notice
7+
that this structure is entirely function pointers and is therefore
8+
subject to randomization, but doing so requires that it always use
9+
designated initializers. Explicitly specify the "common" member as being
10+
initialized. Silences:
11+
12+
drivers/scsi/qedf/qedf_main.c:702:9: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
13+
702 | {
14+
| ^
15+
16+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
17+
Link: https://lore.kernel.org/r/[email protected]
18+
Signed-off-by: Kees Cook <[email protected]>
19+
---
20+
Link: https://git.kernel.org/kees/c/d8720235d5b5cad86c1f07f65117ef2a96f8bec7
21+
---
22+
drivers/scsi/qedf/qedf_main.c | 2 +-
23+
1 file changed, 1 insertion(+), 1 deletion(-)
24+
25+
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
26+
index 436bd29d5ebae6..6b1ebab36fa35b 100644
27+
--- a/drivers/scsi/qedf/qedf_main.c
28+
+++ b/drivers/scsi/qedf/qedf_main.c
29+
@@ -699,7 +699,7 @@ static u32 qedf_get_login_failures(void *cookie)
30+
}
31+
32+
static struct qed_fcoe_cb_ops qedf_cb_ops = {
33+
- {
34+
+ .common = {
35+
.link_update = qedf_link_update,
36+
.bw_update = qedf_bw_update,
37+
.schedule_recovery_handler = qedf_schedule_recovery_handler,
38+
--
39+
cgit 1.2.3-korg
40+

patches/6.1/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
d0afcfeb9e3810ec89d1ffde1a0e36621bb75dca.patch
2+
d8720235d5b5cad86c1f07f65117ef2a96f8bec7.patch
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
From d8720235d5b5cad86c1f07f65117ef2a96f8bec7 Mon Sep 17 00:00:00 2001
2+
From: Kees Cook <[email protected]>
3+
Date: Fri, 2 May 2025 15:41:57 -0700
4+
Subject: scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops
5+
6+
Recent fixes to the randstruct GCC plugin allowed it to notice
7+
that this structure is entirely function pointers and is therefore
8+
subject to randomization, but doing so requires that it always use
9+
designated initializers. Explicitly specify the "common" member as being
10+
initialized. Silences:
11+
12+
drivers/scsi/qedf/qedf_main.c:702:9: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
13+
702 | {
14+
| ^
15+
16+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
17+
Link: https://lore.kernel.org/r/[email protected]
18+
Signed-off-by: Kees Cook <[email protected]>
19+
---
20+
Link: https://git.kernel.org/kees/c/d8720235d5b5cad86c1f07f65117ef2a96f8bec7
21+
---
22+
drivers/scsi/qedf/qedf_main.c | 2 +-
23+
1 file changed, 1 insertion(+), 1 deletion(-)
24+
25+
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
26+
index 436bd29d5ebae6..6b1ebab36fa35b 100644
27+
--- a/drivers/scsi/qedf/qedf_main.c
28+
+++ b/drivers/scsi/qedf/qedf_main.c
29+
@@ -699,7 +699,7 @@ static u32 qedf_get_login_failures(void *cookie)
30+
}
31+
32+
static struct qed_fcoe_cb_ops qedf_cb_ops = {
33+
- {
34+
+ .common = {
35+
.link_update = qedf_link_update,
36+
.bw_update = qedf_bw_update,
37+
.schedule_recovery_handler = qedf_schedule_recovery_handler,
38+
--
39+
cgit 1.2.3-korg
40+

patches/6.12/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
0002-9d7a0577c9db35c4cc52db90bc415ea248446472.patch
33
0003-a79be02bba5c31f967885c7f3bf3a756d77d11d9.patch
44
0004-4f79eaa2ceac86a0e0f304b0bab556cca5bf4f30.patch
5+
d8720235d5b5cad86c1f07f65117ef2a96f8bec7.patch
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
From d8720235d5b5cad86c1f07f65117ef2a96f8bec7 Mon Sep 17 00:00:00 2001
2+
From: Kees Cook <[email protected]>
3+
Date: Fri, 2 May 2025 15:41:57 -0700
4+
Subject: scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops
5+
6+
Recent fixes to the randstruct GCC plugin allowed it to notice
7+
that this structure is entirely function pointers and is therefore
8+
subject to randomization, but doing so requires that it always use
9+
designated initializers. Explicitly specify the "common" member as being
10+
initialized. Silences:
11+
12+
drivers/scsi/qedf/qedf_main.c:702:9: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
13+
702 | {
14+
| ^
15+
16+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
17+
Link: https://lore.kernel.org/r/[email protected]
18+
Signed-off-by: Kees Cook <[email protected]>
19+
---
20+
Link: https://git.kernel.org/kees/c/d8720235d5b5cad86c1f07f65117ef2a96f8bec7
21+
---
22+
drivers/scsi/qedf/qedf_main.c | 2 +-
23+
1 file changed, 1 insertion(+), 1 deletion(-)
24+
25+
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
26+
index 436bd29d5ebae6..6b1ebab36fa35b 100644
27+
--- a/drivers/scsi/qedf/qedf_main.c
28+
+++ b/drivers/scsi/qedf/qedf_main.c
29+
@@ -699,7 +699,7 @@ static u32 qedf_get_login_failures(void *cookie)
30+
}
31+
32+
static struct qed_fcoe_cb_ops qedf_cb_ops = {
33+
- {
34+
+ .common = {
35+
.link_update = qedf_link_update,
36+
.bw_update = qedf_bw_update,
37+
.schedule_recovery_handler = qedf_schedule_recovery_handler,
38+
--
39+
cgit 1.2.3-korg
40+

patches/6.6/series

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
d0afcfeb9e3810ec89d1ffde1a0e36621bb75dca.patch
2+
d8720235d5b5cad86c1f07f65117ef2a96f8bec7.patch
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
From 6b3ab7f2cbfaeb6580709cd8ef4d72cfd01bfde4 Mon Sep 17 00:00:00 2001
2+
From: Nathan Chancellor <[email protected]>
3+
Date: Wed, 7 May 2025 21:47:45 +0100
4+
Subject: net: qede: Initialize qede_ll_ops with designated initializer
5+
6+
After a recent change [1] in clang's randstruct implementation to
7+
randomize structures that only contain function pointers, there is an
8+
error because qede_ll_ops get randomized but does not use a designated
9+
initializer for the first member:
10+
11+
drivers/net/ethernet/qlogic/qede/qede_main.c:206:2: error: a randomized struct can only be initialized with a designated initializer
12+
206 | {
13+
| ^
14+
15+
Explicitly initialize the common member using a designated initializer
16+
to fix the build.
17+
18+
19+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
20+
Link: https://github.com/llvm/llvm-project/commit/04364fb888eea6db9811510607bed4b200bcb082 [1]
21+
Signed-off-by: Nathan Chancellor <[email protected]>
22+
Link: https://patch.msgid.link/[email protected]
23+
Signed-off-by: Jakub Kicinski <[email protected]>
24+
---
25+
Link: https://git.kernel.org/linus/6b3ab7f2cbfaeb6580709cd8ef4d72cfd01bfde4
26+
---
27+
drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +-
28+
1 file changed, 1 insertion(+), 1 deletion(-)
29+
30+
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
31+
index 99df00c30b8c6c..b5d744d2586f72 100644
32+
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
33+
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
34+
@@ -203,7 +203,7 @@ static struct pci_driver qede_pci_driver = {
35+
};
36+
37+
static struct qed_eth_cb_ops qede_ll_ops = {
38+
- {
39+
+ .common = {
40+
#ifdef CONFIG_RFS_ACCEL
41+
.arfs_filter_op = qede_arfs_filter_op,
42+
#endif
43+
--
44+
cgit 1.2.3-korg
45+
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
From d8720235d5b5cad86c1f07f65117ef2a96f8bec7 Mon Sep 17 00:00:00 2001
2+
From: Kees Cook <[email protected]>
3+
Date: Fri, 2 May 2025 15:41:57 -0700
4+
Subject: scsi: qedf: Use designated initializer for struct qed_fcoe_cb_ops
5+
6+
Recent fixes to the randstruct GCC plugin allowed it to notice
7+
that this structure is entirely function pointers and is therefore
8+
subject to randomization, but doing so requires that it always use
9+
designated initializers. Explicitly specify the "common" member as being
10+
initialized. Silences:
11+
12+
drivers/scsi/qedf/qedf_main.c:702:9: error: positional initialization of field in 'struct' declared with 'designated_init' attribute [-Werror=designated-init]
13+
702 | {
14+
| ^
15+
16+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
17+
Link: https://lore.kernel.org/r/[email protected]
18+
Signed-off-by: Kees Cook <[email protected]>
19+
---
20+
Link: https://git.kernel.org/kees/c/d8720235d5b5cad86c1f07f65117ef2a96f8bec7
21+
---
22+
drivers/scsi/qedf/qedf_main.c | 2 +-
23+
1 file changed, 1 insertion(+), 1 deletion(-)
24+
25+
diff --git a/drivers/scsi/qedf/qedf_main.c b/drivers/scsi/qedf/qedf_main.c
26+
index 436bd29d5ebae6..6b1ebab36fa35b 100644
27+
--- a/drivers/scsi/qedf/qedf_main.c
28+
+++ b/drivers/scsi/qedf/qedf_main.c
29+
@@ -699,7 +699,7 @@ static u32 qedf_get_login_failures(void *cookie)
30+
}
31+
32+
static struct qed_fcoe_cb_ops qedf_cb_ops = {
33+
- {
34+
+ .common = {
35+
.link_update = qedf_link_update,
36+
.bw_update = qedf_bw_update,
37+
.schedule_recovery_handler = qedf_schedule_recovery_handler,
38+
--
39+
cgit 1.2.3-korg
40+

patches/android-mainline/series

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,4 @@
1+
6b3ab7f2cbfaeb6580709cd8ef4d72cfd01bfde4.patch
12
20250407_nathan_kbuild_add_fno_builtin_wcslen.patch
23
d0afcfeb9e3810ec89d1ffde1a0e36621bb75dca.patch
4+
d8720235d5b5cad86c1f07f65117ef2a96f8bec7.patch
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
From 6b3ab7f2cbfaeb6580709cd8ef4d72cfd01bfde4 Mon Sep 17 00:00:00 2001
2+
From: Nathan Chancellor <[email protected]>
3+
Date: Wed, 7 May 2025 21:47:45 +0100
4+
Subject: net: qede: Initialize qede_ll_ops with designated initializer
5+
6+
After a recent change [1] in clang's randstruct implementation to
7+
randomize structures that only contain function pointers, there is an
8+
error because qede_ll_ops get randomized but does not use a designated
9+
initializer for the first member:
10+
11+
drivers/net/ethernet/qlogic/qede/qede_main.c:206:2: error: a randomized struct can only be initialized with a designated initializer
12+
206 | {
13+
| ^
14+
15+
Explicitly initialize the common member using a designated initializer
16+
to fix the build.
17+
18+
19+
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
20+
Link: https://github.com/llvm/llvm-project/commit/04364fb888eea6db9811510607bed4b200bcb082 [1]
21+
Signed-off-by: Nathan Chancellor <[email protected]>
22+
Link: https://patch.msgid.link/[email protected]
23+
Signed-off-by: Jakub Kicinski <[email protected]>
24+
---
25+
Link: https://git.kernel.org/linus/6b3ab7f2cbfaeb6580709cd8ef4d72cfd01bfde4
26+
---
27+
drivers/net/ethernet/qlogic/qede/qede_main.c | 2 +-
28+
1 file changed, 1 insertion(+), 1 deletion(-)
29+
30+
diff --git a/drivers/net/ethernet/qlogic/qede/qede_main.c b/drivers/net/ethernet/qlogic/qede/qede_main.c
31+
index 99df00c30b8c6c..b5d744d2586f72 100644
32+
--- a/drivers/net/ethernet/qlogic/qede/qede_main.c
33+
+++ b/drivers/net/ethernet/qlogic/qede/qede_main.c
34+
@@ -203,7 +203,7 @@ static struct pci_driver qede_pci_driver = {
35+
};
36+
37+
static struct qed_eth_cb_ops qede_ll_ops = {
38+
- {
39+
+ .common = {
40+
#ifdef CONFIG_RFS_ACCEL
41+
.arfs_filter_op = qede_arfs_filter_op,
42+
#endif
43+
--
44+
cgit 1.2.3-korg
45+

0 commit comments

Comments
 (0)