From: Dan Carpenter <dan.carpenter@oracle.com>
To: Fengguang Wu <fengguang.wu@intel.com>
Cc: Alex Williamson <alex.williamson@redhat.com>, kvm@vger.kernel.org
Subject: Re: [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: Mon, 21 Jan 2013 21:17:51 +0300 [thread overview]
Message-ID: <20130121181751.GY16282@mwanda> (raw)
In-Reply-To: <20130117012049.GA7017@localhost>
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
> kbuild@lists.01.org
> https://lists.01.org/mailman/listinfo/kbuild
> _______________________________________________
> kbuild mailing list
> kbuild@lists.01.org
> https://lists.01.org/mailman/listinfo/kbuild
next prev parent reply other threads:[~2013-01-21 18:17 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 ` [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 Fengguang Wu
2013-01-21 18:17 ` Dan Carpenter [this message]
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=20130121181751.GY16282@mwanda \
--to=dan.carpenter@oracle.com \
--cc=alex.williamson@redhat.com \
--cc=fengguang.wu@intel.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.