Skip to content

Commit

Permalink
ath11k: Replace zero-length arrays with flexible-array members
Browse files Browse the repository at this point in the history
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].

[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays

Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/20220216194836.GA904035@embeddedor
  • Loading branch information
Gustavo A. R. Silva authored and Kalle Valo committed Feb 21, 2022
1 parent 8bc6642 commit e9e5916
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath11k/ce.h
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ struct ath11k_ce_ring {
u32 hal_ring_id;

/* keep last */
struct sk_buff *skb[0];
struct sk_buff *skb[];
};

struct ath11k_ce_pipe {
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath11k/core.h
Original file line number Diff line number Diff line change
Expand Up @@ -815,7 +815,7 @@ struct ath11k_base {
} id;

/* must be last */
u8 drv_priv[0] __aligned(sizeof(void *));
u8 drv_priv[] __aligned(sizeof(void *));
};

struct ath11k_fw_stats_pdev {
Expand Down
10 changes: 5 additions & 5 deletions drivers/net/wireless/ath/ath11k/dp.h
Original file line number Diff line number Diff line change
Expand Up @@ -1173,12 +1173,12 @@ struct ath11k_htt_ppdu_stats_msg {
u32 ppdu_id;
u32 timestamp;
u32 rsvd;
u8 data[0];
u8 data[];
} __packed;

struct htt_tlv {
u32 header;
u8 value[0];
u8 value[];
} __packed;

#define HTT_TLV_TAG GENMASK(11, 0)
Expand Down Expand Up @@ -1365,7 +1365,7 @@ struct htt_ppdu_stats_usr_cmn_array {
* tx_ppdu_stats_info is variable length, with length =
* number_of_ppdu_stats * sizeof (struct htt_tx_ppdu_stats_info)
*/
struct htt_tx_ppdu_stats_info tx_ppdu_info[0];
struct htt_tx_ppdu_stats_info tx_ppdu_info[];
} __packed;

struct htt_ppdu_user_stats {
Expand Down Expand Up @@ -1427,7 +1427,7 @@ struct htt_ppdu_stats_info {
*/
struct htt_pktlog_msg {
u32 hdr;
u8 payload[0];
u8 payload[];
};

/**
Expand Down Expand Up @@ -1648,7 +1648,7 @@ struct ath11k_htt_extd_stats_msg {
u32 info0;
u64 cookie;
u32 info1;
u8 data[0];
u8 data[];
} __packed;

#define HTT_MAC_ADDR_L32_0 GENMASK(7, 0)
Expand Down
6 changes: 3 additions & 3 deletions drivers/net/wireless/ath/ath11k/rx_desc.h
Original file line number Diff line number Diff line change
Expand Up @@ -1445,7 +1445,7 @@ struct hal_rx_desc_ipq8074 {
__le32 hdr_status_tag;
__le32 phy_ppdu_id;
u8 hdr_status[HAL_RX_DESC_HDR_STATUS_LEN];
u8 msdu_payload[0];
u8 msdu_payload[];
} __packed;

struct hal_rx_desc_qcn9074 {
Expand All @@ -1464,7 +1464,7 @@ struct hal_rx_desc_qcn9074 {
__le32 hdr_status_tag;
__le32 phy_ppdu_id;
u8 hdr_status[HAL_RX_DESC_HDR_STATUS_LEN];
u8 msdu_payload[0];
u8 msdu_payload[];
} __packed;

struct hal_rx_desc_wcn6855 {
Expand All @@ -1483,7 +1483,7 @@ struct hal_rx_desc_wcn6855 {
__le32 hdr_status_tag;
__le32 phy_ppdu_id;
u8 hdr_status[HAL_RX_DESC_HDR_STATUS_LEN];
u8 msdu_payload[0];
u8 msdu_payload[];
} __packed;

struct hal_rx_desc {
Expand Down
2 changes: 1 addition & 1 deletion drivers/net/wireless/ath/ath11k/spectral.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ struct spectral_search_fft_report {
__le32 info1;
__le32 info2;
__le32 reserve0;
u8 bins[0];
u8 bins[];
} __packed;

struct ath11k_spectral_search_report {
Expand Down

0 comments on commit e9e5916

Please sign in to comment.