All of lore.kernel.org
 help / color / mirror / Atom feed
From: Fengguang Wu <fengguang.wu@intel.com>
To: Alex Williamson <alex.williamson@redhat.com>
Cc: kvm@vger.kernel.org
Subject: [kbuild] [vfio:vfio-vga 4/5] drivers/vfio/pci/vfio_pci_rdwr.c:191 vfio_pci_legacy_mem_rw() warn: consider using resource_size() here
Date: Thu, 17 Jan 2013 09:20:49 +0800	[thread overview]
Message-ID: <20130117012049.GA7017@localhost> (raw)
In-Reply-To: <50f710b7.bKAbZBXVqYjysXq+%fengguang.wu@intel.com>


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
kbuild@lists.01.org
https://lists.01.org/mailman/listinfo/kbuild

       reply	other threads:[~2013-01-17  1:20 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <50f710b7.bKAbZBXVqYjysXq+%fengguang.wu@intel.com>
2013-01-17  1:20 ` Fengguang Wu [this message]
2013-01-21 18:17   ` [kbuild] [vfio:vfio-vga 4/5] drivers/vfio/pci/vfio_pci_rdwr.c:191 vfio_pci_legacy_mem_rw() warn: consider using resource_size() here Dan Carpenter
2013-01-22  0:59     ` Fengguang Wu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130117012049.GA7017@localhost \
    --to=fengguang.wu@intel.com \
    --cc=alex.williamson@redhat.com \
    --cc=kvm@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.