tree:   https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git x86/amd
head:   20b46dff13bd1d250dc968b318f0fac3c996b3fa
commit: 3ac3e5ee5ed56b07448f295902e44916eb6979fc [6/12] iommu/amd: Copy old 
trans table from old kernel
config: x86_64-rhel (attached as .config)
compiler: gcc-6 (Debian 6.2.0-3) 6.2.0 20160901
reproduce:
        git checkout 3ac3e5ee5ed56b07448f295902e44916eb6979fc
        # 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 warnings (new ones prefixed by >>):

   drivers//iommu/amd_iommu_init.c: In function 'early_enable_iommus':
>> drivers//iommu/amd_iommu_init.c:887:17: warning: 'entry' may be used 
>> uninitialized in this function [-Wmaybe-uninitialized]
     old_devtb_phys = entry & PAGE_MASK;
                     
   drivers//iommu/amd_iommu_init.c:858:6: note: 'entry' was declared here
     u64 entry, last_entry = 0;
         ^~~~~

vim +/entry +887 drivers//iommu/amd_iommu_init.c

c5cca146 arch/x86/kernel/amd_iommu_init.c Joerg Roedel 2009-10-09  851  
c5cca146 arch/x86/kernel/amd_iommu_init.c Joerg Roedel 2009-10-09  852  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  853  static 
bool copy_device_table(void)
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  854  {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  855          
struct dev_table_entry *old_devtb = NULL;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  856          
u32 lo, hi, devid, old_devtb_size;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  857          
phys_addr_t old_devtb_phys;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  858          
u64 entry, last_entry = 0;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  859          
struct amd_iommu *iommu;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  860          
u16 dom_id, dte_v;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  861          
gfp_t gfp_flag;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  862  
3ac3e5ee drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  863          
if (!amd_iommu_pre_enabled)
3ac3e5ee drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  864          
        return false;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  865  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  866          
pr_warn("Translation is already enabled - trying to copy translation 
structures\n");
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  867          
for_each_iommu(iommu) {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  868          
        /* All IOMMUs should use the same device table with the same size */
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  869          
        lo = readl(iommu->mmio_base + MMIO_DEV_TABLE_OFFSET);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  870          
        hi = readl(iommu->mmio_base + MMIO_DEV_TABLE_OFFSET + 4);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  871          
        entry = (((u64) hi) << 32) + lo;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  872          
        if (last_entry && last_entry != entry) {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  873          
                pr_err("IOMMU:%d should use the same dev table as others!/n",
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  874          
                        iommu->index);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  875          
                return false;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  876          
        }
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  877          
        last_entry = entry;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  878  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  879          
        old_devtb_size = ((entry & ~PAGE_MASK) + 1) << 12;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  880          
        if (old_devtb_size != dev_table_size) {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  881          
                pr_err("The device table size of IOMMU:%d is not expected!/n",
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  882          
                        iommu->index);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  883          
                return false;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  884          
        }
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  885          
}
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  886  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09 @887          
old_devtb_phys = entry & PAGE_MASK;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  888          
old_devtb = memremap(old_devtb_phys, dev_table_size, MEMREMAP_WB);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  889          
if (!old_devtb)
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  890          
        return false;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  891  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  892          
gfp_flag = GFP_KERNEL | __GFP_ZERO;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  893          
old_dev_tbl_cpy = (void *)__get_free_pages(gfp_flag,
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  894          
                        get_order(dev_table_size));
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  895          
if (old_dev_tbl_cpy == NULL) {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  896          
        pr_err("Failed to allocate memory for copying old device table!/n");
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  897          
        return false;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  898          
}
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  899  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  900          
for (devid = 0; devid <= amd_iommu_last_bdf; ++devid) {
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  901          
        old_dev_tbl_cpy[devid] = old_devtb[devid];
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  902          
        dom_id = old_devtb[devid].data[1] & DEV_DOMID_MASK;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  903          
        dte_v = old_devtb[devid].data[0] & DTE_FLAG_V;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  904          
        if (dte_v && dom_id)
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  905          
                __set_bit(dom_id, amd_iommu_pd_alloc_bitmap);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  906          
}
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  907          
memunmap(old_devtb);
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  908  
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  909          
return true;
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  910  }
45a01c42 drivers/iommu/amd_iommu_init.c   Baoquan He   2017-08-09  911  

:::::: The code at line 887 was first introduced by commit
:::::: 45a01c42933b93e59811099f97aa4179d499a42c iommu/amd: Add function 
copy_dev_tables()

:::::: TO: Baoquan He <b...@redhat.com>
:::::: CC: Joerg Roedel <jroe...@suse.de>

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

Attachment: .config.gz
Description: application/gzip

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to