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]
Message-ID: <202107031347.3XvuSgpP-lkp@intel.com>
Date:   Sat, 3 Jul 2021 13:37:55 +0800
From:   kernel test robot <lkp@...el.com>
To:     Andrey Ryabinin <arbn@...dex-team.com>
Cc:     clang-built-linux@...glegroups.com, kbuild-all@...ts.01.org,
        linux-kernel@...r.kernel.org,
        Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
        Joerg Roedel <jroedel@...e.de>
Subject: [linux-stable-rc:linux-4.9.y 1986/2294]
 drivers/iommu/amd_iommu.c:1335:6: warning: variable 'flags' is used
 uninitialized whenever 'if' condition is true

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git linux-4.9.y
head:   f44373a3e7a37999a7506c79891abbb8f1318471
commit: 1d648460d7c513b1f500b7887c9af98285340432 [1986/2294] iommu/amd: Fix sleeping in atomic in increase_address_space()
config: x86_64-randconfig-a014-20210703 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project cb5de7c813f976dd458bd2a7f40702ba648bf650)
reproduce (this is a W=1 build):
        wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install x86_64 cross compiling tool for clang build
        # apt-get install binutils-x86-64-linux-gnu
        # https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git/commit/?id=1d648460d7c513b1f500b7887c9af98285340432
        git remote add linux-stable-rc https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable-rc.git
        git fetch --no-tags linux-stable-rc linux-4.9.y
        git checkout 1d648460d7c513b1f500b7887c9af98285340432
        # save the attached .config to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 

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

All warnings (new ones prefixed by >>):

>> drivers/iommu/amd_iommu.c:1335:6: warning: variable 'flags' is used uninitialized whenever 'if' condition is true [-Wsometimes-uninitialized]
           if (!pte)
               ^~~~
   drivers/iommu/amd_iommu.c:1352:40: note: uninitialized use occurs here
           spin_unlock_irqrestore(&domain->lock, flags);
                                                 ^~~~~
   drivers/iommu/amd_iommu.c:1335:2: note: remove the 'if' if its condition is always false
           if (!pte)
           ^~~~~~~~~
   drivers/iommu/amd_iommu.c:1331:21: note: initialize the variable 'flags' to silence this warning
           unsigned long flags;
                              ^
                               = 0
   drivers/iommu/amd_iommu.c:2474:13: warning: variable 'flush_addr' set but not used [-Wunused-but-set-variable]
           dma_addr_t flush_addr;
                      ^
   2 warnings generated.


vim +1335 drivers/iommu/amd_iommu.c

  1315	
  1316	/****************************************************************************
  1317	 *
  1318	 * The functions below are used the create the page table mappings for
  1319	 * unity mapped regions.
  1320	 *
  1321	 ****************************************************************************/
  1322	
  1323	/*
  1324	 * This function is used to add another level to an IO page table. Adding
  1325	 * another level increases the size of the address space by 9 bits to a size up
  1326	 * to 64 bits.
  1327	 */
  1328	static void increase_address_space(struct protection_domain *domain,
  1329					   gfp_t gfp)
  1330	{
  1331		unsigned long flags;
  1332		u64 *pte;
  1333	
  1334		pte = (void *)get_zeroed_page(gfp);
> 1335		if (!pte)
  1336			goto out;
  1337	
  1338		spin_lock_irqsave(&domain->lock, flags);
  1339	
  1340		if (WARN_ON_ONCE(domain->mode == PAGE_MODE_6_LEVEL))
  1341			/* address space already 64 bit large */
  1342			goto out;
  1343	
  1344		*pte             = PM_LEVEL_PDE(domain->mode,
  1345						virt_to_phys(domain->pt_root));
  1346		domain->pt_root  = pte;
  1347		domain->mode    += 1;
  1348		domain->updated  = true;
  1349		pte              = NULL;
  1350	
  1351	out:
  1352		spin_unlock_irqrestore(&domain->lock, flags);
  1353		free_page((unsigned long)pte);
  1354	
  1355		return;
  1356	}
  1357	

---
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" (32450 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ