qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v6 2/4] vfio: VFIO driver for mediated PCI devic


From: kbuild test robot
Subject: Re: [Qemu-devel] [PATCH v6 2/4] vfio: VFIO driver for mediated PCI device
Date: Thu, 4 Aug 2016 08:19:43 +0800
User-agent: Mutt/1.5.23 (2014-03-12)

Hi Kirti,

[auto build test WARNING on vfio/next]
[also build test WARNING on v4.7 next-20160803]
[if your patch is applied to the wrong git tree, please drop us a note to help 
improve the system]

url:    
https://github.com/0day-ci/linux/commits/Kirti-Wankhede/Add-Mediated-device-support/20160804-032209
base:   https://github.com/awilliam/linux-vfio.git next
config: i386-allyesconfig (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=i386 

All warnings (new ones prefixed by >>):

   drivers/vfio/mdev/vfio_mpci.c: In function 'mdev_dev_mmio_fault':
   drivers/vfio/mdev/vfio_mpci.c:384:17: warning: cast from pointer to integer 
of different size [-Wpointer-to-int-cast]
     u64 virtaddr = (u64)vmf->virtual_address;
                    ^
>> drivers/vfio/mdev/vfio_mpci.c:424:32: warning: right shift count >= width of 
>> type [-Wshift-count-overflow]
      index = VFIO_PCI_OFFSET_TO_INDEX(vma->vm_pgoff << PAGE_SHIFT);
                                   ^~

vim +424 drivers/vfio/mdev/vfio_mpci.c

   378  static int mdev_dev_mmio_fault(struct vm_area_struct *vma, struct 
vm_fault *vmf)
   379  {
   380          int ret;
   381          struct vfio_mdev *vmdev = vma->vm_private_data;
   382          struct mdev_device *mdev;
   383          struct parent_device *parent;
 > 384          u64 virtaddr = (u64)vmf->virtual_address;
   385          unsigned long req_size, pgoff = 0;
   386          pgprot_t pg_prot;
   387          unsigned int index;
   388  
   389          if (!vmdev && !vmdev->mdev)
   390                  return -EINVAL;
   391  
   392          mdev = vmdev->mdev;
   393          parent  = mdev->parent;
   394  
   395          pg_prot  = vma->vm_page_prot;
   396  
   397          if (parent->ops->validate_map_request) {
   398                  u64 offset;
   399                  loff_t pos;
   400  
   401                  offset   = virtaddr - vma->vm_start;
   402                  req_size = vma->vm_end - virtaddr;
   403                  pos = (vma->vm_pgoff << PAGE_SHIFT) + offset;
   404  
   405                  ret = parent->ops->validate_map_request(mdev, pos, 
&virtaddr,
   406                                                  &pgoff, &req_size, 
&pg_prot);
   407                  if (ret)
   408                          return ret;
   409  
   410                  /*
   411                   * Verify pgoff and req_size are valid and virtaddr is 
within
   412                   * vma range
   413                   */
   414                  if (!pgoff || !req_size || (virtaddr < vma->vm_start) ||
   415                      ((virtaddr + req_size) >= vma->vm_end))
   416                          return -EINVAL;
   417          } else {
   418                  struct pci_dev *pdev;
   419  
   420                  virtaddr = vma->vm_start;
   421                  req_size = vma->vm_end - vma->vm_start;
   422  
   423                  pdev = to_pci_dev(parent->dev);
 > 424                  index = VFIO_PCI_OFFSET_TO_INDEX(vma->vm_pgoff << 
 > PAGE_SHIFT);
   425                  pgoff = pci_resource_start(pdev, index) >> PAGE_SHIFT;
   426          }
   427  

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

Attachment: .config.gz
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]