x86: Use ARRAY_SIZE
authorJérémy Lefaure <jeremy.lefaure@lse.epita.fr>
Sun, 1 Oct 2017 19:30:50 +0000 (15:30 -0400)
committerThomas Gleixner <tglx@linutronix.de>
Thu, 19 Oct 2017 14:15:47 +0000 (16:15 +0200)
Using the ARRAY_SIZE macro improves the readability of the code.

Found with Coccinelle with the following semantic patch:
@r depends on (org || report)@
type T;
T[] E;
position p;
@@
(
 (sizeof(E)@p /sizeof(*E))
|
 (sizeof(E)@p /sizeof(E[...]))
|
 (sizeof(E)@p /sizeof(T))
)

Signed-off-by: Jérémy Lefaure <jeremy.lefaure@lse.epita.fr>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-video@atrey.karlin.mff.cuni.cz
Cc: Martin Mares <mj@ucw.cz>
Cc: Andy Lutomirski <luto@amacapital.net>
Link: https://lkml.kernel.org/r/20171001193101.8898-13-jeremy.lefaure@lse.epita.fr
arch/x86/boot/video-vga.c
arch/x86/entry/vdso/vdso2c.c
arch/x86/platform/intel-mid/device_libs/platform_gpio_keys.c

index 45bc940..a14c517 100644 (file)
@@ -241,9 +241,9 @@ static int vga_probe(void)
                vga_modes,
        };
        static int mode_count[] = {
-               sizeof(cga_modes)/sizeof(struct mode_info),
-               sizeof(ega_modes)/sizeof(struct mode_info),
-               sizeof(vga_modes)/sizeof(struct mode_info),
+               ARRAY_SIZE(cga_modes),
+               ARRAY_SIZE(ega_modes),
+               ARRAY_SIZE(vga_modes),
        };
 
        struct biosregs ireg, oreg;
index 0780a44..4674f58 100644 (file)
@@ -65,6 +65,7 @@
 
 #include <linux/elf.h>
 #include <linux/types.h>
+#include <linux/kernel.h>
 
 const char *outfilename;
 
@@ -151,7 +152,7 @@ extern void bad_put_le(void);
        PLE(x, val, 64, PLE(x, val, 32, PLE(x, val, 16, LAST_PLE(x, val))))
 
 
-#define NSYMS (sizeof(required_syms) / sizeof(required_syms[0]))
+#define NSYMS ARRAY_SIZE(required_syms)
 
 #define BITSFUNC3(name, bits, suffix) name##bits##suffix
 #define BITSFUNC2(name, bits, suffix) BITSFUNC3(name, bits, suffix)
index 7428387..e639e31 100644 (file)
@@ -62,10 +62,9 @@ static struct platform_device pb_device = {
 static int __init pb_keys_init(void)
 {
        struct gpio_keys_button *gb = gpio_button;
-       int i, num, good = 0;
+       int i, good = 0;
 
-       num = sizeof(gpio_button) / sizeof(struct gpio_keys_button);
-       for (i = 0; i < num; i++) {
+       for (i = 0; i < ARRAY_SIZE(gpio_button); i++) {
                gb[i].gpio = get_gpio_by_name(gb[i].desc);
                pr_debug("info[%2d]: name = %s, gpio = %d\n", i, gb[i].desc,
                                        gb[i].gpio);