lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [day] [month] [year] [list]
Date:   Fri, 12 Mar 2021 08:26:24 +0800
From:   kernel test robot <lkp@...el.com>
To:     Mike Rapoport <rppt@...ux.ibm.com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Andrew Morton <akpm@...ux-foundation.org>,
        Linux Memory Management List <linux-mm@...ck.org>
Subject: drivers/gpu/drm/etnaviv/etnaviv_dump.c:213 etnaviv_core_dump() warn:
 should - mem_map) + arch_pfn_offset) << 12' be a 64 bit

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   28806e4d9b97865b450d72156e9ad229f2067f0b
commit: 050b2da268f8fc4f8123f6462c430a61547b2f7b arc: use FLATMEM with freeing of unused memory map instead of DISCONTIGMEM
date:   3 months ago
config: arc-randconfig-m031-20210311 (attached as .config)
compiler: arceb-elf-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@...el.com>

smatch warnings:
drivers/gpu/drm/etnaviv/etnaviv_dump.c:213 etnaviv_core_dump() warn: should '(((*pages++) - mem_map) + arch_pfn_offset) << 12' be a 64 bit type?

vim +213 drivers/gpu/drm/etnaviv/etnaviv_dump.c

a8c21a5451d831 The etnaviv authors 2015-12-03  112  
9a1fdae5876016 Lucas Stach         2019-08-09  113  void etnaviv_core_dump(struct etnaviv_gem_submit *submit)
a8c21a5451d831 The etnaviv authors 2015-12-03  114  {
9a1fdae5876016 Lucas Stach         2019-08-09  115  	struct etnaviv_gpu *gpu = submit->gpu;
a8c21a5451d831 The etnaviv authors 2015-12-03  116  	struct core_dump_iterator iter;
a8c21a5451d831 The etnaviv authors 2015-12-03  117  	struct etnaviv_gem_object *obj;
a8c21a5451d831 The etnaviv authors 2015-12-03  118  	unsigned int n_obj, n_bomap_pages;
a8c21a5451d831 The etnaviv authors 2015-12-03  119  	size_t file_size, mmu_size;
a8c21a5451d831 The etnaviv authors 2015-12-03  120  	__le64 *bomap, *bomap_start;
9a1fdae5876016 Lucas Stach         2019-08-09  121  	int i;
a8c21a5451d831 The etnaviv authors 2015-12-03  122  
6d7a20c0776036 Lucas Stach         2017-12-06  123  	/* Only catch the first event, or when manually re-armed */
6d7a20c0776036 Lucas Stach         2017-12-06  124  	if (!etnaviv_dump_core)
6d7a20c0776036 Lucas Stach         2017-12-06  125  		return;
6d7a20c0776036 Lucas Stach         2017-12-06  126  	etnaviv_dump_core = false;
6d7a20c0776036 Lucas Stach         2017-12-06  127  
27b67278e007b5 Lucas Stach         2019-07-05  128  	mutex_lock(&gpu->mmu_context->lock);
1396500d673bd0 Lucas Stach         2019-05-21  129  
27b67278e007b5 Lucas Stach         2019-07-05  130  	mmu_size = etnaviv_iommu_dump_size(gpu->mmu_context);
a8c21a5451d831 The etnaviv authors 2015-12-03  131  
9a1fdae5876016 Lucas Stach         2019-08-09  132  	/* We always dump registers, mmu, ring, hanging cmdbuf and end marker */
9a1fdae5876016 Lucas Stach         2019-08-09  133  	n_obj = 5;
a8c21a5451d831 The etnaviv authors 2015-12-03  134  	n_bomap_pages = 0;
a8c21a5451d831 The etnaviv authors 2015-12-03  135  	file_size = ARRAY_SIZE(etnaviv_dump_registers) *
a8c21a5451d831 The etnaviv authors 2015-12-03  136  			sizeof(struct etnaviv_dump_registers) +
9a1fdae5876016 Lucas Stach         2019-08-09  137  		    mmu_size + gpu->buffer.size + submit->cmdbuf.size;
a8c21a5451d831 The etnaviv authors 2015-12-03  138  
a8c21a5451d831 The etnaviv authors 2015-12-03  139  	/* Add in the active buffer objects */
9a1fdae5876016 Lucas Stach         2019-08-09  140  	for (i = 0; i < submit->nr_bos; i++) {
9a1fdae5876016 Lucas Stach         2019-08-09  141  		obj = submit->bos[i].obj;
a8c21a5451d831 The etnaviv authors 2015-12-03  142  		file_size += obj->base.size;
a8c21a5451d831 The etnaviv authors 2015-12-03  143  		n_bomap_pages += obj->base.size >> PAGE_SHIFT;
a8c21a5451d831 The etnaviv authors 2015-12-03  144  		n_obj++;
a8c21a5451d831 The etnaviv authors 2015-12-03  145  	}
a8c21a5451d831 The etnaviv authors 2015-12-03  146  
a8c21a5451d831 The etnaviv authors 2015-12-03  147  	/* If we have any buffer objects, add a bomap object */
a8c21a5451d831 The etnaviv authors 2015-12-03  148  	if (n_bomap_pages) {
a8c21a5451d831 The etnaviv authors 2015-12-03  149  		file_size += n_bomap_pages * sizeof(__le64);
a8c21a5451d831 The etnaviv authors 2015-12-03  150  		n_obj++;
a8c21a5451d831 The etnaviv authors 2015-12-03  151  	}
a8c21a5451d831 The etnaviv authors 2015-12-03  152  
a8c21a5451d831 The etnaviv authors 2015-12-03  153  	/* Add the size of the headers */
a8c21a5451d831 The etnaviv authors 2015-12-03  154  	file_size += sizeof(*iter.hdr) * n_obj;
a8c21a5451d831 The etnaviv authors 2015-12-03  155  
a8c21a5451d831 The etnaviv authors 2015-12-03  156  	/* Allocate the file in vmalloc memory, it's likely to be big */
88dca4ca5a93d2 Christoph Hellwig   2020-06-01  157  	iter.start = __vmalloc(file_size, GFP_KERNEL | __GFP_NOWARN |
88dca4ca5a93d2 Christoph Hellwig   2020-06-01  158  			__GFP_NORETRY);
a8c21a5451d831 The etnaviv authors 2015-12-03  159  	if (!iter.start) {
27b67278e007b5 Lucas Stach         2019-07-05  160  		mutex_unlock(&gpu->mmu_context->lock);
a8c21a5451d831 The etnaviv authors 2015-12-03  161  		dev_warn(gpu->dev, "failed to allocate devcoredump file\n");
a8c21a5451d831 The etnaviv authors 2015-12-03  162  		return;
a8c21a5451d831 The etnaviv authors 2015-12-03  163  	}
a8c21a5451d831 The etnaviv authors 2015-12-03  164  
a8c21a5451d831 The etnaviv authors 2015-12-03  165  	/* Point the data member after the headers */
a8c21a5451d831 The etnaviv authors 2015-12-03  166  	iter.hdr = iter.start;
a8c21a5451d831 The etnaviv authors 2015-12-03  167  	iter.data = &iter.hdr[n_obj];
a8c21a5451d831 The etnaviv authors 2015-12-03  168  
a8c21a5451d831 The etnaviv authors 2015-12-03  169  	memset(iter.hdr, 0, iter.data - iter.start);
a8c21a5451d831 The etnaviv authors 2015-12-03  170  
a8c21a5451d831 The etnaviv authors 2015-12-03  171  	etnaviv_core_dump_registers(&iter, gpu);
27b67278e007b5 Lucas Stach         2019-07-05  172  	etnaviv_core_dump_mmu(&iter, gpu->mmu_context, mmu_size);
2f9225dbc09abe Lucas Stach         2017-11-24  173  	etnaviv_core_dump_mem(&iter, ETDUMP_BUF_RING, gpu->buffer.vaddr,
2f9225dbc09abe Lucas Stach         2017-11-24  174  			      gpu->buffer.size,
db82a0435b8be3 Lucas Stach         2019-07-05  175  			      etnaviv_cmdbuf_get_va(&gpu->buffer,
17e4660ae3d7e1 Lucas Stach         2019-07-05  176  					&gpu->mmu_context->cmdbuf_mapping));
2f9225dbc09abe Lucas Stach         2017-11-24  177  
2f9225dbc09abe Lucas Stach         2017-11-24  178  	etnaviv_core_dump_mem(&iter, ETDUMP_BUF_CMD,
2f9225dbc09abe Lucas Stach         2017-11-24  179  			      submit->cmdbuf.vaddr, submit->cmdbuf.size,
db82a0435b8be3 Lucas Stach         2019-07-05  180  			      etnaviv_cmdbuf_get_va(&submit->cmdbuf,
17e4660ae3d7e1 Lucas Stach         2019-07-05  181  					&gpu->mmu_context->cmdbuf_mapping));
a8c21a5451d831 The etnaviv authors 2015-12-03  182  
ca8cb69580236f Lucas Stach         2019-10-16  183  	mutex_unlock(&gpu->mmu_context->lock);
ca8cb69580236f Lucas Stach         2019-10-16  184  
a8c21a5451d831 The etnaviv authors 2015-12-03  185  	/* Reserve space for the bomap */
a8c21a5451d831 The etnaviv authors 2015-12-03  186  	if (n_bomap_pages) {
a8c21a5451d831 The etnaviv authors 2015-12-03  187  		bomap_start = bomap = iter.data;
a8c21a5451d831 The etnaviv authors 2015-12-03  188  		memset(bomap, 0, sizeof(*bomap) * n_bomap_pages);
a8c21a5451d831 The etnaviv authors 2015-12-03  189  		etnaviv_core_dump_header(&iter, ETDUMP_BUF_BOMAP,
a8c21a5451d831 The etnaviv authors 2015-12-03  190  					 bomap + n_bomap_pages);
a8c21a5451d831 The etnaviv authors 2015-12-03  191  	} else {
a8c21a5451d831 The etnaviv authors 2015-12-03  192  		/* Silence warning */
a8c21a5451d831 The etnaviv authors 2015-12-03  193  		bomap_start = bomap = NULL;
a8c21a5451d831 The etnaviv authors 2015-12-03  194  	}
a8c21a5451d831 The etnaviv authors 2015-12-03  195  
9a1fdae5876016 Lucas Stach         2019-08-09  196  	for (i = 0; i < submit->nr_bos; i++) {
9a1fdae5876016 Lucas Stach         2019-08-09  197  		struct etnaviv_vram_mapping *vram;
a8c21a5451d831 The etnaviv authors 2015-12-03  198  		struct page **pages;
a8c21a5451d831 The etnaviv authors 2015-12-03  199  		void *vaddr;
a8c21a5451d831 The etnaviv authors 2015-12-03  200  
9a1fdae5876016 Lucas Stach         2019-08-09  201  		obj = submit->bos[i].obj;
9a1fdae5876016 Lucas Stach         2019-08-09  202  		vram = submit->bos[i].mapping;
a8c21a5451d831 The etnaviv authors 2015-12-03  203  
339073ef77e45e Lucas Stach         2016-01-22  204  		mutex_lock(&obj->lock);
a8c21a5451d831 The etnaviv authors 2015-12-03  205  		pages = etnaviv_gem_get_pages(obj);
339073ef77e45e Lucas Stach         2016-01-22  206  		mutex_unlock(&obj->lock);
f8261c376e7f8c Dan Carpenter       2019-01-14  207  		if (!IS_ERR(pages)) {
a8c21a5451d831 The etnaviv authors 2015-12-03  208  			int j;
a8c21a5451d831 The etnaviv authors 2015-12-03  209  
a8c21a5451d831 The etnaviv authors 2015-12-03  210  			iter.hdr->data[0] = bomap - bomap_start;
a8c21a5451d831 The etnaviv authors 2015-12-03  211  
a8c21a5451d831 The etnaviv authors 2015-12-03  212  			for (j = 0; j < obj->base.size >> PAGE_SHIFT; j++)
a8c21a5451d831 The etnaviv authors 2015-12-03 @213  				*bomap++ = cpu_to_le64(page_to_phys(*pages++));

:::::: The code at line 213 was first introduced by commit
:::::: a8c21a5451d831e67b7a6fb910f9ca8bc7b43554 drm/etnaviv: add initial etnaviv DRM driver

:::::: TO: The etnaviv authors <dri-devel@...ts.freedesktop.org>
:::::: CC: Lucas Stach <l.stach@...gutronix.de>

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

Download attachment ".config.gz" of type "application/gzip" (28487 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ