video: fbdev: via_aux_vt1636: remove VLA usage
PATCH 1/1 video: fbdev: via_aux_vt1636: remove VLA usage
In preparation to enabling -Wvla, remove VLA and replace it with a fixed-length array instead. Also, remove variable 'len'.
Notice that no new IDs have been added in seven years.
--- drivers/video/fbdev/via/via_aux_vt1636.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)
drivers/video/fbdev/via/via_aux_vt1636.c +3 -3
@@ -35,10 +35,10 @@ void via_aux_vt1636_probe(struct via_aux_bus *bus) .addr = 0x40, .name = name};/* check vendor id and device id */ -const u8 id[] = {0x06 ,0x11 ,0x45 ,0x33 }, len =ARRAY_SIZE (id); -u8 tmp[len]; +const u8 id[4 ] = {0x06 ,0x11 ,0x45 ,0x33 }; +u8 tmp[4 ]; -if (!via_aux_read (&drv,0x00 , tmp, len) ||memcmp (id, tmp, len)) +if (!via_aux_read (&drv,0x00 , tmp,4 ) ||memcmp (id, tmp,4 ))return ;printk (KERN_INFO "viafb: Found %s\n" , name);
Signature · 1 line
2.7.4
Quoted 15 lines · Gustavo A. R. Silva
In preparation to enabling -Wvla, remove VLA and replace it with a fixed-length array instead. Also, remove variable 'len'.
Notice that no new IDs have been added in seven years.
Signed-off-by Gustavo A. R. Silva <[email protected]>--- drivers/video/fbdev/via/via_aux_vt1636.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-)drivers/video/fbdev/via/via_aux_vt1636.c +0
-0
drivers/video/fbdev/via/via_aux_vt1636.c void via_aux_vt1636_probe(struct via_aux_bus *bus) · line 41
Quoted 10 lines
drivers/video/fbdev/via/via_aux_vt1636.c +3
-3@@ -35,10 +35,10 @@ void via_aux_vt1636_probe(struct via_aux_bus *bus) .addr = 0x40, .name = name};/* check vendor id and device id */ -const u8 id[] = {0x06 ,0x11 ,0x45 ,0x33 }, len =ARRAY_SIZE (id); -u8 tmp[len]; +const u8 id[4 ] = {0x06 ,0x11 ,0x45 ,0x33 }; +u8 tmp[4 ]; -if (!via_aux_read (&drv,0x00 , tmp, len) ||memcmp (id, tmp, len)) +if (!via_aux_read (&drv,0x00 , tmp,4 ) ||memcmp (id, tmp,4 ))
I would recommend keeping ARRAY_SIZE(); even if nothing's been added in a while, it's still clearer in the code if we can see where these 4 come from.
Something like this instead?
----8<----
@@ -35,10 +35,10 @@ void via_aux_vt1636_probe(struct via_aux_bus *bus)
.addr = 0x40,
.name = name};
/* check vendor id and device id */
- const u8 id[] = {0x06, 0x11, 0x45, 0x33}, len = ARRAY_SIZE(id);
- u8 tmp[len];
+ const u8 id[] = {0x06, 0x11, 0x45, 0x33};
+ u8 tmp[ARRAY_SIZE(id)];
- if (!via_aux_read(&drv, 0x00, tmp, len) || memcmp(id, tmp, len))
+ if (!via_aux_read(&drv, 0x00, tmp, ARRAY_SIZE(id)) || memcmp(id, tmp, ARRAY_SIZE(id)))
return;
printk(KERN_INFO "viafb: Found %s\n", name);
---->8----
Note that sizeof is evaluated a compile time, so u8 tmp[ARRAY_SIZE(id)] is *not* a VLA. All that's needed was to remove len :)
Quoted 10 lines
drivers/video/fbdev/via/via_aux_vt1636.c +0
-0return ;printk (KERN_INFO "viafb: Found %s\n" , name);Signature · 6 lines
2.7.4 _______________________________________________ dri-devel mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/dri-devel