CC: [email protected]
CC: [email protected]
TO: Pankaj Bharadiya <[email protected]>
CC: Zhenyu Wang <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   dea8dcf2a9fa8cc540136a6cd885c3beece16ec3
commit: 12d5861973c70fb9a890d81d051de1cb1886eeee drm/i915/gvt: Make WARN* drm 
specific where vgpu ptr is available
date:   10 months ago
:::::: branch date: 22 hours ago
:::::: commit date: 10 months ago
config: x86_64-randconfig-m031-20201229 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-15) 9.3.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]>

New smatch warnings:
drivers/gpu/drm/i915/gvt/kvmgt.c:214 gvt_pin_guest_page() error: 'vgpu' 
dereferencing possible ERR_PTR()

Old smatch warnings:
drivers/gpu/drm/i915/gvt/kvmgt.c:1381 intel_vgpu_ioctl() warn: potential 
spectre issue 'vgpu->cfg_space.bar' [r]
drivers/gpu/drm/i915/gvt/kvmgt.c:1451 intel_vgpu_ioctl() warn: potential 
spectre issue 'vdev->region' [r]

vim +/vgpu +214 drivers/gpu/drm/i915/gvt/kvmgt.c

79e542f5af79918 Changbin Du      2018-05-15  167  
79e542f5af79918 Changbin Du      2018-05-15  168  /* Pin a normal or compound 
guest page for dma. */
79e542f5af79918 Changbin Du      2018-05-15  169  static int 
gvt_pin_guest_page(struct intel_vgpu *vgpu, unsigned long gfn,
79e542f5af79918 Changbin Du      2018-05-15  170                unsigned long 
size, struct page **page)
79e542f5af79918 Changbin Du      2018-05-15  171  {
79e542f5af79918 Changbin Du      2018-05-15  172        unsigned long base_pfn 
= 0;
79e542f5af79918 Changbin Du      2018-05-15  173        int total_pages;
79e542f5af79918 Changbin Du      2018-05-15  174        int npage;
cf4ee73fd9b6d31 Changbin Du      2018-03-01  175        int ret;
b86dc6ed20f1543 Chuanxiao Dong   2017-02-09  176  
79e542f5af79918 Changbin Du      2018-05-15  177        total_pages = 
roundup(size, PAGE_SIZE) / PAGE_SIZE;
79e542f5af79918 Changbin Du      2018-05-15  178        /*
79e542f5af79918 Changbin Du      2018-05-15  179         * We pin the pages 
one-by-one to avoid allocating a big arrary
79e542f5af79918 Changbin Du      2018-05-15  180         * on stack to hold 
pfns.
79e542f5af79918 Changbin Du      2018-05-15  181         */
79e542f5af79918 Changbin Du      2018-05-15  182        for (npage = 0; npage < 
total_pages; npage++) {
79e542f5af79918 Changbin Du      2018-05-15  183                unsigned long 
cur_gfn = gfn + npage;
79e542f5af79918 Changbin Du      2018-05-15  184                unsigned long 
pfn;
79e542f5af79918 Changbin Du      2018-05-15  185  
06d63c48dd30b96 Julian Stecklina 2020-02-17  186                ret = 
vfio_pin_pages(mdev_dev(kvmgt_vdev(vgpu)->mdev), &cur_gfn, 1,
cf4ee73fd9b6d31 Changbin Du      2018-03-01  187                                
     IOMMU_READ | IOMMU_WRITE, &pfn);
cf4ee73fd9b6d31 Changbin Du      2018-03-01  188                if (ret != 1) {
79e542f5af79918 Changbin Du      2018-05-15  189                        
gvt_vgpu_err("vfio_pin_pages failed for gfn 0x%lx, ret %d\n",
79e542f5af79918 Changbin Du      2018-05-15  190                                
     cur_gfn, ret);
79e542f5af79918 Changbin Du      2018-05-15  191                        goto 
err;
cf4ee73fd9b6d31 Changbin Du      2018-03-01  192                }
b86dc6ed20f1543 Chuanxiao Dong   2017-02-09  193  
79e542f5af79918 Changbin Du      2018-05-15  194                if 
(!pfn_valid(pfn)) {
79e542f5af79918 Changbin Du      2018-05-15  195                        
gvt_vgpu_err("pfn 0x%lx is not mem backed\n", pfn);
79e542f5af79918 Changbin Du      2018-05-15  196                        npage++;
79e542f5af79918 Changbin Du      2018-05-15  197                        ret = 
-EFAULT;
79e542f5af79918 Changbin Du      2018-05-15  198                        goto 
err;
cf4ee73fd9b6d31 Changbin Du      2018-03-01  199                }
b86dc6ed20f1543 Chuanxiao Dong   2017-02-09  200  
79e542f5af79918 Changbin Du      2018-05-15  201                if (npage == 0)
79e542f5af79918 Changbin Du      2018-05-15  202                        
base_pfn = pfn;
79e542f5af79918 Changbin Du      2018-05-15  203                else if 
(base_pfn + npage != pfn) {
79e542f5af79918 Changbin Du      2018-05-15  204                        
gvt_vgpu_err("The pages are not continuous\n");
79e542f5af79918 Changbin Du      2018-05-15  205                        ret = 
-EINVAL;
79e542f5af79918 Changbin Du      2018-05-15  206                        npage++;
79e542f5af79918 Changbin Du      2018-05-15  207                        goto 
err;
79e542f5af79918 Changbin Du      2018-05-15  208                }
79e542f5af79918 Changbin Du      2018-05-15  209        }
79e542f5af79918 Changbin Du      2018-05-15  210  
79e542f5af79918 Changbin Du      2018-05-15  211        *page = 
pfn_to_page(base_pfn);
b86dc6ed20f1543 Chuanxiao Dong   2017-02-09  212        return 0;
79e542f5af79918 Changbin Du      2018-05-15  213  err:
79e542f5af79918 Changbin Du      2018-05-15 @214        
gvt_unpin_guest_page(vgpu, gfn, npage * PAGE_SIZE);
79e542f5af79918 Changbin Du      2018-05-15  215        return ret;
cf4ee73fd9b6d31 Changbin Du      2018-03-01  216  }
b86dc6ed20f1543 Chuanxiao Dong   2017-02-09  217  

:::::: The code at line 214 was first introduced by commit
:::::: 79e542f5af79918e5e766c441561fb9bff8af3aa drm/i915/kvmgt: Support setting 
dma map for huge pages

:::::: TO: Changbin Du <[email protected]>
:::::: CC: Zhenyu Wang <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to