staging: vchiq_arm: mark vchiq_platform_init() static
Subsystems (2)
PATCH 1/1 staging: vchiq_arm: mark vchiq_platform_init() static
From: Arnd Bergmann <[email protected]>
This function has no callers from other files, and the declaration was removed a while ago, causing a W=1 warning:
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:465:5: error: no previous prototype for 'vchiq_platform_init'
Marking it static solves this problem but introduces a new warning since gcc determines that 'g_fragments_base' is never initialized in some kernel configurations:
In file included from include/linux/string.h:254,
from include/linux/bitmap.h:11,
from include/linux/cpumask.h:12,
from include/linux/mm_types_task.h:14,
from include/linux/mm_types.h:5,
from include/linux/buildid.h:5,
from include/linux/module.h:14,
from drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:8:
In function 'memcpy_to_page',
inlined from 'free_pagelist' at drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:433:4:include/linux/fortify-string.h:57:33: error: argument 2 null where non-null expected [-Werror=nonnull] include/linux/highmem.h:427:9: note: in expansion of macro 'memcpy'
427 | memcpy(to + offset, from, len);
| ^~~~~~Add a NULL pointer check for this in addition to the static annotation to avoid both.
--- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +2 -2
@@ -415,7 +415,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel pagelistinfo->scatterlist_mapped =0 ;/* Deal with any partial cache lines (fragments) */ -if (pagelist->type >=PAGELIST_READ_WITH_FRAGMENTS ) { +if (pagelist->type >=PAGELIST_READ_WITH_FRAGMENTS && g_fragments_base) {char *fragments = g_fragments_base + (pagelist->type -PAGELIST_READ_WITH_FRAGMENTS ) * g_fragments_size;
@@ -462,7 +462,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagelcleanup_pagelistinfo (instance, pagelistinfo); } -int vchiq_platform_init (struct platform_device *pdev,struct vchiq_state *state) +static int vchiq_platform_init (struct platform_device *pdev,struct vchiq_state *state) {struct device *dev = &pdev->dev;struct vchiq_drvdata *drvdata =platform_get_drvdata (pdev);
Signature · 1 line
2.39.2
Quoted 23 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
This function has no callers from other files, and the declaration was removed a while ago, causing a W=1 warning:
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:465:5: error: no previous prototype for 'vchiq_platform_init'Marking it static solves this problem but introduces a new warning since gcc determines that '
g_fragments_base' is never initialized in some kernel configurations:In file included from
include/linux/string.h:254,
frominclude/linux/bitmap.h:11,
frominclude/linux/cpumask.h:12,
frominclude/linux/mm_types_task.h:14,
frominclude/linux/mm_types.h:5,
frominclude/linux/buildid.h:5,
frominclude/linux/module.h:14,
fromdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:8:
In function 'memcpy_to_page',
inlined from 'free_pagelist' atdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:433:4:include/linux/fortify-string.h:57:33: error: argument 2 null where non-null expected [-Werror=nonnull]include/linux/highmem.h:427:9: note: in expansion of macro 'memcpy'
Quoted 8 lines
427 | memcpy(to + offset, from, len); | ^~~~~~Add a NULL pointer check for this in addition to the static annotation to avoid both.
Fixes 89cc4218f640 ("staging: vchiq_arm: drop unnecessary declarations")Signed-off-by Arnd Bergmann <[email protected]>
Signature · 1 line
Florian
Hi
Quoted 23 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
This function has no callers from other files, and the declaration was removed a while ago, causing a W=1 warning:
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:465:5: error: no previous prototype for 'vchiq_platform_init'Marking it static solves this problem but introduces a new warning since gcc determines that '
g_fragments_base' is never initialized in some kernel configurations:In file included from
include/linux/string.h:254,
frominclude/linux/bitmap.h:11,
frominclude/linux/cpumask.h:12,
frominclude/linux/mm_types_task.h:14,
frominclude/linux/mm_types.h:5,
frominclude/linux/buildid.h:5,
frominclude/linux/module.h:14,
fromdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:8:
In function 'memcpy_to_page',
inlined from 'free_pagelist' atdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:433:4:include/linux/fortify-string.h:57:33: error: argument 2 null where non-null expected [-Werror=nonnull]include/linux/highmem.h:427:9: note: in expansion of macro 'memcpy'
Quoted 8 lines
427 | memcpy(to + offset, from, len); | ^~~~~~Add a NULL pointer check for this in addition to the static annotation to avoid both.
Fixes 89cc4218f640 ("staging: vchiq_arm: drop unnecessary declarations")Signed-off-by Arnd Bergmann <[email protected]>
Quoted 26 lines
--- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c +2
-2@@ -415,7 +415,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagel pagelistinfo->scatterlist_mapped =0 ;/* Deal with any partial cache lines (fragments) */ -if (pagelist->type >=PAGELIST_READ_WITH_FRAGMENTS ) { +if (pagelist->type >=PAGELIST_READ_WITH_FRAGMENTS && g_fragments_base) {char *fragments = g_fragments_base + (pagelist->type -PAGELIST_READ_WITH_FRAGMENTS ) * g_fragments_size;@@ -462,7 +462,7 @@ free_pagelist(struct vchiq_instance *instance, struct vchiq_pagelist_info *pagelcleanup_pagelistinfo (instance, pagelistinfo); } -int vchiq_platform_init (struct platform_device *pdev,struct vchiq_state *state) +static int vchiq_platform_init (struct platform_device *pdev,struct vchiq_state *state) {struct device *dev = &pdev->dev;struct vchiq_drvdata *drvdata =platform_get_drvdata (pdev);
Greg Kroah-Hartman
maintainerQuoted 26 lines · Arnd Bergmann
From: Arnd Bergmann <[email protected]>
This function has no callers from other files, and the declaration was removed a while ago, causing a W=1 warning:
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:465:5: error: no previous prototype for 'vchiq_platform_init'Marking it static solves this problem but introduces a new warning since gcc determines that '
g_fragments_base' is never initialized in some kernel configurations:In file included from
include/linux/string.h:254,
frominclude/linux/bitmap.h:11,
frominclude/linux/cpumask.h:12,
frominclude/linux/mm_types_task.h:14,
frominclude/linux/mm_types.h:5,
frominclude/linux/buildid.h:5,
frominclude/linux/module.h:14,
fromdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:8:
In function 'memcpy_to_page',
inlined from 'free_pagelist' atdrivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:433:4:include/linux/fortify-string.h:57:33: error: argument 2 null where non-null expected [-Werror=nonnull]include/linux/highmem.h:427:9: note: in expansion of macro 'memcpy'427 | memcpy(to + offset, from, len); | ^~~~~~
Quoted 8 lines
Add a NULL pointer check for this in addition to the static annotation to avoid both.
Fixes 89cc4218f640 ("staging: vchiq_arm: drop unnecessary declarations")Signed-off-by Arnd Bergmann <[email protected]>--- drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Nice, thanks for finally fixing this up, it's been a low-grade annoyance for a very long time.
greg k-h