]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: mt76: mt7925: replace zero-length array with flexible-array member
authorZhang Kunbo <zhangkunbo@huawei.com>
Wed, 18 Dec 2024 07:45:52 +0000 (07:45 +0000)
committerFelix Fietkau <nbd@nbd.name>
Tue, 14 Jan 2025 12:34:36 +0000 (13:34 +0100)
The current codebase makes use of the zero-length array language
extension to the C90 standard, but the preferred mechanism to declare
variable-length types such as these ones is a flexible array member[1],
introduced in C99:

struct foo {
int stuff;
struct boo array[];
};

By making use of the mechanism above, we will get a compiler warning
in case the flexible array does not occur last, which is beneficial
to cultivate a high-quality code.[2]

This issue was found with the help of Coccinelle.

[1] https://gcc.gnu.org/onlinedocs/gcc/Zero-Length.html
[2] commit 76497732932f ("cxgb3/l2t: Fix undefined behaviour")

Signed-off-by: Zhang Kunbo <zhangkunbo@huawei.com>
Link: https://patch.msgid.link/20241218074552.3271542-1-zhangkunbo@huawei.com
Signed-off-by: Felix Fietkau <nbd@nbd.name>
drivers/net/wireless/mediatek/mt76/mt7925/mcu.c

index 9bbe046630a0ac02933c2adbc97a104b7780ee27..d4d3ecf863c40b4aeaecc52355859c743f9cd58f 100644 (file)
@@ -386,7 +386,7 @@ mt7925_mcu_tx_done_event(struct mt792x_dev *dev, struct sk_buff *skb)
        struct mt7925_mcu_txs_event {
                u8 ver;
                u8 rsv[3];
-               u8 data[0];
+               u8 data[];
        } __packed * txs;
        struct tlv *tlv;
        u32 tlv_len;