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: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Date:   Sun, 6 Aug 2017 17:39:48 +0800
From:   kbuild test robot <fengguang.wu@...el.com>
To:     Jan Kiszka <jan.kiszka@...mens.com>
Cc:     kbuild-all@...org, linux-kernel@...r.kernel.org,
        Ingo Molnar <mingo@...nel.org>
Subject: drivers/gpu/drm/i915/selftests/i915_gem_request.c:344: error:
 'request' may be used uninitialized in this function

Hi Jan,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   0fdd951c9bef93637d5af036851e7a5632fbd6c3
commit: 7e6091209f7f73e2a81943020793b5ad26d645c6 x86/build: Permit building with old make versions
date:   2 months ago
config: x86_64-randconfig-v0-08061633 (attached as .config)
compiler: gcc-4.4 (Debian 4.4.7-8) 4.4.7
reproduce:
        git checkout 7e6091209f7f73e2a81943020793b5ad26d645c6
        # save the attached .config to linux build tree
        make ARCH=x86_64 

Note: it may well be a FALSE warning. FWIW you are at least aware of it now.
http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings

All errors (new ones prefixed by >>):

   cc1: warnings being treated as errors
   In file included from drivers/gpu/drm/i915/i915_gem_request.c:1219:
   drivers/gpu/drm/i915/selftests/i915_gem_request.c: In function 'live_nop_request':
>> drivers/gpu/drm/i915/selftests/i915_gem_request.c:344: error: 'request' may be used uninitialized in this function

vim +/request +344 drivers/gpu/drm/i915/selftests/i915_gem_request.c

b348090d Chris Wilson 2017-02-13  326  
b348090d Chris Wilson 2017-02-13  327  static int live_nop_request(void *arg)
b348090d Chris Wilson 2017-02-13  328  {
b348090d Chris Wilson 2017-02-13  329  	struct drm_i915_private *i915 = arg;
b348090d Chris Wilson 2017-02-13  330  	struct intel_engine_cs *engine;
b348090d Chris Wilson 2017-02-13  331  	struct live_test t;
b348090d Chris Wilson 2017-02-13  332  	unsigned int id;
b348090d Chris Wilson 2017-02-13  333  	int err;
b348090d Chris Wilson 2017-02-13  334  
b348090d Chris Wilson 2017-02-13  335  	/* Submit various sized batches of empty requests, to each engine
b348090d Chris Wilson 2017-02-13  336  	 * (individually), and wait for the batch to complete. We can check
b348090d Chris Wilson 2017-02-13  337  	 * the overhead of submitting requests to the hardware.
b348090d Chris Wilson 2017-02-13  338  	 */
b348090d Chris Wilson 2017-02-13  339  
b348090d Chris Wilson 2017-02-13  340  	mutex_lock(&i915->drm.struct_mutex);
b348090d Chris Wilson 2017-02-13  341  
b348090d Chris Wilson 2017-02-13  342  	for_each_engine(engine, i915, id) {
b348090d Chris Wilson 2017-02-13  343  		IGT_TIMEOUT(end_time);
b348090d Chris Wilson 2017-02-13 @344  		struct drm_i915_gem_request *request;
b348090d Chris Wilson 2017-02-13  345  		unsigned long n, prime;
b348090d Chris Wilson 2017-02-13  346  		ktime_t times[2] = {};
b348090d Chris Wilson 2017-02-13  347  
b348090d Chris Wilson 2017-02-13  348  		err = begin_live_test(&t, i915, __func__, engine->name);
b348090d Chris Wilson 2017-02-13  349  		if (err)
b348090d Chris Wilson 2017-02-13  350  			goto out_unlock;
b348090d Chris Wilson 2017-02-13  351  
b348090d Chris Wilson 2017-02-13  352  		for_each_prime_number_from(prime, 1, 8192) {
b348090d Chris Wilson 2017-02-13  353  			times[1] = ktime_get_raw();
b348090d Chris Wilson 2017-02-13  354  
b348090d Chris Wilson 2017-02-13  355  			for (n = 0; n < prime; n++) {
b348090d Chris Wilson 2017-02-13  356  				request = i915_gem_request_alloc(engine,
b348090d Chris Wilson 2017-02-13  357  								 i915->kernel_context);
b348090d Chris Wilson 2017-02-13  358  				if (IS_ERR(request)) {
b348090d Chris Wilson 2017-02-13  359  					err = PTR_ERR(request);
b348090d Chris Wilson 2017-02-13  360  					goto out_unlock;
b348090d Chris Wilson 2017-02-13  361  				}
b348090d Chris Wilson 2017-02-13  362  
b348090d Chris Wilson 2017-02-13  363  				/* This space is left intentionally blank.
b348090d Chris Wilson 2017-02-13  364  				 *
b348090d Chris Wilson 2017-02-13  365  				 * We do not actually want to perform any
b348090d Chris Wilson 2017-02-13  366  				 * action with this request, we just want
b348090d Chris Wilson 2017-02-13  367  				 * to measure the latency in allocation
b348090d Chris Wilson 2017-02-13  368  				 * and submission of our breadcrumbs -
b348090d Chris Wilson 2017-02-13  369  				 * ensuring that the bare request is sufficient
b348090d Chris Wilson 2017-02-13  370  				 * for the system to work (i.e. proper HEAD
b348090d Chris Wilson 2017-02-13  371  				 * tracking of the rings, interrupt handling,
b348090d Chris Wilson 2017-02-13  372  				 * etc). It also gives us the lowest bounds
b348090d Chris Wilson 2017-02-13  373  				 * for latency.
b348090d Chris Wilson 2017-02-13  374  				 */
b348090d Chris Wilson 2017-02-13  375  
b348090d Chris Wilson 2017-02-13  376  				i915_add_request(request);
b348090d Chris Wilson 2017-02-13  377  			}
b348090d Chris Wilson 2017-02-13  378  			i915_wait_request(request,
b348090d Chris Wilson 2017-02-13  379  					  I915_WAIT_LOCKED,
b348090d Chris Wilson 2017-02-13  380  					  MAX_SCHEDULE_TIMEOUT);
b348090d Chris Wilson 2017-02-13  381  
b348090d Chris Wilson 2017-02-13  382  			times[1] = ktime_sub(ktime_get_raw(), times[1]);
b348090d Chris Wilson 2017-02-13  383  			if (prime == 1)
b348090d Chris Wilson 2017-02-13  384  				times[0] = times[1];
b348090d Chris Wilson 2017-02-13  385  
b348090d Chris Wilson 2017-02-13  386  			if (__igt_timeout(end_time, NULL))
b348090d Chris Wilson 2017-02-13  387  				break;
b348090d Chris Wilson 2017-02-13  388  		}
b348090d Chris Wilson 2017-02-13  389  
b348090d Chris Wilson 2017-02-13  390  		err = end_live_test(&t);
b348090d Chris Wilson 2017-02-13  391  		if (err)
b348090d Chris Wilson 2017-02-13  392  			goto out_unlock;
b348090d Chris Wilson 2017-02-13  393  
b348090d Chris Wilson 2017-02-13  394  		pr_info("Request latencies on %s: 1 = %lluns, %lu = %lluns\n",
b348090d Chris Wilson 2017-02-13  395  			engine->name,
b348090d Chris Wilson 2017-02-13  396  			ktime_to_ns(times[0]),
b348090d Chris Wilson 2017-02-13  397  			prime, div64_u64(ktime_to_ns(times[1]), prime));
b348090d Chris Wilson 2017-02-13  398  	}
b348090d Chris Wilson 2017-02-13  399  
b348090d Chris Wilson 2017-02-13  400  out_unlock:
b348090d Chris Wilson 2017-02-13  401  	mutex_unlock(&i915->drm.struct_mutex);
b348090d Chris Wilson 2017-02-13  402  	return err;
b348090d Chris Wilson 2017-02-13  403  }
b348090d Chris Wilson 2017-02-13  404  

:::::: The code at line 344 was first introduced by commit
:::::: b348090d6758cc391dc91f8a8233b18f0acc8458 drm/i915: Simple selftest to exercise live requests

:::::: TO: Chris Wilson <chris@...is-wilson.co.uk>
:::::: CC: Chris Wilson <chris@...is-wilson.co.uk>

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

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ