CC: [email protected]
BCC: [email protected]
TO: Liu Yi L <[email protected]>

tree:   https://github.com/luxis1999/iommufd iommufd-v5.17-rc6
head:   71a58479a11e89a480ebc59ed5163440d3e2772c
commit: 085c3eb8ff8b6ef7093d9c798b04d5fab76c41ac [21/28] vfio/pci: Add 
bind_iommufd() support
:::::: branch date: 2 days ago
:::::: commit date: 4 weeks ago
config: arm64-randconfig-m031-20220415 
(https://download.01.org/0day-ci/archive/20220415/[email protected]/config)
compiler: aarch64-linux-gcc (GCC) 11.2.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>

smatch warnings:
drivers/iommu/iommufd/pages.c:995 iopt_area_fill_domains() error: uninitialized 
symbol 'index'.

vim +/index +995 drivers/iommu/iommufd/pages.c

2da819744d404d Jason Gunthorpe 2021-12-13   940  
2da819744d404d Jason Gunthorpe 2021-12-13   941  /**
2da819744d404d Jason Gunthorpe 2021-12-13   942   * iopt_area_fill_domains() - 
Install PFNs into the area's domains
2da819744d404d Jason Gunthorpe 2021-12-13   943   * @area: The area to act on
2da819744d404d Jason Gunthorpe 2021-12-13   944   * @pages: The pages 
associated with the area (area->pages is NULL)
2da819744d404d Jason Gunthorpe 2021-12-13   945   *
2da819744d404d Jason Gunthorpe 2021-12-13   946   * Called during area 
creation. The area is freshly created and not inserted in
2da819744d404d Jason Gunthorpe 2021-12-13   947   * the domains_itree yet. PFNs 
are read and loaded into every domain held in the
2da819744d404d Jason Gunthorpe 2021-12-13   948   * area's io_pagetable and the 
area is installed in the domains_itree.
2da819744d404d Jason Gunthorpe 2021-12-13   949   *
2da819744d404d Jason Gunthorpe 2021-12-13   950   * On failure all domains are 
left unchanged.
2da819744d404d Jason Gunthorpe 2021-12-13   951   */
2da819744d404d Jason Gunthorpe 2021-12-13   952  int 
iopt_area_fill_domains(struct iopt_area *area, struct iopt_pages *pages)
2da819744d404d Jason Gunthorpe 2021-12-13   953  {
2da819744d404d Jason Gunthorpe 2021-12-13   954         struct pfn_reader pfns;
2da819744d404d Jason Gunthorpe 2021-12-13   955         struct iommu_domain 
*domain;
2da819744d404d Jason Gunthorpe 2021-12-13   956         unsigned long 
unmap_index;
2da819744d404d Jason Gunthorpe 2021-12-13   957         unsigned long index;
2da819744d404d Jason Gunthorpe 2021-12-13   958         int rc;
2da819744d404d Jason Gunthorpe 2021-12-13   959  
2da819744d404d Jason Gunthorpe 2021-12-13   960         
lockdep_assert_held(&area->iopt->domains_rwsem);
2da819744d404d Jason Gunthorpe 2021-12-13   961  
2da819744d404d Jason Gunthorpe 2021-12-13   962         if 
(xa_empty(&area->iopt->domains))
2da819744d404d Jason Gunthorpe 2021-12-13   963                 return 0;
2da819744d404d Jason Gunthorpe 2021-12-13   964  
2da819744d404d Jason Gunthorpe 2021-12-13   965         
mutex_lock(&pages->mutex);
2da819744d404d Jason Gunthorpe 2021-12-13   966         rc = 
pfn_reader_first(&pfns, pages, iopt_area_index(area),
2da819744d404d Jason Gunthorpe 2021-12-13   967                               
iopt_area_last_index(area));
2da819744d404d Jason Gunthorpe 2021-12-13   968         if (rc)
2da819744d404d Jason Gunthorpe 2021-12-13   969                 goto out_unlock;
2da819744d404d Jason Gunthorpe 2021-12-13   970  
2da819744d404d Jason Gunthorpe 2021-12-13   971         while 
(!pfn_reader_done(&pfns)) {
2da819744d404d Jason Gunthorpe 2021-12-13   972                 xa_for_each 
(&area->iopt->domains, index, domain) {
2da819744d404d Jason Gunthorpe 2021-12-13   973                         rc = 
batch_to_domain(&pfns.batch, domain, area,
2da819744d404d Jason Gunthorpe 2021-12-13   974                                 
             pfns.batch_start_index);
2da819744d404d Jason Gunthorpe 2021-12-13   975                         if (rc)
2da819744d404d Jason Gunthorpe 2021-12-13   976                                 
goto out_unmap;
2da819744d404d Jason Gunthorpe 2021-12-13   977                 }
2da819744d404d Jason Gunthorpe 2021-12-13   978  
2da819744d404d Jason Gunthorpe 2021-12-13   979                 rc = 
pfn_reader_next(&pfns);
2da819744d404d Jason Gunthorpe 2021-12-13   980                 if (rc)
2da819744d404d Jason Gunthorpe 2021-12-13   981                         goto 
out_unmap;
2da819744d404d Jason Gunthorpe 2021-12-13   982         }
2da819744d404d Jason Gunthorpe 2021-12-13   983         rc = 
update_pinned(pages);
2da819744d404d Jason Gunthorpe 2021-12-13   984         if (rc)
2da819744d404d Jason Gunthorpe 2021-12-13   985                 goto out_unmap;
2da819744d404d Jason Gunthorpe 2021-12-13   986  
2da819744d404d Jason Gunthorpe 2021-12-13   987         area->storage_domain = 
xa_load(&area->iopt->domains, 0);
2da819744d404d Jason Gunthorpe 2021-12-13   988         
interval_tree_insert(&area->pages_node, &pages->domains_itree);
2da819744d404d Jason Gunthorpe 2021-12-13   989         goto out_destroy;
2da819744d404d Jason Gunthorpe 2021-12-13   990  
2da819744d404d Jason Gunthorpe 2021-12-13   991  out_unmap:
2da819744d404d Jason Gunthorpe 2021-12-13   992         xa_for_each 
(&area->iopt->domains, unmap_index, domain) {
2da819744d404d Jason Gunthorpe 2021-12-13   993                 unsigned long 
end_index = pfns.batch_start_index;
2da819744d404d Jason Gunthorpe 2021-12-13   994  
2da819744d404d Jason Gunthorpe 2021-12-13  @995                 if (unmap_index 
<= index)
2da819744d404d Jason Gunthorpe 2021-12-13   996                         
end_index = pfns.batch_end_index;
2da819744d404d Jason Gunthorpe 2021-12-13   997  
2da819744d404d Jason Gunthorpe 2021-12-13   998                 /*
2da819744d404d Jason Gunthorpe 2021-12-13   999                  * The area is 
not yet part of the domains_itree so we have to
2da819744d404d Jason Gunthorpe 2021-12-13  1000                  * manage the 
unpinning specially. The last domain does the
2da819744d404d Jason Gunthorpe 2021-12-13  1001                  * unpin, every 
other domain is just unmapped.
2da819744d404d Jason Gunthorpe 2021-12-13  1002                  */
2da819744d404d Jason Gunthorpe 2021-12-13  1003                 if (unmap_index 
!= area->iopt->next_domain_id - 1) {
2da819744d404d Jason Gunthorpe 2021-12-13  1004                         if 
(end_index != iopt_area_index(area))
2da819744d404d Jason Gunthorpe 2021-12-13  1005                                 
iopt_area_unmap_domain_range(
2da819744d404d Jason Gunthorpe 2021-12-13  1006                                 
        area, domain, iopt_area_index(area),
2da819744d404d Jason Gunthorpe 2021-12-13  1007                                 
        end_index - 1);
2da819744d404d Jason Gunthorpe 2021-12-13  1008                 } else {
2da819744d404d Jason Gunthorpe 2021-12-13  1009                         
iopt_area_unfill_partial_domain(area, pages, domain,
2da819744d404d Jason Gunthorpe 2021-12-13  1010                                 
                        end_index);
2da819744d404d Jason Gunthorpe 2021-12-13  1011                 }
2da819744d404d Jason Gunthorpe 2021-12-13  1012         }
2da819744d404d Jason Gunthorpe 2021-12-13  1013  out_destroy:
2da819744d404d Jason Gunthorpe 2021-12-13  1014         
pfn_reader_destroy(&pfns);
2da819744d404d Jason Gunthorpe 2021-12-13  1015  out_unlock:
2da819744d404d Jason Gunthorpe 2021-12-13  1016         
mutex_unlock(&pages->mutex);
2da819744d404d Jason Gunthorpe 2021-12-13  1017         return rc;
2da819744d404d Jason Gunthorpe 2021-12-13  1018  }
2da819744d404d Jason Gunthorpe 2021-12-13  1019  

:::::: The code at line 995 was first introduced by commit
:::::: 2da819744d404d26ae32e6f04c53c9ee23216972 iommufd: Algorithms for PFN 
storage

:::::: TO: Jason Gunthorpe <[email protected]>
:::::: CC: Jason Gunthorpe <[email protected]>

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to