Re: [PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
"Gustavo A. R. Silva" writes: > On 5/4/20 06:54, Kalle Valo wrote: >> "Gustavo A. R. Silva" writes: >> >>> Hi Arnd, >>> >>> On 4/30/20 16:30, Arnd Bergmann wrote: gcc-10 started warning about out-of-bounds access for zero-length arrays: In file included from drivers/net/wireless/ath/ath10k/core.h:18, from drivers/net/wireless/ath/ath10k/htt_rx.c:8: drivers/net/wireless/ath/ath10k/htt_rx.c: In function 'ath10k_htt_rx_tx_fetch_ind': drivers/net/wireless/ath/ath10k/htt.h:1683:17: warning: array subscript 65535 is outside the bounds of an interior zero-length array 'struct htt_tx_fetch_record[0]' [-Wzero-length-bounds] 1683 | return (void *)>records[le16_to_cpu(ind->num_records)]; | ^~~~ drivers/net/wireless/ath/ath10k/htt.h:1676:29: note: while referencing 'records' 1676 | struct htt_tx_fetch_record records[0]; | ^~~ The structure was already converted to have a flexible-array member in the past, but there are two zero-length members in the end and only one of them can be a flexible-array member. Swap the two around to avoid the warning, as 'resp_ids' is not accessed in a way that causes a warning. Fixes: 3ba225b506a2 ("treewide: Replace zero-length array with flexible-array member") Fixes: 22e6b3bc5d96 ("ath10k: add new htt definitions") Signed-off-by: Arnd Bergmann --- drivers/net/wireless/ath/ath10k/htt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h index e7096a73c6ca..7621f0a3dc77 100644 --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h @@ -1673,8 +1673,8 @@ struct htt_tx_fetch_ind { __le32 token; __le16 num_resp_ids; __le16 num_records; - struct htt_tx_fetch_record records[0]; - __le32 resp_ids[]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ + __le32 resp_ids[0]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ + struct htt_tx_fetch_record records[]; } __packed; static inline void * >>> >>> The treewide patch is an experimental change and, as this change only >>> applies >>> to my -next tree, I will carry this patch in it, so other people don't have >>> to worry about this at all. >> >> Gustavo, why do you have ath10k patches in your tree? I prefer that >> ath10k patches go through my ath.git tree so that they are reviewed and >> tested. >> > > I just wanted to test out a mechanical change. I will remove it from my tree > now and will send a patch to you so you can apply it to your ath.git tree. Great, thanks. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
On 5/4/20 06:54, Kalle Valo wrote: > "Gustavo A. R. Silva" writes: > >> Hi Arnd, >> >> On 4/30/20 16:30, Arnd Bergmann wrote: >>> gcc-10 started warning about out-of-bounds access for zero-length >>> arrays: >>> >>> In file included from drivers/net/wireless/ath/ath10k/core.h:18, >>> from drivers/net/wireless/ath/ath10k/htt_rx.c:8: >>> drivers/net/wireless/ath/ath10k/htt_rx.c: In function >>> 'ath10k_htt_rx_tx_fetch_ind': >>> drivers/net/wireless/ath/ath10k/htt.h:1683:17: warning: array subscript >>> 65535 is outside the bounds of an interior zero-length array 'struct >>> htt_tx_fetch_record[0]' [-Wzero-length-bounds] >>> 1683 | return (void *)>records[le16_to_cpu(ind->num_records)]; >>> | ^~~~ >>> drivers/net/wireless/ath/ath10k/htt.h:1676:29: note: while referencing >>> 'records' >>> 1676 | struct htt_tx_fetch_record records[0]; >>> | ^~~ >>> >>> The structure was already converted to have a flexible-array member in >>> the past, but there are two zero-length members in the end and only >>> one of them can be a flexible-array member. >>> >>> Swap the two around to avoid the warning, as 'resp_ids' is not accessed >>> in a way that causes a warning. >>> >>> Fixes: 3ba225b506a2 ("treewide: Replace zero-length array with >>> flexible-array member") >>> Fixes: 22e6b3bc5d96 ("ath10k: add new htt definitions") >>> Signed-off-by: Arnd Bergmann >>> --- >>> drivers/net/wireless/ath/ath10k/htt.h | 4 ++-- >>> 1 file changed, 2 insertions(+), 2 deletions(-) >>> >>> diff --git a/drivers/net/wireless/ath/ath10k/htt.h >>> b/drivers/net/wireless/ath/ath10k/htt.h >>> index e7096a73c6ca..7621f0a3dc77 100644 >>> --- a/drivers/net/wireless/ath/ath10k/htt.h >>> +++ b/drivers/net/wireless/ath/ath10k/htt.h >>> @@ -1673,8 +1673,8 @@ struct htt_tx_fetch_ind { >>> __le32 token; >>> __le16 num_resp_ids; >>> __le16 num_records; >>> - struct htt_tx_fetch_record records[0]; >>> - __le32 resp_ids[]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ >>> + __le32 resp_ids[0]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ >>> + struct htt_tx_fetch_record records[]; >>> } __packed; >>> >>> static inline void * >>> >> >> The treewide patch is an experimental change and, as this change only applies >> to my -next tree, I will carry this patch in it, so other people don't have >> to worry about this at all. > > Gustavo, why do you have ath10k patches in your tree? I prefer that > ath10k patches go through my ath.git tree so that they are reviewed and > tested. > I just wanted to test out a mechanical change. I will remove it from my tree now and will send a patch to you so you can apply it to your ath.git tree. Thanks! -- Gustavo
Re: [PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
"Gustavo A. R. Silva" writes: > Hi Arnd, > > On 4/30/20 16:30, Arnd Bergmann wrote: >> gcc-10 started warning about out-of-bounds access for zero-length >> arrays: >> >> In file included from drivers/net/wireless/ath/ath10k/core.h:18, >> from drivers/net/wireless/ath/ath10k/htt_rx.c:8: >> drivers/net/wireless/ath/ath10k/htt_rx.c: In function >> 'ath10k_htt_rx_tx_fetch_ind': >> drivers/net/wireless/ath/ath10k/htt.h:1683:17: warning: array subscript >> 65535 is outside the bounds of an interior zero-length array 'struct >> htt_tx_fetch_record[0]' [-Wzero-length-bounds] >> 1683 | return (void *)>records[le16_to_cpu(ind->num_records)]; >> | ^~~~ >> drivers/net/wireless/ath/ath10k/htt.h:1676:29: note: while referencing >> 'records' >> 1676 | struct htt_tx_fetch_record records[0]; >> | ^~~ >> >> The structure was already converted to have a flexible-array member in >> the past, but there are two zero-length members in the end and only >> one of them can be a flexible-array member. >> >> Swap the two around to avoid the warning, as 'resp_ids' is not accessed >> in a way that causes a warning. >> >> Fixes: 3ba225b506a2 ("treewide: Replace zero-length array with >> flexible-array member") >> Fixes: 22e6b3bc5d96 ("ath10k: add new htt definitions") >> Signed-off-by: Arnd Bergmann >> --- >> drivers/net/wireless/ath/ath10k/htt.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/net/wireless/ath/ath10k/htt.h >> b/drivers/net/wireless/ath/ath10k/htt.h >> index e7096a73c6ca..7621f0a3dc77 100644 >> --- a/drivers/net/wireless/ath/ath10k/htt.h >> +++ b/drivers/net/wireless/ath/ath10k/htt.h >> @@ -1673,8 +1673,8 @@ struct htt_tx_fetch_ind { >> __le32 token; >> __le16 num_resp_ids; >> __le16 num_records; >> -struct htt_tx_fetch_record records[0]; >> -__le32 resp_ids[]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ >> +__le32 resp_ids[0]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ >> +struct htt_tx_fetch_record records[]; >> } __packed; >> >> static inline void * >> > > The treewide patch is an experimental change and, as this change only applies > to my -next tree, I will carry this patch in it, so other people don't have > to worry about this at all. Gustavo, why do you have ath10k patches in your tree? I prefer that ath10k patches go through my ath.git tree so that they are reviewed and tested. -- https://wireless.wiki.kernel.org/en/developers/documentation/submittingpatches
Re: [PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
On Thu, Apr 30, 2020 at 11:41 PM Gustavo A. R. Silva wrote: > On 4/30/20 16:30, Arnd Bergmann wrote: > > gcc-10 started warning about out-of-bounds access for zero-length > > arrays: > The treewide patch is an experimental change and, as this change only applies > to my -next tree, I will carry this patch in it, so other people don't have > to worry about this at all. Ok, thanks! Arnd
Re: [PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
Hi Arnd, On 4/30/20 16:30, Arnd Bergmann wrote: > gcc-10 started warning about out-of-bounds access for zero-length > arrays: > > In file included from drivers/net/wireless/ath/ath10k/core.h:18, > from drivers/net/wireless/ath/ath10k/htt_rx.c:8: > drivers/net/wireless/ath/ath10k/htt_rx.c: In function > 'ath10k_htt_rx_tx_fetch_ind': > drivers/net/wireless/ath/ath10k/htt.h:1683:17: warning: array subscript 65535 > is outside the bounds of an interior zero-length array 'struct > htt_tx_fetch_record[0]' [-Wzero-length-bounds] > 1683 | return (void *)>records[le16_to_cpu(ind->num_records)]; > | ^~~~ > drivers/net/wireless/ath/ath10k/htt.h:1676:29: note: while referencing > 'records' > 1676 | struct htt_tx_fetch_record records[0]; > | ^~~ > > The structure was already converted to have a flexible-array member in > the past, but there are two zero-length members in the end and only > one of them can be a flexible-array member. > > Swap the two around to avoid the warning, as 'resp_ids' is not accessed > in a way that causes a warning. > > Fixes: 3ba225b506a2 ("treewide: Replace zero-length array with flexible-array > member") > Fixes: 22e6b3bc5d96 ("ath10k: add new htt definitions") > Signed-off-by: Arnd Bergmann > --- > drivers/net/wireless/ath/ath10k/htt.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/net/wireless/ath/ath10k/htt.h > b/drivers/net/wireless/ath/ath10k/htt.h > index e7096a73c6ca..7621f0a3dc77 100644 > --- a/drivers/net/wireless/ath/ath10k/htt.h > +++ b/drivers/net/wireless/ath/ath10k/htt.h > @@ -1673,8 +1673,8 @@ struct htt_tx_fetch_ind { > __le32 token; > __le16 num_resp_ids; > __le16 num_records; > - struct htt_tx_fetch_record records[0]; > - __le32 resp_ids[]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ > + __le32 resp_ids[0]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ > + struct htt_tx_fetch_record records[]; > } __packed; > > static inline void * > The treewide patch is an experimental change and, as this change only applies to my -next tree, I will carry this patch in it, so other people don't have to worry about this at all. Thank you -- Gustavo
[PATCH 04/15] ath10k: fix gcc-10 zero-length-bounds warnings
gcc-10 started warning about out-of-bounds access for zero-length arrays: In file included from drivers/net/wireless/ath/ath10k/core.h:18, from drivers/net/wireless/ath/ath10k/htt_rx.c:8: drivers/net/wireless/ath/ath10k/htt_rx.c: In function 'ath10k_htt_rx_tx_fetch_ind': drivers/net/wireless/ath/ath10k/htt.h:1683:17: warning: array subscript 65535 is outside the bounds of an interior zero-length array 'struct htt_tx_fetch_record[0]' [-Wzero-length-bounds] 1683 | return (void *)>records[le16_to_cpu(ind->num_records)]; | ^~~~ drivers/net/wireless/ath/ath10k/htt.h:1676:29: note: while referencing 'records' 1676 | struct htt_tx_fetch_record records[0]; | ^~~ The structure was already converted to have a flexible-array member in the past, but there are two zero-length members in the end and only one of them can be a flexible-array member. Swap the two around to avoid the warning, as 'resp_ids' is not accessed in a way that causes a warning. Fixes: 3ba225b506a2 ("treewide: Replace zero-length array with flexible-array member") Fixes: 22e6b3bc5d96 ("ath10k: add new htt definitions") Signed-off-by: Arnd Bergmann --- drivers/net/wireless/ath/ath10k/htt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/ath/ath10k/htt.h b/drivers/net/wireless/ath/ath10k/htt.h index e7096a73c6ca..7621f0a3dc77 100644 --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h @@ -1673,8 +1673,8 @@ struct htt_tx_fetch_ind { __le32 token; __le16 num_resp_ids; __le16 num_records; - struct htt_tx_fetch_record records[0]; - __le32 resp_ids[]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ + __le32 resp_ids[0]; /* ath10k_htt_get_tx_fetch_ind_resp_ids() */ + struct htt_tx_fetch_record records[]; } __packed; static inline void * -- 2.26.0