From: Arnd Bergmann <arnd@arndb.de> To: Kalle Valo <kvalo@codeaurora.org> Cc: Arnd Bergmann <arnd@arndb.de>, Maharaja Kennadyrajan <mkenna@codeaurora.org>, "David S. Miller" <davem@davemloft.net>, ath10k@lists.infradead.org, linux-wireless@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout Date: Sat, 9 May 2020 14:06:33 +0200 [thread overview] Message-ID: <20200509120707.188595-2-arnd@arndb.de> (raw) In-Reply-To: <20200509120707.188595-1-arnd@arndb.de> gcc-10 correctly points out a bug with a zero-length array in struct ath10k_pci: drivers/net/wireless/ath/ath10k/ahb.c: In function 'ath10k_ahb_remove': drivers/net/wireless/ath/ath10k/ahb.c:30:9: error: array subscript 0 is outside the bounds of an interior zero-length array 'struct ath10k_ahb[0]' [-Werror=zero-length-bounds] 30 | return &((struct ath10k_pci *)ar->drv_priv)->ahb[0]; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/net/wireless/ath/ath10k/ahb.c:13: drivers/net/wireless/ath/ath10k/pci.h:185:20: note: while referencing 'ahb' 185 | struct ath10k_ahb ahb[0]; | ^~~ The last addition to the struct ignored the comments and added new members behind the array that must remain last. Change it to a flexible-array member and move it last again to make it work correctly, prevent the same thing from happening again (all compilers warn about flexible-array members in the middle of a struct) and get it to build without warnings. Fixes: 521fc37be3d8 ("ath10k: Avoid override CE5 configuration for QCA99X0 chipsets") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/net/wireless/ath/ath10k/pci.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/pci.h b/drivers/net/wireless/ath/ath10k/pci.h index e3cbd259a2dc..862d0901c5b8 100644 --- a/drivers/net/wireless/ath/ath10k/pci.h +++ b/drivers/net/wireless/ath/ath10k/pci.h @@ -178,15 +178,16 @@ struct ath10k_pci { */ u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr); + struct ce_attr *attr; + struct ce_pipe_config *pipe_config; + struct ce_service_to_pipe *serv_to_pipe; + /* Keep this entry in the last, memory for struct ath10k_ahb is * allocated (ahb support enabled case) in the continuation of * this struct. */ - struct ath10k_ahb ahb[0]; + struct ath10k_ahb ahb[]; - struct ce_attr *attr; - struct ce_pipe_config *pipe_config; - struct ce_service_to_pipe *serv_to_pipe; }; static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar) -- 2.26.0
WARNING: multiple messages have this Message-ID (diff)
From: Arnd Bergmann <arnd@arndb.de> To: Kalle Valo <kvalo@codeaurora.org> Cc: Maharaja Kennadyrajan <mkenna@codeaurora.org>, Arnd Bergmann <arnd@arndb.de>, netdev@vger.kernel.org, linux-wireless@vger.kernel.org, linux-kernel@vger.kernel.org, ath10k@lists.infradead.org, "David S. Miller" <davem@davemloft.net> Subject: [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout Date: Sat, 9 May 2020 14:06:33 +0200 [thread overview] Message-ID: <20200509120707.188595-2-arnd@arndb.de> (raw) In-Reply-To: <20200509120707.188595-1-arnd@arndb.de> gcc-10 correctly points out a bug with a zero-length array in struct ath10k_pci: drivers/net/wireless/ath/ath10k/ahb.c: In function 'ath10k_ahb_remove': drivers/net/wireless/ath/ath10k/ahb.c:30:9: error: array subscript 0 is outside the bounds of an interior zero-length array 'struct ath10k_ahb[0]' [-Werror=zero-length-bounds] 30 | return &((struct ath10k_pci *)ar->drv_priv)->ahb[0]; | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from drivers/net/wireless/ath/ath10k/ahb.c:13: drivers/net/wireless/ath/ath10k/pci.h:185:20: note: while referencing 'ahb' 185 | struct ath10k_ahb ahb[0]; | ^~~ The last addition to the struct ignored the comments and added new members behind the array that must remain last. Change it to a flexible-array member and move it last again to make it work correctly, prevent the same thing from happening again (all compilers warn about flexible-array members in the middle of a struct) and get it to build without warnings. Fixes: 521fc37be3d8 ("ath10k: Avoid override CE5 configuration for QCA99X0 chipsets") Signed-off-by: Arnd Bergmann <arnd@arndb.de> --- drivers/net/wireless/ath/ath10k/pci.h | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/pci.h b/drivers/net/wireless/ath/ath10k/pci.h index e3cbd259a2dc..862d0901c5b8 100644 --- a/drivers/net/wireless/ath/ath10k/pci.h +++ b/drivers/net/wireless/ath/ath10k/pci.h @@ -178,15 +178,16 @@ struct ath10k_pci { */ u32 (*targ_cpu_to_ce_addr)(struct ath10k *ar, u32 addr); + struct ce_attr *attr; + struct ce_pipe_config *pipe_config; + struct ce_service_to_pipe *serv_to_pipe; + /* Keep this entry in the last, memory for struct ath10k_ahb is * allocated (ahb support enabled case) in the continuation of * this struct. */ - struct ath10k_ahb ahb[0]; + struct ath10k_ahb ahb[]; - struct ce_attr *attr; - struct ce_pipe_config *pipe_config; - struct ce_service_to_pipe *serv_to_pipe; }; static inline struct ath10k_pci *ath10k_pci_priv(struct ath10k *ar) -- 2.26.0 _______________________________________________ ath10k mailing list ath10k@lists.infradead.org http://lists.infradead.org/mailman/listinfo/ath10k
next prev parent reply other threads:[~2020-05-09 12:07 UTC|newest] Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-05-09 12:06 [PATCH net-next 1/2] ath10k: fix gcc-10 zero-length-bounds warnings Arnd Bergmann 2020-05-09 12:06 ` Arnd Bergmann 2020-05-09 12:06 ` Arnd Bergmann [this message] 2020-05-09 12:06 ` [PATCH net-next 2/2] ath10k: fix ath10k_pci struct layout Arnd Bergmann 2020-05-11 12:05 ` Kalle Valo 2020-05-11 12:05 ` Kalle Valo 2020-05-11 12:17 ` Kalle Valo 2020-05-11 12:17 ` Kalle Valo 2020-05-11 12:39 ` Arnd Bergmann 2020-05-11 12:39 ` Arnd Bergmann 2020-05-13 6:50 ` gcc-10: kernel stack is corrupted and fails to boot Kalle Valo 2020-05-13 8:49 ` Arnd Bergmann 2020-05-13 12:45 ` Kalle Valo 2020-05-13 13:45 ` Arnd Bergmann 2020-05-13 15:31 ` Kalle Valo 2020-05-13 16:00 ` Arnd Bergmann 2020-05-13 16:07 ` David Laight 2020-05-14 9:13 ` Harald Arnesen 2020-05-13 15:48 ` Arvind Sankar 2020-05-13 21:28 ` Arnd Bergmann 2020-05-13 21:41 ` Borislav Petkov 2020-05-13 21:49 ` Arnd Bergmann 2020-05-13 22:20 ` Borislav Petkov 2020-05-13 22:51 ` Arvind Sankar 2020-05-13 23:13 ` Linus Torvalds 2020-05-13 23:36 ` Borislav Petkov 2020-05-14 0:11 ` Linus Torvalds 2020-05-14 0:51 ` Nick Desaulniers 2020-05-14 2:20 ` Linus Torvalds 2020-05-14 3:50 ` Andy Lutomirski [not found] ` <CAHk-=wgiGxRgJGS-zyer1C_x2MQUVo6iZn0=aJyuFTqJWk-mpA@mail.gmail.com> 2020-05-14 5:22 ` Arvind Sankar 2020-05-14 8:40 ` Arnd Bergmann 2020-05-14 13:27 ` [PATCH] x86: Fix early boot crash on gcc-10, third try Borislav Petkov 2020-05-14 14:45 ` Kalle Valo 2020-05-14 15:50 ` gcc-10: kernel stack is corrupted and fails to boot Arvind Sankar 2020-05-14 8:11 ` David Laight 2020-05-13 23:07 ` Linus Torvalds 2020-05-09 15:48 ` [PATCH net-next 1/2] ath10k: fix gcc-10 zero-length-bounds warnings Gustavo A. R. Silva 2020-05-09 15:48 ` Gustavo A. R. Silva 2020-05-11 12:02 ` Kalle Valo 2020-05-11 12:02 ` Kalle Valo 2020-05-11 12:46 ` Arnd Bergmann 2020-05-11 12:46 ` Arnd Bergmann 2020-05-11 13:09 ` Kalle Valo 2020-05-11 13:09 ` Kalle Valo 2020-05-11 13:47 ` Arnd Bergmann 2020-05-11 13:47 ` Arnd Bergmann 2020-05-12 7:33 ` Kalle Valo 2020-05-12 7:33 ` Kalle Valo
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20200509120707.188595-2-arnd@arndb.de \ --to=arnd@arndb.de \ --cc=ath10k@lists.infradead.org \ --cc=davem@davemloft.net \ --cc=kvalo@codeaurora.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-wireless@vger.kernel.org \ --cc=mkenna@codeaurora.org \ --cc=netdev@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.