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

From: kernel test robot <[email-masked]>
Date: Mon, 31 Jan 2022 19:16:01 +0800

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-masked]/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-masked]>

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-masked]

_______________________________________________
linux-arm-kernel mailing list
[email-masked]
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel