OSDN Git Service

mt76x0: Remove VLA usage
authorKees Cook <keescook@chromium.org>
Tue, 7 Aug 2018 22:50:40 +0000 (15:50 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Thu, 9 Aug 2018 15:08:53 +0000 (18:08 +0300)
Even with "const" variables, the compiler will generate warnings about
VLA usage. In the quest to remove all VLAs from the kernel[1], this uses
a #define instead of a const to do the array sizing.

[1] https://lkml.kernel.org/r/CA+55aFzCG-zNmZwX4A2FQpadafLfEzK6CC=qPXydAacU1RqZWA@mail.gmail.com

Fixes: e87b5039511a ("mt76x0: eeprom files")
Signed-off-by: Kees Cook <keescook@chromium.org>
Acked-by: Stanislaw Gruszka <sgruszka@redhat.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/mediatek/mt76/mt76x0/eeprom.c

index 9ea5f5e..36da1e6 100644 (file)
@@ -81,15 +81,15 @@ mt76x0_efuse_read(struct mt76x0_dev *dev, u16 addr, u8 *data,
        return 0;
 }
 
+#define MT_MAP_READS   DIV_ROUND_UP(MT_EFUSE_USAGE_MAP_SIZE, 16)
 static int
 mt76x0_efuse_physical_size_check(struct mt76x0_dev *dev)
 {
-       const int map_reads = DIV_ROUND_UP(MT_EFUSE_USAGE_MAP_SIZE, 16);
-       u8 data[map_reads * 16];
+       u8 data[MT_MAP_READS * 16];
        int ret, i;
        u32 start = 0, end = 0, cnt_free;
 
-       for (i = 0; i < map_reads; i++) {
+       for (i = 0; i < MT_MAP_READS; i++) {
                ret = mt76x0_efuse_read(dev, MT_EE_USAGE_MAP_START + i * 16,
                                         data + i * 16, MT_EE_PHYSICAL_READ);
                if (ret)