Hi Fengguang,

I already forwarded these on Thursday.  You should have got a mail
about it because I CC'd the kbuild list.

regards,
dan carpenter

On Thu, Jan 17, 2013 at 09:20:49AM +0800, Fengguang Wu wrote:
> 
> Hi Alex,
> 
> FYI, there are new smatch warnings show up in
> 
> tree:   git://github.com/awilliam/linux-vfio.git vfio-vga
> head:   2c2e21fa66c40ed7b8e434c86a9f2ab0c879f21d
> commit: c5b7a5a85fa477e70497c513f2acda50eea73bf7 [4/5] vfio-pci: Add support 
> for legacy MMIO & I/O port towards VGA support
> 
> New smatch warnings:
> drivers/vfio/pci/vfio_pci_rdwr.c:191 vfio_pci_legacy_mem_rw() warn: consider 
> using resource_size() here
> drivers/vfio/pci/vfio_pci_rdwr.c:206 vfio_pci_legacy_mem_rw() warn: always 
> true condition '(done >= 0) => (0-u32max >= 0)'
> drivers/vfio/pci/vfio_pci_rdwr.c:254 vfio_pci_legacy_io_rw() warn: always 
> true condition '(done >= 0) => (0-u32max >= 0)'
> 
> Old smatch warnings:
> drivers/vfio/pci/vfio_pci_rdwr.c:170 vfio_pci_bar_rw() warn: always true 
> condition '(done >= 0) => (0-u32max >= 0)'
> 
> vim +191 drivers/vfio/pci/vfio_pci_rdwr.c
> 
> c5b7a5a8 Alex Williamson 2013-01-16  185      if (vdev->has_vga && pos >= 
> 0xa0000 && pos < 0xc0000) {
> c5b7a5a8 Alex Williamson 2013-01-16  186              void __iomem *mem;
> c5b7a5a8 Alex Williamson 2013-01-16  187              size_t done;
> c5b7a5a8 Alex Williamson 2013-01-16  188  
> c5b7a5a8 Alex Williamson 2013-01-16  189              count = min(count, 
> (size_t)(0xc0000 - pos));
> c5b7a5a8 Alex Williamson 2013-01-16  190  
> c5b7a5a8 Alex Williamson 2013-01-16 @191              mem = 
> ioremap_nocache(0xa0000, 0xc0000 - 0xa0000);
> c5b7a5a8 Alex Williamson 2013-01-16  192              if (!mem)
> c5b7a5a8 Alex Williamson 2013-01-16  193                      return -ENOMEM;
> c5b7a5a8 Alex Williamson 2013-01-16  194  
> c5b7a5a8 Alex Williamson 2013-01-16  195              ret = 
> vga_get_interruptible(vdev->pdev, VGA_RSRC_LEGACY_MEM);
> c5b7a5a8 Alex Williamson 2013-01-16  196              if (ret) {
> c5b7a5a8 Alex Williamson 2013-01-16  197                      iounmap(mem);
> c5b7a5a8 Alex Williamson 2013-01-16  198                      return ret;
> c5b7a5a8 Alex Williamson 2013-01-16  199              }
> c5b7a5a8 Alex Williamson 2013-01-16  200  
> c5b7a5a8 Alex Williamson 2013-01-16  201              done = do_io_rw(mem, 
> buf, pos - 0xa0000, count, 0, 0, iswrite);
> c5b7a5a8 Alex Williamson 2013-01-16  202  
> c5b7a5a8 Alex Williamson 2013-01-16  203              vga_put(vdev->pdev, 
> VGA_RSRC_LEGACY_MEM);
> c5b7a5a8 Alex Williamson 2013-01-16  204              iounmap(mem);
> c5b7a5a8 Alex Williamson 2013-01-16  205  
> c5b7a5a8 Alex Williamson 2013-01-16 @206              if (done >= 0)
> c5b7a5a8 Alex Williamson 2013-01-16  207                      *ppos += done;
> c5b7a5a8 Alex Williamson 2013-01-16  208  
> c5b7a5a8 Alex Williamson 2013-01-16  209              return done;
> c5b7a5a8 Alex Williamson 2013-01-16  210      }
> c5b7a5a8 Alex Williamson 2013-01-16  211  
> c5b7a5a8 Alex Williamson 2013-01-16  212      return -EINVAL;
> c5b7a5a8 Alex Williamson 2013-01-16  213  }
> c5b7a5a8 Alex Williamson 2013-01-16  214  
> c5b7a5a8 Alex Williamson 2013-01-16  215  ssize_t 
> vfio_pci_legacy_io_rw(struct vfio_pci_device *vdev, char __user *buf,
> c5b7a5a8 Alex Williamson 2013-01-16  216                            size_t 
> count, loff_t *ppos, bool iswrite)
> c5b7a5a8 Alex Williamson 2013-01-16  217  {
> c5b7a5a8 Alex Williamson 2013-01-16  218      int ret;
> c5b7a5a8 Alex Williamson 2013-01-16  219      loff_t pos = *ppos & 
> VFIO_PCI_OFFSET_MASK;
> c5b7a5a8 Alex Williamson 2013-01-16  220  
> c5b7a5a8 Alex Williamson 2013-01-16  221      if (vdev->has_vga &&
> c5b7a5a8 Alex Williamson 2013-01-16  222          ((pos >= 0x3b0 && pos < 
> 0x3bc) || (pos >= 0x3c0 && pos < 0x3e0))) {
> c5b7a5a8 Alex Williamson 2013-01-16  223              void __iomem *io = NULL;
> c5b7a5a8 Alex Williamson 2013-01-16  224              loff_t off;
> c5b7a5a8 Alex Williamson 2013-01-16  225              size_t done;
> c5b7a5a8 Alex Williamson 2013-01-16  226  
> c5b7a5a8 Alex Williamson 2013-01-16  227              switch (pos) {
> c5b7a5a8 Alex Williamson 2013-01-16  228              case 0x3b0 ... 0x3bb:
> c5b7a5a8 Alex Williamson 2013-01-16  229                      count = 
> min(count, (size_t)(0x3bc - pos));
> c5b7a5a8 Alex Williamson 2013-01-16  230                      io = 
> ioport_map(0x3b0, 0x3bc - 0x3b0);
> c5b7a5a8 Alex Williamson 2013-01-16  231                      off = pos - 
> 0x3b0;
> c5b7a5a8 Alex Williamson 2013-01-16  232                      break;
> c5b7a5a8 Alex Williamson 2013-01-16  233              case 0x3c0 ... 0x3df:
> c5b7a5a8 Alex Williamson 2013-01-16  234                      count = 
> min(count, (size_t)(0x3e0 - pos));
> c5b7a5a8 Alex Williamson 2013-01-16  235                      io = 
> ioport_map(0x3c0, 0x3e0 - 0x3c0);
> c5b7a5a8 Alex Williamson 2013-01-16  236                      off = pos - 
> 0x3c0;
> c5b7a5a8 Alex Williamson 2013-01-16  237                      break;
> c5b7a5a8 Alex Williamson 2013-01-16  238              }
> c5b7a5a8 Alex Williamson 2013-01-16  239  
> c5b7a5a8 Alex Williamson 2013-01-16  240              if (!io)
> c5b7a5a8 Alex Williamson 2013-01-16  241                      return -ENOMEM;
> c5b7a5a8 Alex Williamson 2013-01-16  242  
> c5b7a5a8 Alex Williamson 2013-01-16  243              ret = 
> vga_get_interruptible(vdev->pdev, VGA_RSRC_LEGACY_IO);
> c5b7a5a8 Alex Williamson 2013-01-16  244              if (ret) {
> c5b7a5a8 Alex Williamson 2013-01-16  245                      
> ioport_unmap(io);
> c5b7a5a8 Alex Williamson 2013-01-16  246                      return ret;
> c5b7a5a8 Alex Williamson 2013-01-16  247              }
> c5b7a5a8 Alex Williamson 2013-01-16  248  
> c5b7a5a8 Alex Williamson 2013-01-16  249              done = do_io_rw(io, 
> buf, off, count, 0, 0, iswrite);
> c5b7a5a8 Alex Williamson 2013-01-16  250  
> c5b7a5a8 Alex Williamson 2013-01-16  251              vga_put(vdev->pdev, 
> VGA_RSRC_LEGACY_IO);
> c5b7a5a8 Alex Williamson 2013-01-16  252              ioport_unmap(io);
> c5b7a5a8 Alex Williamson 2013-01-16  253  
> c5b7a5a8 Alex Williamson 2013-01-16 @254              if (done >= 0)
> c5b7a5a8 Alex Williamson 2013-01-16  255                      *ppos += done;
> c5b7a5a8 Alex Williamson 2013-01-16  256  
> c5b7a5a8 Alex Williamson 2013-01-16  257              return done;
> 
> ---
> 0-DAY kernel build testing backend              Open Source Technology Center
> http://lists.01.org/mailman/listinfo/kbuild                 Intel Corporation
> _______________________________________________
> kbuild mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/kbuild
> _______________________________________________
> kbuild mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/kbuild
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to