OSDN Git Service

net: prestera: replace zero-length array with flexible-array member
authorJosé Expósito <jose.exposito89@gmail.com>
Sat, 4 Dec 2021 17:13:49 +0000 (18:13 +0100)
committerJakub Kicinski <kuba@kernel.org>
Tue, 7 Dec 2021 00:29:27 +0000 (16:29 -0800)
One-element and zero-length arrays are deprecated and should be
replaced with flexible-array members:
https://www.kernel.org/doc/html/latest/process/deprecated.html#zero-length-and-one-element-arrays

Replace zero-length array with flexible-array member and make use
of the struct_size() helper.

Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: José Expósito <jose.exposito89@gmail.com>
Reviewed-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
Tested-by: Volodymyr Mytnyk <vmytnyk@marvell.com>
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20211204171349.22776-1-jose.exposito89@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/marvell/prestera/prestera_hw.c

index 92cb5e9..6282c98 100644 (file)
@@ -443,7 +443,7 @@ struct prestera_msg_counter_resp {
        __le32 offset;
        __le32 num_counters;
        __le32 done;
-       struct prestera_msg_counter_stats stats[0];
+       struct prestera_msg_counter_stats stats[];
 };
 
 struct prestera_msg_span_req {
@@ -1900,7 +1900,7 @@ int prestera_hw_counters_get(struct prestera_switch *sw, u32 idx,
                .block_id = __cpu_to_le32(idx),
                .num_counters = __cpu_to_le32(*len),
        };
-       size_t size = sizeof(*resp) + sizeof(*resp->stats) * (*len);
+       size_t size = struct_size(resp, stats, *len);
        int err, i;
 
        resp = kmalloc(size, GFP_KERNEL);