brcmfmac: Replace zero-length array with flexible array member
authorLen Baker <len.baker@gmx.com>
Sat, 4 Sep 2021 09:22:17 +0000 (11:22 +0200)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 24 Sep 2021 11:20:44 +0000 (14:20 +0300)
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].

Also, make use of the struct_size() helper in devm_kzalloc().

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

Signed-off-by: Len Baker <len.baker@gmx.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210904092217.2848-1-len.baker@gmx.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/of.c
include/linux/platform_data/brcmfmac.h

index 2f7bc3a..513c7e6 100644 (file)
@@ -29,7 +29,7 @@ static int brcmf_of_get_country_codes(struct device *dev,
                return (count == -EINVAL) ? 0 : count;
        }
 
-       cc = devm_kzalloc(dev, sizeof(*cc) + count * sizeof(*cce), GFP_KERNEL);
+       cc = devm_kzalloc(dev, struct_size(cc, table, count), GFP_KERNEL);
        if (!cc)
                return -ENOMEM;
 
index 1d30bf2..2b5676f 100644 (file)
@@ -125,7 +125,7 @@ struct brcmfmac_pd_cc_entry {
  */
 struct brcmfmac_pd_cc {
        int                             table_size;
-       struct brcmfmac_pd_cc_entry     table[0];
+       struct brcmfmac_pd_cc_entry     table[];
 };
 
 /**