2022-02-01 15:32:33

by Nguyen Dinh Phi

[permalink] [raw]
Subject: [PATCH] staging: vc04_services: make a couple of functions static

Functions vchiq_platform_init and vchiq_platform_get_arm_state are used
locally in vchiq_arm.c file, so make them static.

Cleans up sparse warnings:
warning: symbol 'vchiq_platform_init' was not declared. Should it be
static?
warning: warning: symbol 'vchiq_platform_get_arm_state' was not declared.
Should it be static?

Signed-off-by: Nguyen Dinh Phi <[email protected]>
---
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
index 54ab6208ddae..b1054550ed27 100644
--- a/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
+++ b/drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c
@@ -466,7 +466,7 @@ free_pagelist(struct vchiq_pagelist_info *pagelistinfo,
cleanup_pagelistinfo(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);
@@ -593,7 +593,7 @@ vchiq_platform_init_state(struct vchiq_state *state)
return 0;
}

-struct vchiq_arm_state*
+static struct vchiq_arm_state*
vchiq_platform_get_arm_state(struct vchiq_state *state)
{
struct vchiq_2835_state *platform_state;
--
2.25.1


2022-02-01 16:23:27

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] staging: vc04_services: make a couple of functions static

Hi Nguyen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]

url: https://github.com/0day-ci/linux/commits/Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 64b2d6ffff862c0e7278198b4229e42e1abb3bb1
config: x86_64-buildonly-randconfig-r004-20220131 (https://download.01.org/0day-ci/archive/20220131/[email protected]/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
reproduce (this is a W=1 build):
# https://github.com/0day-ci/linux/commit/1b64825a2b5b3312ae309c1714239df049b018ac
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
git checkout 1b64825a2b5b3312ae309c1714239df049b018ac
# save the config file to linux build tree
mkdir build_dir
make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/staging/vc04_services/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

In file included from include/linux/string.h:253,
from include/linux/bitmap.h:11,
from include/linux/cpumask.h:12,
from arch/x86/include/asm/cpumask.h:5,
from arch/x86/include/asm/msr.h:11,
from arch/x86/include/asm/processor.h:22,
from arch/x86/include/asm/timex.h:5,
from include/linux/timex.h:65,
from include/linux/time32.h:13,
from include/linux/time.h:60,
from include/linux/stat.h:19,
from include/linux/module.h:13,
from drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:8:
In function 'memcpy',
inlined from 'free_pagelist' at drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:434:4,
inlined from 'vchiq_complete_bulk' at drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:650:3:
>> include/linux/fortify-string.h:41:29: warning: argument 2 null where non-null expected [-Wnonnull]
41 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:225:9: note: in expansion of macro '__underlying_memcpy'
225 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function 'vchiq_complete_bulk':
include/linux/fortify-string.h:41:29: note: in a call to built-in function '__builtin_memcpy'
41 | #define __underlying_memcpy __builtin_memcpy
| ^
include/linux/fortify-string.h:225:9: note: in expansion of macro '__underlying_memcpy'
225 | return __underlying_memcpy(p, q, size);
| ^~~~~~~~~~~~~~~~~~~


vim +41 include/linux/fortify-string.h

3009f891bb9f32 Kees Cook 2021-08-02 26
a28a6e860c6cf2 Francis Laniel 2021-02-25 27 #if defined(CONFIG_KASAN_GENERIC) || defined(CONFIG_KASAN_SW_TAGS)
a28a6e860c6cf2 Francis Laniel 2021-02-25 28 extern void *__underlying_memchr(const void *p, int c, __kernel_size_t size) __RENAME(memchr);
a28a6e860c6cf2 Francis Laniel 2021-02-25 29 extern int __underlying_memcmp(const void *p, const void *q, __kernel_size_t size) __RENAME(memcmp);
a28a6e860c6cf2 Francis Laniel 2021-02-25 30 extern void *__underlying_memcpy(void *p, const void *q, __kernel_size_t size) __RENAME(memcpy);
a28a6e860c6cf2 Francis Laniel 2021-02-25 31 extern void *__underlying_memmove(void *p, const void *q, __kernel_size_t size) __RENAME(memmove);
a28a6e860c6cf2 Francis Laniel 2021-02-25 32 extern void *__underlying_memset(void *p, int c, __kernel_size_t size) __RENAME(memset);
a28a6e860c6cf2 Francis Laniel 2021-02-25 33 extern char *__underlying_strcat(char *p, const char *q) __RENAME(strcat);
a28a6e860c6cf2 Francis Laniel 2021-02-25 34 extern char *__underlying_strcpy(char *p, const char *q) __RENAME(strcpy);
a28a6e860c6cf2 Francis Laniel 2021-02-25 35 extern __kernel_size_t __underlying_strlen(const char *p) __RENAME(strlen);
a28a6e860c6cf2 Francis Laniel 2021-02-25 36 extern char *__underlying_strncat(char *p, const char *q, __kernel_size_t count) __RENAME(strncat);
a28a6e860c6cf2 Francis Laniel 2021-02-25 37 extern char *__underlying_strncpy(char *p, const char *q, __kernel_size_t size) __RENAME(strncpy);
a28a6e860c6cf2 Francis Laniel 2021-02-25 38 #else
a28a6e860c6cf2 Francis Laniel 2021-02-25 39 #define __underlying_memchr __builtin_memchr
a28a6e860c6cf2 Francis Laniel 2021-02-25 40 #define __underlying_memcmp __builtin_memcmp
a28a6e860c6cf2 Francis Laniel 2021-02-25 @41 #define __underlying_memcpy __builtin_memcpy
a28a6e860c6cf2 Francis Laniel 2021-02-25 42 #define __underlying_memmove __builtin_memmove
a28a6e860c6cf2 Francis Laniel 2021-02-25 43 #define __underlying_memset __builtin_memset
a28a6e860c6cf2 Francis Laniel 2021-02-25 44 #define __underlying_strcat __builtin_strcat
a28a6e860c6cf2 Francis Laniel 2021-02-25 45 #define __underlying_strcpy __builtin_strcpy
a28a6e860c6cf2 Francis Laniel 2021-02-25 46 #define __underlying_strlen __builtin_strlen
a28a6e860c6cf2 Francis Laniel 2021-02-25 47 #define __underlying_strncat __builtin_strncat
a28a6e860c6cf2 Francis Laniel 2021-02-25 48 #define __underlying_strncpy __builtin_strncpy
a28a6e860c6cf2 Francis Laniel 2021-02-25 49 #endif
a28a6e860c6cf2 Francis Laniel 2021-02-25 50

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

2022-02-01 20:08:02

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] staging: vc04_services: make a couple of functions static

Hi Nguyen,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on staging/staging-testing]

url: https://github.com/0day-ci/linux/commits/Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 64b2d6ffff862c0e7278198b4229e42e1abb3bb1
config: arm-randconfig-r002-20220130 (https://download.01.org/0day-ci/archive/20220131/[email protected]/config)
compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/0day-ci/linux/commit/1b64825a2b5b3312ae309c1714239df049b018ac
git remote add linux-review https://github.com/0day-ci/linux
git fetch --no-tags linux-review Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
git checkout 1b64825a2b5b3312ae309c1714239df049b018ac
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/staging/vc04_services/

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>

All warnings (new ones prefixed by >>):

drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function 'free_pagelist':
>> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:434:25: warning: argument 2 null where non-null expected [-Wnonnull]
434 | memcpy((char *)kmap(pages[0]) +
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
435 | pagelist->offset,
| ~~~~~~~~~~~~~~~~~
436 | fragments,
| ~~~~~~~~~~
437 | head_bytes);
| ~~~~~~~~~~~
In file included from include/linux/string.h:20,
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:
arch/arm/include/asm/string.h:20:15: note: in a call to function 'memcpy' declared 'nonnull'
20 | extern void * memcpy(void *, const void *, __kernel_size_t);
| ^~~~~~


vim +434 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c

7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 398
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 399 static void
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 400 free_pagelist(struct vchiq_pagelist_info *pagelistinfo,
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 401 int actual)
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 402 {
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 403 struct pagelist *pagelist = pagelistinfo->pagelist;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 404 struct page **pages = pagelistinfo->pages;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 405 unsigned int num_pages = pagelistinfo->num_pages;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 406
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 407 vchiq_log_trace(vchiq_arm_log_level, "%s - %pK, %d",
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 408 __func__, pagelistinfo->pagelist, actual);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 409
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 410 /*
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 411 * NOTE: dma_unmap_sg must be called before the
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 412 * cpu can touch any of the data/pages.
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 413 */
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 414 dma_unmap_sg(g_dev, pagelistinfo->scatterlist,
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 415 pagelistinfo->num_pages, pagelistinfo->dma_dir);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 416 pagelistinfo->scatterlist_mapped = 0;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 417
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 418 /* Deal with any partial cache lines (fragments) */
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 419 if (pagelist->type >= PAGELIST_READ_WITH_FRAGMENTS) {
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 420 char *fragments = g_fragments_base +
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 421 (pagelist->type - PAGELIST_READ_WITH_FRAGMENTS) *
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 422 g_fragments_size;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 423 int head_bytes, tail_bytes;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 424
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 425 head_bytes = (g_cache_line_size - pagelist->offset) &
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 426 (g_cache_line_size - 1);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 427 tail_bytes = (pagelist->offset + actual) &
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 428 (g_cache_line_size - 1);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 429
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 430 if ((actual >= 0) && (head_bytes != 0)) {
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 431 if (head_bytes > actual)
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 432 head_bytes = actual;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 433
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 @434 memcpy((char *)kmap(pages[0]) +
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 435 pagelist->offset,
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 436 fragments,
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 437 head_bytes);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 438 kunmap(pages[0]);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 439 }
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 440 if ((actual >= 0) && (head_bytes < actual) &&
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 441 (tail_bytes != 0)) {
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 442 memcpy((char *)kmap(pages[num_pages - 1]) +
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 443 ((pagelist->offset + actual) &
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 444 (PAGE_SIZE - 1) & ~(g_cache_line_size - 1)),
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 445 fragments + g_cache_line_size,
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 446 tail_bytes);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 447 kunmap(pages[num_pages - 1]);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 448 }
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 449
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 450 down(&g_free_fragments_mutex);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 451 *(char **)fragments = g_free_fragments;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 452 g_free_fragments = fragments;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 453 up(&g_free_fragments_mutex);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 454 up(&g_free_fragments_sema);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 455 }
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 456
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 457 /* Need to mark all the pages dirty. */
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 458 if (pagelist->type != PAGELIST_WRITE &&
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 459 pagelistinfo->pages_need_release) {
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 460 unsigned int i;
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 461
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 462 for (i = 0; i < num_pages; i++)
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 463 set_page_dirty(pages[i]);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 464 }
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 465
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 466 cleanup_pagelistinfo(pagelistinfo);
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 467 }
7b9148dcb74a00 Ojaswin Mujoo 2021-07-21 468

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

2022-02-01 20:17:28

by Greg KH

[permalink] [raw]
Subject: Re: [PATCH] staging: vc04_services: make a couple of functions static

On Mon, Jan 31, 2022 at 07:16:01PM +0800, kernel test robot wrote:
> Hi Nguyen,
>
> Thank you for the patch! Perhaps something to improve:
>
> [auto build test WARNING on staging/staging-testing]
>
> url: https://github.com/0day-ci/linux/commits/Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
> base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 64b2d6ffff862c0e7278198b4229e42e1abb3bb1
> config: arm-randconfig-r002-20220130 (https://download.01.org/0day-ci/archive/20220131/[email protected]/config)
> compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
> reproduce (this is a W=1 build):
> wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # https://github.com/0day-ci/linux/commit/1b64825a2b5b3312ae309c1714239df049b018ac
> git remote add linux-review https://github.com/0day-ci/linux
> git fetch --no-tags linux-review Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
> git checkout 1b64825a2b5b3312ae309c1714239df049b018ac
> # save the config file to linux build tree
> mkdir build_dir
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/staging/vc04_services/
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot <[email protected]>
>
> All warnings (new ones prefixed by >>):
>
> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function 'free_pagelist':
> >> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:434:25: warning: argument 2 null where non-null expected [-Wnonnull]
> 434 | memcpy((char *)kmap(pages[0]) +
> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 435 | pagelist->offset,
> | ~~~~~~~~~~~~~~~~~
> 436 | fragments,
> | ~~~~~~~~~~
> 437 | head_bytes);
> | ~~~~~~~~~~~
> In file included from include/linux/string.h:20,
> 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:
> arch/arm/include/asm/string.h:20:15: note: in a call to function 'memcpy' declared 'nonnull'
> 20 | extern void * memcpy(void *, const void *, __kernel_size_t);
> | ^~~~~~
>

Oddly, your patch caused these build errors to happen, which implies
that you did not test-build your patch?

I remember seeing this before and being confused as to why this type of
change would cause this error, but it must be for some reason, which
means we can't take this patch.

Always test-build your changes before sending them out.

thanks,

greg k-h

2022-02-01 20:41:26

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH] staging: vc04_services: make a couple of functions static

On Mon, Jan 31, 2022 at 02:07:02PM +0100, Greg Kroah-Hartman wrote:
> On Mon, Jan 31, 2022 at 07:16:01PM +0800, kernel test robot wrote:
> > Hi Nguyen,
> >
> > Thank you for the patch! Perhaps something to improve:
> >
> > [auto build test WARNING on staging/staging-testing]
> >
> > url: https://github.com/0day-ci/linux/commits/Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
> > base: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git 64b2d6ffff862c0e7278198b4229e42e1abb3bb1
> > config: arm-randconfig-r002-20220130 (https://download.01.org/0day-ci/archive/20220131/[email protected]/config)
> > compiler: arm-linux-gnueabi-gcc (GCC) 11.2.0
> > reproduce (this is a W=1 build):
> > wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
> > chmod +x ~/bin/make.cross
> > # https://github.com/0day-ci/linux/commit/1b64825a2b5b3312ae309c1714239df049b018ac
> > git remote add linux-review https://github.com/0day-ci/linux
> > git fetch --no-tags linux-review Nguyen-Dinh-Phi/staging-vc04_services-make-a-couple-of-functions-static/20220131-151209
> > git checkout 1b64825a2b5b3312ae309c1714239df049b018ac
> > # save the config file to linux build tree
> > mkdir build_dir
> > COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=arm SHELL=/bin/bash drivers/staging/vc04_services/
> >
> > If you fix the issue, kindly add following tag as appropriate
> > Reported-by: kernel test robot <[email protected]>
> >
> > All warnings (new ones prefixed by >>):
> >
> > drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c: In function 'free_pagelist':
> > >> drivers/staging/vc04_services/interface/vchiq_arm/vchiq_arm.c:434:25: warning: argument 2 null where non-null expected [-Wnonnull]
> > 434 | memcpy((char *)kmap(pages[0]) +
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > 435 | pagelist->offset,
> > | ~~~~~~~~~~~~~~~~~
> > 436 | fragments,
> > | ~~~~~~~~~~
> > 437 | head_bytes);
> > | ~~~~~~~~~~~
> > In file included from include/linux/string.h:20,
> > 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:
> > arch/arm/include/asm/string.h:20:15: note: in a call to function 'memcpy' declared 'nonnull'
> > 20 | extern void * memcpy(void *, const void *, __kernel_size_t);
> > | ^~~~~~
> >
>
> Oddly, your patch caused these build errors to happen, which implies
> that you did not test-build your patch?
>
> I remember seeing this before and being confused as to why this type of
> change would cause this error, but it must be for some reason, which
> means we can't take this patch.
>
> Always test-build your changes before sending them out.
>

This is an annoying thing.

Unless I'm mistaken, it's a totally nonsense GCC false positive. In
Smatch, I have a similar NULL dereference check, but I have never felt
confident enough to harrass people with false positives even though mine
are fewer. (Smatch has *way* better flow analysis than GCC but the
tradeoff is that Smatch is slower.)

I can't understand why this warning triggers on this particular patch.
It has to do with the .config. A make allmodconfig will not trigger it,
but the kbuild .config does. Possibly to do with chance and inlining.

regards,
dan carpenter