[m68k:no-dma-compile-testing-v2 25/26] drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:610:4: warning: argument 2 null where non-null expected

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



tree:   https://git.kernel.org/pub/scm/linux/kernel/git/geert/linux-m68k.git no-dma-compile-testing-v2
head:   2f66c3ff5625a968fe87b2dc0fb74eb8ca31bc40
commit: e1304a3d5b8cd7c476d5e8834482f0056f58b316 [25/26] staging: vc04_services: Remove depends on HAS_DMA in case of platform dependency
config: cris-allyesconfig (attached as .config)
compiler: cris-linux-gcc (GCC) 7.2.0
reproduce:
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        git checkout e1304a3d5b8cd7c476d5e8834482f0056f58b316
        # save the attached .config to linux build tree
        make.cross ARCH=cris 

All warnings (new ones prefixed by >>):

   drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c: In function 'vchiq_complete_bulk':
drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:610:4: warning: argument 2 null where non-null expected [-Wnonnull]
       memcpy((char *)kmap(pages[0]) +
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        pagelist->offset,
        ~~~~~~~~~~~~~~~~~
        fragments,
        ~~~~~~~~~~
        head_bytes);
        ~~~~~~~~~~~
   In file included from include/linux/string.h:20:0,
                    from include/linux/bitmap.h:9,
                    from include/linux/cpumask.h:12,
                    from include/linux/interrupt.h:10,
                    from drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c:37:
   arch/cris/include/asm/string.h:8:14: note: in a call to function 'memcpy' declared here
    extern void *memcpy(void *, const void *, size_t);
                 ^~~~~~

vim +610 drivers/staging/vc04_services/interface/vchiq_arm/vchiq_2835_arm.c

71bad7f08 popcornmix           2013-07-02  574  
71bad7f08 popcornmix           2013-07-02  575  static void
4807f2c0e Michael Zoran        2016-11-07  576  free_pagelist(struct vchiq_pagelist_info *pagelistinfo,
4807f2c0e Michael Zoran        2016-11-07  577  	      int actual)
71bad7f08 popcornmix           2013-07-02  578  {
4807f2c0e Michael Zoran        2016-11-07  579  	PAGELIST_T *pagelist   = pagelistinfo->pagelist;
4807f2c0e Michael Zoran        2016-11-07  580  	struct page **pages    = pagelistinfo->pages;
4807f2c0e Michael Zoran        2016-11-07  581  	unsigned int num_pages = pagelistinfo->num_pages;
71bad7f08 popcornmix           2013-07-02  582  
df044ebfc Greg Kroah-Hartman   2016-10-10  583  	vchiq_log_trace(vchiq_arm_log_level, "free_pagelist - %pK, %d",
4807f2c0e Michael Zoran        2016-11-07  584  			pagelistinfo->pagelist, actual);
cf9caf192 Michael Zoran        2016-10-25  585  
4807f2c0e Michael Zoran        2016-11-07  586  	/*
4807f2c0e Michael Zoran        2016-11-07  587  	 * NOTE: dma_unmap_sg must be called before the
4807f2c0e Michael Zoran        2016-11-07  588  	 * cpu can touch any of the data/pages.
4807f2c0e Michael Zoran        2016-11-07  589  	 */
4807f2c0e Michael Zoran        2016-11-07  590  	dma_unmap_sg(g_dev, pagelistinfo->scatterlist,
4807f2c0e Michael Zoran        2016-11-07  591  		     pagelistinfo->num_pages, pagelistinfo->dma_dir);
4807f2c0e Michael Zoran        2016-11-07  592  	pagelistinfo->scatterlist_mapped = 0;
71bad7f08 popcornmix           2013-07-02  593  
71bad7f08 popcornmix           2013-07-02  594  	/* Deal with any partial cache lines (fragments) */
71bad7f08 popcornmix           2013-07-02  595  	if (pagelist->type >= PAGELIST_READ_WITH_FRAGMENTS) {
71bad7f08 popcornmix           2013-07-02  596  		char *fragments = g_fragments_base +
71bad7f08 popcornmix           2013-07-02  597  			(pagelist->type - PAGELIST_READ_WITH_FRAGMENTS) *
71bad7f08 popcornmix           2013-07-02  598  			g_fragments_size;
71bad7f08 popcornmix           2013-07-02  599  		int head_bytes, tail_bytes;
6e475350a Yamanappagouda Patil 2017-02-21  600  
71bad7f08 popcornmix           2013-07-02  601  		head_bytes = (g_cache_line_size - pagelist->offset) &
71bad7f08 popcornmix           2013-07-02  602  			(g_cache_line_size - 1);
71bad7f08 popcornmix           2013-07-02  603  		tail_bytes = (pagelist->offset + actual) &
71bad7f08 popcornmix           2013-07-02  604  			(g_cache_line_size - 1);
71bad7f08 popcornmix           2013-07-02  605  
71bad7f08 popcornmix           2013-07-02  606  		if ((actual >= 0) && (head_bytes != 0)) {
71bad7f08 popcornmix           2013-07-02  607  			if (head_bytes > actual)
71bad7f08 popcornmix           2013-07-02  608  				head_bytes = actual;
71bad7f08 popcornmix           2013-07-02  609  
974d4d03f Stefan Wahren        2017-09-03 @610  			memcpy((char *)kmap(pages[0]) +

:::::: The code at line 610 was first introduced by commit
:::::: 974d4d03fc020af4fa4e9e72a86f0fefa37803c5 staging: vchiq_2835_arm: Fix NULL ptr dereference in free_pagelist

:::::: TO: Stefan Wahren <stefan.wahren@xxxxxxxx>
:::::: CC: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx>

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

Attachment: .config.gz
Description: application/gzip


[Index of Archives]     [Video for Linux]     [Yosemite News]     [Linux S/390]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux