net: qede: Initialize qede_ll_ops with designated initializer
authorNathan Chancellor <nathan@kernel.org>
Wed, 7 May 2025 20:47:45 +0000 (21:47 +0100)
committerKees Cook <kees@kernel.org>
Thu, 8 May 2025 16:42:34 +0000 (09:42 -0700)
After a recent change [1] in clang's randstruct implementation to
randomize structures that only contain function pointers, there is an
error because qede_ll_ops get randomized but does not use a designated
initializer for the first member:

  drivers/net/ethernet/qlogic/qede/qede_main.c:206:2: error: a randomized struct can only be initialized with a designated initializer
    206 |         {
        |         ^

Explicitly initialize the common member using a designated initializer
to fix the build.

Cc: stable@vger.kernel.org
Fixes: 035f7f87b729 ("randstruct: Enable Clang support")
Link: https://github.com/llvm/llvm-project/commit/04364fb888eea6db9811510607bed4b200bcb082
Signed-off-by: Nathan Chancellor <nathan@kernel.org>
Reviewed-by: Kees Cook <kees@kernel.org>
Link: https://lore.kernel.org/r/20250507-qede-fix-clang-randstruct-v1-1-5ccc15626fba@kernel.org
Signed-off-by: Kees Cook <kees@kernel.org>
drivers/net/ethernet/qlogic/qede/qede_main.c

index 99df00c30b8c6cc3b297571d5fb059bd86712e1c..b5d744d2586f72686903e6709f457a897a232232 100644 (file)
@@ -203,7 +203,7 @@ static struct pci_driver qede_pci_driver = {
 };
 
 static struct qed_eth_cb_ops qede_ll_ops = {
-       {
+       .common = {
 #ifdef CONFIG_RFS_ACCEL
                .arfs_filter_op = qede_arfs_filter_op,
 #endif