All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: kbuild-all@lists.01.org
Subject: [trivial-mods:20200310_fallthrough_2 241/491] drivers/gpu/drm/drm_vm.c:599:3: note: in expansion of macro 'fallthrough'
Date: Wed, 11 Mar 2020 16:29:54 +0800	[thread overview]
Message-ID: <202003111649.mulReBR3%lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 7067 bytes --]

tree:   https://repo.or.cz/linux-2.6/trivial-mods.git 20200310_fallthrough_2
head:   71c55e51125d74e9bd8cce382679ee762d9a86fd
commit: 1b6369cf2ce2951c6e289e0f91cf23491728ad42 [241/491] DRM DRIVERS AND MISC GPU PATCHES: Use fallthrough;
config: arm-multi_v7_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (GCC) 9.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 1b6369cf2ce2951c6e289e0f91cf23491728ad42
        # save the attached .config to linux build tree
        GCC_VERSION=9.2.0 make.cross ARCH=arm 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

   In file included from include/linux/compiler_types.h:59,
                    from <command-line>:
   drivers/gpu/drm/drm_vm.c: In function 'drm_mmap_locked':
>> include/linux/compiler_attributes.h:200:41: warning: statement will never be executed [-Wswitch-unreachable]
     200 | # define fallthrough                    __attribute__((__fallthrough__))
         |                                         ^~~~~~~~~~~~~
>> drivers/gpu/drm/drm_vm.c:599:3: note: in expansion of macro 'fallthrough'
     599 |   fallthrough; /* to _DRM_FRAME_BUFFER */
         |   ^~~~~~~~~~~
--
   In file included from include/linux/compiler_types.h:59,
                    from <command-line>:
   drivers/gpu//drm/drm_vm.c: In function 'drm_mmap_locked':
>> include/linux/compiler_attributes.h:200:41: warning: statement will never be executed [-Wswitch-unreachable]
     200 | # define fallthrough                    __attribute__((__fallthrough__))
         |                                         ^~~~~~~~~~~~~
   drivers/gpu//drm/drm_vm.c:599:3: note: in expansion of macro 'fallthrough'
     599 |   fallthrough; /* to _DRM_FRAME_BUFFER */
         |   ^~~~~~~~~~~

vim +/fallthrough +599 drivers/gpu/drm/drm_vm.c

   515	
   516	/**
   517	 * mmap DMA memory.
   518	 *
   519	 * \param file_priv DRM file private.
   520	 * \param vma virtual memory area.
   521	 * \return zero on success or a negative number on failure.
   522	 *
   523	 * If the virtual memory area has no offset associated with it then it's a DMA
   524	 * area, so calls mmap_dma(). Otherwise searches the map in drm_device::maplist,
   525	 * checks that the restricted flag is not set, sets the virtual memory operations
   526	 * according to the mapping type and remaps the pages. Finally sets the file
   527	 * pointer and calls vm_open().
   528	 */
   529	static int drm_mmap_locked(struct file *filp, struct vm_area_struct *vma)
   530	{
   531		struct drm_file *priv = filp->private_data;
   532		struct drm_device *dev = priv->minor->dev;
   533		struct drm_local_map *map = NULL;
   534		resource_size_t offset = 0;
   535		struct drm_hash_item *hash;
   536	
   537		DRM_DEBUG("start = 0x%lx, end = 0x%lx, page offset = 0x%lx\n",
   538			  vma->vm_start, vma->vm_end, vma->vm_pgoff);
   539	
   540		if (!priv->authenticated)
   541			return -EACCES;
   542	
   543		/* We check for "dma". On Apple's UniNorth, it's valid to have
   544		 * the AGP mapped at physical address 0
   545		 * --BenH.
   546		 */
   547		if (!vma->vm_pgoff
   548	#if IS_ENABLED(CONFIG_AGP)
   549		    && (!dev->agp
   550			|| dev->agp->agp_info.device->vendor != PCI_VENDOR_ID_APPLE)
   551	#endif
   552		    )
   553			return drm_mmap_dma(filp, vma);
   554	
   555		if (drm_ht_find_item(&dev->map_hash, vma->vm_pgoff, &hash)) {
   556			DRM_ERROR("Could not find map\n");
   557			return -EINVAL;
   558		}
   559	
   560		map = drm_hash_entry(hash, struct drm_map_list, hash)->map;
   561		if (!map || ((map->flags & _DRM_RESTRICTED) && !capable(CAP_SYS_ADMIN)))
   562			return -EPERM;
   563	
   564		/* Check for valid size. */
   565		if (map->size < vma->vm_end - vma->vm_start)
   566			return -EINVAL;
   567	
   568		if (!capable(CAP_SYS_ADMIN) && (map->flags & _DRM_READ_ONLY)) {
   569			vma->vm_flags &= ~(VM_WRITE | VM_MAYWRITE);
   570	#if defined(__i386__) || defined(__x86_64__)
   571			pgprot_val(vma->vm_page_prot) &= ~_PAGE_RW;
   572	#else
   573			/* Ye gads this is ugly.  With more thought
   574			   we could move this up higher and use
   575			   `protection_map' instead.  */
   576			vma->vm_page_prot =
   577			    __pgprot(pte_val
   578				     (pte_wrprotect
   579				      (__pte(pgprot_val(vma->vm_page_prot)))));
   580	#endif
   581		}
   582	
   583		switch (map->type) {
   584	#if !defined(__arm__)
   585		case _DRM_AGP:
   586			if (dev->agp && dev->agp->cant_use_aperture) {
   587				/*
   588				 * On some platforms we can't talk to bus dma address from the CPU, so for
   589				 * memory of type DRM_AGP, we'll deal with sorting out the real physical
   590				 * pages and mappings in fault()
   591				 */
   592	#if defined(__powerpc__)
   593				vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot);
   594	#endif
   595				vma->vm_ops = &drm_vm_ops;
   596				break;
   597			}
   598	#endif
 > 599			fallthrough;	/* to _DRM_FRAME_BUFFER */
   600		case _DRM_FRAME_BUFFER:
   601		case _DRM_REGISTERS:
   602			offset = drm_core_get_reg_ofs(dev);
   603			vma->vm_page_prot = drm_io_prot(map, vma);
   604			if (io_remap_pfn_range(vma, vma->vm_start,
   605					       (map->offset + offset) >> PAGE_SHIFT,
   606					       vma->vm_end - vma->vm_start,
   607					       vma->vm_page_prot))
   608				return -EAGAIN;
   609			DRM_DEBUG("   Type = %d; start = 0x%lx, end = 0x%lx,"
   610				  " offset = 0x%llx\n",
   611				  map->type,
   612				  vma->vm_start, vma->vm_end, (unsigned long long)(map->offset + offset));
   613	
   614			vma->vm_ops = &drm_vm_ops;
   615			break;
   616		case _DRM_CONSISTENT:
   617			/* Consistent memory is really like shared memory. But
   618			 * it's allocated in a different way, so avoid fault */
   619			if (remap_pfn_range(vma, vma->vm_start,
   620			    page_to_pfn(virt_to_page(map->handle)),
   621			    vma->vm_end - vma->vm_start, vma->vm_page_prot))
   622				return -EAGAIN;
   623			vma->vm_page_prot = drm_dma_prot(map->type, vma);
   624			fallthrough;	/* to _DRM_SHM */
   625		case _DRM_SHM:
   626			vma->vm_ops = &drm_vm_shm_ops;
   627			vma->vm_private_data = (void *)map;
   628			break;
   629		case _DRM_SCATTER_GATHER:
   630			vma->vm_ops = &drm_vm_sg_ops;
   631			vma->vm_private_data = (void *)map;
   632			vma->vm_page_prot = drm_dma_prot(map->type, vma);
   633			break;
   634		default:
   635			return -EINVAL;	/* This should never happen. */
   636		}
   637		vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP;
   638	
   639		drm_vm_open_locked(dev, vma);
   640		return 0;
   641	}
   642	

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 50241 bytes --]

             reply	other threads:[~2020-03-11  8:29 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-11  8:29 kbuild test robot [this message]
2020-03-11  8:43 ` [trivial-mods:20200310_fallthrough_2 241/491] drivers/gpu/drm/drm_vm.c:599:3: note: in expansion of macro 'fallthrough' Joe Perches

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202003111649.mulReBR3%lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.