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:   Sat, 23 Apr 2022 13:48:10 +0800
From:   kernel test robot <lkp@...el.com>
To:     Arunpravin <Arunpravin.PaneerSelvam@....com>
Cc:     kbuild-all@...ts.01.org, linux-kernel@...r.kernel.org,
        Christian König <christian.koenig@....com>,
        Matthew Auld <matthew.auld@...el.com>
Subject: drivers/gpu/drm/selftests/test-drm_buddy.c:371:7: warning: Local
 variable 'order' shadows outer variable [shadowVariable]

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   c00c5e1d157bec0ef0b0b59aa5482eb8dc7e8e49
commit: e6ff5ef81170e11dc0f196b0391f708f04fa8c87 drm/selftests: add drm buddy smoke testcase
date:   8 weeks ago
compiler: arc-elf-gcc (GCC) 11.2.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout e6ff5ef81170e11dc0f196b0391f708f04fa8c87
        cppcheck --quiet --enable=style,performance,portability --template=gcc FILE

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


cppcheck warnings: (new ones prefixed by >>)
   In file included from drivers/gpu/drm/selftests/test-drm_buddy.c:
>> drivers/gpu/drm/selftests/test-drm_buddy.c:371:7: warning: Local variable 'order' shadows outer variable [shadowVariable]
     int order;
         ^
   drivers/gpu/drm/selftests/test-drm_buddy.c:346:7: note: Shadowed declaration
    int *order;
         ^
   drivers/gpu/drm/selftests/test-drm_buddy.c:371:7: note: Shadow variable
     int order;
         ^

vim +/order +371 drivers/gpu/drm/selftests/test-drm_buddy.c

   340	
   341	static int igt_buddy_alloc_smoke(void *arg)
   342	{
   343		u64 mm_size, min_page_size, chunk_size, start = 0;
   344		unsigned long flags = 0;
   345		struct drm_buddy mm;
   346		int *order;
   347		int err, i;
   348	
   349		DRM_RND_STATE(prng, random_seed);
   350		IGT_TIMEOUT(end_time);
   351	
   352		igt_mm_config(&mm_size, &chunk_size);
   353	
   354		err = drm_buddy_init(&mm, mm_size, chunk_size);
   355		if (err) {
   356			pr_err("buddy_init failed(%d)\n", err);
   357			return err;
   358		}
   359	
   360		order = drm_random_order(mm.max_order + 1, &prng);
   361		if (!order)
   362			goto out_fini;
   363	
   364		for (i = 0; i <= mm.max_order; ++i) {
   365			struct drm_buddy_block *block;
   366			int max_order = order[i];
   367			bool timeout = false;
   368			LIST_HEAD(blocks);
   369			u64 total, size;
   370			LIST_HEAD(tmp);
 > 371			int order;
   372	
   373			err = igt_check_mm(&mm);
   374			if (err) {
   375				pr_err("pre-mm check failed, abort\n");
   376				break;
   377			}
   378	
   379			order = max_order;
   380			total = 0;
   381	
   382			do {
   383	retry:
   384				size = min_page_size = get_size(order, chunk_size);
   385				err = drm_buddy_alloc_blocks(&mm, start, mm_size, size,
   386							     min_page_size, &tmp, flags);
   387				if (err) {
   388					if (err == -ENOMEM) {
   389						pr_info("buddy_alloc hit -ENOMEM with order=%d\n",
   390							order);
   391					} else {
   392						if (order--) {
   393							err = 0;
   394							goto retry;
   395						}
   396	
   397						pr_err("buddy_alloc with order=%d failed(%d)\n",
   398						       order, err);
   399					}
   400	
   401					break;
   402				}
   403	
   404				block = list_first_entry_or_null(&tmp,
   405								 struct drm_buddy_block,
   406								 link);
   407				if (!block) {
   408					pr_err("alloc_blocks has no blocks\n");
   409					err = -EINVAL;
   410					break;
   411				}
   412	
   413				list_move_tail(&block->link, &blocks);
   414	
   415				if (drm_buddy_block_order(block) != order) {
   416					pr_err("buddy_alloc order mismatch\n");
   417					err = -EINVAL;
   418					break;
   419				}
   420	
   421				total += drm_buddy_block_size(&mm, block);
   422	
   423				if (__igt_timeout(end_time, NULL)) {
   424					timeout = true;
   425					break;
   426				}
   427			} while (total < mm.size);
   428	
   429			if (!err)
   430				err = igt_check_blocks(&mm, &blocks, total, false);
   431	
   432			drm_buddy_free_list(&mm, &blocks);
   433	
   434			if (!err) {
   435				err = igt_check_mm(&mm);
   436				if (err)
   437					pr_err("post-mm check failed\n");
   438			}
   439	
   440			if (err || timeout)
   441				break;
   442	
   443			cond_resched();
   444		}
   445	
   446		if (err == -ENOMEM)
   447			err = 0;
   448	
   449		kfree(order);
   450	out_fini:
   451		drm_buddy_fini(&mm);
   452	
   453		return err;
   454	}
   455	

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ