[PATCH] staging: fbtft: Use ARRAY_SIZE() to get argument count

Deepak R Varma drv at mailo.com
Sat Oct 29 16:58:58 UTC 2022


On Sat, Oct 29, 2022 at 09:32:50AM +0200, Greg Kroah-Hartman wrote:
> On Fri, Oct 28, 2022 at 07:00:05PM +0530, Deepak R Varma wrote:
> > The ARRAY_SIZE(foo) macro should be preferred over sizeof operator
> > based computation such as sizeof(foo)/sizeof(foo[0]) for finding
> > number of elements in an array. Issue identified using coccicheck.
> >
> > Signed-off-by: Deepak R Varma <drv at mailo.com>
> > ---
> >  drivers/staging/fbtft/fbtft.h | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
> > index 2c2b5f1c1df3..5506a473be91 100644
> > --- a/drivers/staging/fbtft/fbtft.h
> > +++ b/drivers/staging/fbtft/fbtft.h
> > @@ -231,7 +231,7 @@ struct fbtft_par {
> >  	bool polarity;
> >  };
> >
> > -#define NUMARGS(...)  (sizeof((int[]){__VA_ARGS__}) / sizeof(int))
> > +#define NUMARGS(...)  ARRAY_SIZE(((int[]){ __VA_ARGS__ }))
>
> Please please please test-build your patches before sending them out.
> To not do so just wastes reviewer resources :(

Hello Greg,
I did build the .ko files by making the driver/staging/fbtft/ path. I verified
.o and .ko files were built.

I did a make clean just now and was again able to rebuild without any errors.
Please see the attached log file.

Is there something wrong with the way I am firing the build?

Thank you,
./drv

>
> thanks,
>
> greg k-h
-------------- next part --------------
drv at ubunlion:~/git/kernels/staging$ git show HEAD
commit d7f07b9179428a4b84bcb7a90574edcea8c37fc4 (HEAD -> cocci-patches)
Author: Deepak R Varma <drv at mailo.com>
Date:   Fri Oct 28 18:40:54 2022 +0530

    staging: fbtft: Use ARRAY_SIZE() to get argument count

    The ARRAY_SIZE(foo) macro should be preferred over sizeof operator
    based computation such as sizeof(foo)/sizeof(foo[0]) for finding
    number of elements in an array. Issue identified using coccicheck.

    Signed-off-by: Deepak R Varma <drv at mailo.com>

diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
index 2c2b5f1c1df3..5506a473be91 100644
--- a/drivers/staging/fbtft/fbtft.h
+++ b/drivers/staging/fbtft/fbtft.h
@@ -231,7 +231,7 @@ struct fbtft_par {
        bool polarity;
 };

-#define NUMARGS(...)  (sizeof((int[]){__VA_ARGS__}) / sizeof(int))
+#define NUMARGS(...)  ARRAY_SIZE(((int[]){ __VA_ARGS__ }))

 #define write_reg(par, ...)                                            \
        ((par)->fbtftops.write_register(par, NUMARGS(__VA_ARGS__), __VA_ARGS__))
drv at ubunlion:~/git/kernels/staging$ make M=drivers/staging/fbtft/
drv at ubunlion:~/git/kernels/staging$ make M=drivers/staging/fbtft/ clean
  CLEAN   drivers/staging/fbtft/Module.symvers
drv at ubunlion:~/git/kernels/staging$ make M=drivers/staging/fbtft/
  CC [M]  drivers/staging/fbtft/fbtft-core.o
  CC [M]  drivers/staging/fbtft/fbtft-sysfs.o
  CC [M]  drivers/staging/fbtft/fbtft-bus.o
  CC [M]  drivers/staging/fbtft/fbtft-io.o
  LD [M]  drivers/staging/fbtft/fbtft.o
  CC [M]  drivers/staging/fbtft/fb_agm1264k-fl.o
  CC [M]  drivers/staging/fbtft/fb_bd663474.o
  CC [M]  drivers/staging/fbtft/fb_hx8340bn.o
  CC [M]  drivers/staging/fbtft/fb_hx8347d.o
  CC [M]  drivers/staging/fbtft/fb_hx8353d.o
  CC [M]  drivers/staging/fbtft/fb_hx8357d.o
  CC [M]  drivers/staging/fbtft/fb_ili9163.o
  CC [M]  drivers/staging/fbtft/fb_ili9320.o
  CC [M]  drivers/staging/fbtft/fb_ili9325.o
  CC [M]  drivers/staging/fbtft/fb_ili9340.o
  CC [M]  drivers/staging/fbtft/fb_ili9341.o
  CC [M]  drivers/staging/fbtft/fb_ili9481.o
  CC [M]  drivers/staging/fbtft/fb_ili9486.o
  CC [M]  drivers/staging/fbtft/fb_pcd8544.o
  CC [M]  drivers/staging/fbtft/fb_ra8875.o
  CC [M]  drivers/staging/fbtft/fb_s6d02a1.o
  CC [M]  drivers/staging/fbtft/fb_s6d1121.o
  CC [M]  drivers/staging/fbtft/fb_seps525.o
  CC [M]  drivers/staging/fbtft/fb_sh1106.o
  CC [M]  drivers/staging/fbtft/fb_ssd1289.o
  CC [M]  drivers/staging/fbtft/fb_ssd1305.o
  CC [M]  drivers/staging/fbtft/fb_ssd1306.o
  CC [M]  drivers/staging/fbtft/fb_ssd1325.o
  CC [M]  drivers/staging/fbtft/fb_ssd1331.o
  CC [M]  drivers/staging/fbtft/fb_ssd1351.o
  CC [M]  drivers/staging/fbtft/fb_st7735r.o
  CC [M]  drivers/staging/fbtft/fb_st7789v.o
  CC [M]  drivers/staging/fbtft/fb_tinylcd.o
  CC [M]  drivers/staging/fbtft/fb_tls8204.o
  CC [M]  drivers/staging/fbtft/fb_uc1611.o
  CC [M]  drivers/staging/fbtft/fb_uc1701.o
  CC [M]  drivers/staging/fbtft/fb_upd161704.o
  MODPOST drivers/staging/fbtft/Module.symvers
  CC [M]  drivers/staging/fbtft/fb_agm1264k-fl.mod.o
  LD [M]  drivers/staging/fbtft/fb_agm1264k-fl.ko
  BTF [M] drivers/staging/fbtft/fb_agm1264k-fl.ko
Skipping BTF generation for drivers/staging/fbtft/fb_agm1264k-fl.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_bd663474.mod.o
  LD [M]  drivers/staging/fbtft/fb_bd663474.ko
  BTF [M] drivers/staging/fbtft/fb_bd663474.ko
Skipping BTF generation for drivers/staging/fbtft/fb_bd663474.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_hx8340bn.mod.o
  LD [M]  drivers/staging/fbtft/fb_hx8340bn.ko
  BTF [M] drivers/staging/fbtft/fb_hx8340bn.ko
Skipping BTF generation for drivers/staging/fbtft/fb_hx8340bn.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_hx8347d.mod.o
  LD [M]  drivers/staging/fbtft/fb_hx8347d.ko
  BTF [M] drivers/staging/fbtft/fb_hx8347d.ko
Skipping BTF generation for drivers/staging/fbtft/fb_hx8347d.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_hx8353d.mod.o
  LD [M]  drivers/staging/fbtft/fb_hx8353d.ko
  BTF [M] drivers/staging/fbtft/fb_hx8353d.ko
Skipping BTF generation for drivers/staging/fbtft/fb_hx8353d.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_hx8357d.mod.o
  LD [M]  drivers/staging/fbtft/fb_hx8357d.ko
  BTF [M] drivers/staging/fbtft/fb_hx8357d.ko
Skipping BTF generation for drivers/staging/fbtft/fb_hx8357d.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9163.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9163.ko
  BTF [M] drivers/staging/fbtft/fb_ili9163.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9163.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9320.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9320.ko
  BTF [M] drivers/staging/fbtft/fb_ili9320.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9320.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9325.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9325.ko
  BTF [M] drivers/staging/fbtft/fb_ili9325.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9325.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9340.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9340.ko
  BTF [M] drivers/staging/fbtft/fb_ili9340.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9340.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9341.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9341.ko
  BTF [M] drivers/staging/fbtft/fb_ili9341.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9341.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9481.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9481.ko
  BTF [M] drivers/staging/fbtft/fb_ili9481.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9481.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ili9486.mod.o
  LD [M]  drivers/staging/fbtft/fb_ili9486.ko
  BTF [M] drivers/staging/fbtft/fb_ili9486.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ili9486.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_pcd8544.mod.o
  LD [M]  drivers/staging/fbtft/fb_pcd8544.ko
  BTF [M] drivers/staging/fbtft/fb_pcd8544.ko
Skipping BTF generation for drivers/staging/fbtft/fb_pcd8544.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ra8875.mod.o
  LD [M]  drivers/staging/fbtft/fb_ra8875.ko
  BTF [M] drivers/staging/fbtft/fb_ra8875.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ra8875.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_s6d02a1.mod.o
  LD [M]  drivers/staging/fbtft/fb_s6d02a1.ko
  BTF [M] drivers/staging/fbtft/fb_s6d02a1.ko
Skipping BTF generation for drivers/staging/fbtft/fb_s6d02a1.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_s6d1121.mod.o
  LD [M]  drivers/staging/fbtft/fb_s6d1121.ko
  BTF [M] drivers/staging/fbtft/fb_s6d1121.ko
Skipping BTF generation for drivers/staging/fbtft/fb_s6d1121.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_seps525.mod.o
  LD [M]  drivers/staging/fbtft/fb_seps525.ko
  BTF [M] drivers/staging/fbtft/fb_seps525.ko
Skipping BTF generation for drivers/staging/fbtft/fb_seps525.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_sh1106.mod.o
  LD [M]  drivers/staging/fbtft/fb_sh1106.ko
  BTF [M] drivers/staging/fbtft/fb_sh1106.ko
Skipping BTF generation for drivers/staging/fbtft/fb_sh1106.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1289.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1289.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1289.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1289.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1305.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1305.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1305.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1305.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1306.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1306.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1306.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1306.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1325.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1325.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1325.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1325.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1331.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1331.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1331.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1331.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_ssd1351.mod.o
  LD [M]  drivers/staging/fbtft/fb_ssd1351.ko
  BTF [M] drivers/staging/fbtft/fb_ssd1351.ko
Skipping BTF generation for drivers/staging/fbtft/fb_ssd1351.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_st7735r.mod.o
  LD [M]  drivers/staging/fbtft/fb_st7735r.ko
  BTF [M] drivers/staging/fbtft/fb_st7735r.ko
Skipping BTF generation for drivers/staging/fbtft/fb_st7735r.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_st7789v.mod.o
  LD [M]  drivers/staging/fbtft/fb_st7789v.ko
  BTF [M] drivers/staging/fbtft/fb_st7789v.ko
Skipping BTF generation for drivers/staging/fbtft/fb_st7789v.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_tinylcd.mod.o
  LD [M]  drivers/staging/fbtft/fb_tinylcd.ko
  BTF [M] drivers/staging/fbtft/fb_tinylcd.ko
Skipping BTF generation for drivers/staging/fbtft/fb_tinylcd.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_tls8204.mod.o
  LD [M]  drivers/staging/fbtft/fb_tls8204.ko
  BTF [M] drivers/staging/fbtft/fb_tls8204.ko
Skipping BTF generation for drivers/staging/fbtft/fb_tls8204.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_uc1611.mod.o
  LD [M]  drivers/staging/fbtft/fb_uc1611.ko
  BTF [M] drivers/staging/fbtft/fb_uc1611.ko
Skipping BTF generation for drivers/staging/fbtft/fb_uc1611.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_uc1701.mod.o
  LD [M]  drivers/staging/fbtft/fb_uc1701.ko
  BTF [M] drivers/staging/fbtft/fb_uc1701.ko
Skipping BTF generation for drivers/staging/fbtft/fb_uc1701.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fb_upd161704.mod.o
  LD [M]  drivers/staging/fbtft/fb_upd161704.ko
  BTF [M] drivers/staging/fbtft/fb_upd161704.ko
Skipping BTF generation for drivers/staging/fbtft/fb_upd161704.ko due to unavailability of vmlinux
  CC [M]  drivers/staging/fbtft/fbtft.mod.o
  LD [M]  drivers/staging/fbtft/fbtft.ko
  BTF [M] drivers/staging/fbtft/fbtft.ko
Skipping BTF generation for drivers/staging/fbtft/fbtft.ko due to unavailability of vmlinux
drv at ubunlion:~/git/kernels/staging$



More information about the dri-devel mailing list