diff mbox series

matroxfb: avoid -Warray-bounds warning

Message ID 20201026194010.3817166-1-arnd@kernel.org (mailing list archive)
State New, archived
Headers show
Series matroxfb: avoid -Warray-bounds warning | expand

Commit Message

Arnd Bergmann Oct. 26, 2020, 7:39 p.m. UTC
From: Arnd Bergmann <arnd@arndb.de>

The open-coded list_for_each_entry() causes a harmless warning:

drivers/video/fbdev/matrox/matroxfb_base.c: In function 'matroxfb_register_driver':
include/linux/kernel.h:856:3: warning: array subscript -98 is outside array bounds of 'struct list_head[1]' [-Warray-bounds]

Use the normal list_for_each_entry instead.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/video/fbdev/matrox/matroxfb_base.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

Comments

Thomas Zimmermann Oct. 27, 2020, 6:54 a.m. UTC | #1
Hi

Am 26.10.20 um 20:39 schrieb Arnd Bergmann:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> The open-coded list_for_each_entry() causes a harmless warning:
> 
> drivers/video/fbdev/matrox/matroxfb_base.c: In function 'matroxfb_register_driver':
> include/linux/kernel.h:856:3: warning: array subscript -98 is outside array bounds of 'struct list_head[1]' [-Warray-bounds]
> 
> Use the normal list_for_each_entry instead.
> 
> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Acked-by: Thomas Zimmermann <tzimmermann@suse.de>

I'll add the patch to drm-misc-next. Thanks!

Best regards
Thomas

> ---
>  drivers/video/fbdev/matrox/matroxfb_base.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
> index 570439b32655..a3853421b263 100644
> --- a/drivers/video/fbdev/matrox/matroxfb_base.c
> +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
> @@ -1970,9 +1970,7 @@ int matroxfb_register_driver(struct matroxfb_driver* drv) {
>  	struct matrox_fb_info* minfo;
>  
>  	list_add(&drv->node, &matroxfb_driver_list);
> -	for (minfo = matroxfb_l(matroxfb_list.next);
> -	     minfo != matroxfb_l(&matroxfb_list);
> -	     minfo = matroxfb_l(minfo->next_fb.next)) {
> +	list_for_each_entry(minfo, &matroxfb_list, next_fb) {
>  		void* p;
>  
>  		if (minfo->drivers_count == MATROXFB_MAX_FB_DRIVERS)
> @@ -1990,9 +1988,7 @@ void matroxfb_unregister_driver(struct matroxfb_driver* drv) {
>  	struct matrox_fb_info* minfo;
>  
>  	list_del(&drv->node);
> -	for (minfo = matroxfb_l(matroxfb_list.next);
> -	     minfo != matroxfb_l(&matroxfb_list);
> -	     minfo = matroxfb_l(minfo->next_fb.next)) {
> +	list_for_each_entry(minfo, &matroxfb_list, next_fb) {
>  		int i;
>  
>  		for (i = 0; i < minfo->drivers_count; ) {
>
diff mbox series

Patch

diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
index 570439b32655..a3853421b263 100644
--- a/drivers/video/fbdev/matrox/matroxfb_base.c
+++ b/drivers/video/fbdev/matrox/matroxfb_base.c
@@ -1970,9 +1970,7 @@  int matroxfb_register_driver(struct matroxfb_driver* drv) {
 	struct matrox_fb_info* minfo;
 
 	list_add(&drv->node, &matroxfb_driver_list);
-	for (minfo = matroxfb_l(matroxfb_list.next);
-	     minfo != matroxfb_l(&matroxfb_list);
-	     minfo = matroxfb_l(minfo->next_fb.next)) {
+	list_for_each_entry(minfo, &matroxfb_list, next_fb) {
 		void* p;
 
 		if (minfo->drivers_count == MATROXFB_MAX_FB_DRIVERS)
@@ -1990,9 +1988,7 @@  void matroxfb_unregister_driver(struct matroxfb_driver* drv) {
 	struct matrox_fb_info* minfo;
 
 	list_del(&drv->node);
-	for (minfo = matroxfb_l(matroxfb_list.next);
-	     minfo != matroxfb_l(&matroxfb_list);
-	     minfo = matroxfb_l(minfo->next_fb.next)) {
+	list_for_each_entry(minfo, &matroxfb_list, next_fb) {
 		int i;
 
 		for (i = 0; i < minfo->drivers_count; ) {