From: Andrew Jones <drjones@redhat.com>
To: Christoffer Dall <christoffer.dall@linaro.org>
Cc: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org
Subject: Re: [PATCH 8/9] Introduce virtio-testdev
Date: Thu, 2 Jan 2014 17:16:56 +0100 [thread overview]
Message-ID: <20140102161655.GF9725@hawk.usersys.redhat.com> (raw)
In-Reply-To: <20131229063117.GG13601@cbox>
On Sat, Dec 28, 2013 at 10:31:17PM -0800, Christoffer Dall wrote:
> > +
> > +/*
> > + * We have to write all args; nargs, nrets, ... first to
> > + * avoid executing token's operation until all args are in
>
> the token's ?
ok
>
> > + * place. Then issue the op, and then read the rets. Reading
>
> rets? return values?
ok
> > +
> > +#define to_virtio_mmio_dev(vdev) \
> > + container_of(vdev, struct virtio_mmio_dev, vdev)
>
> argh, macro pain, can you rename the parameter to _vdev or vdev_ptr or
> something like that?
ok
> > +static struct virtio_dev *virtio_mmio_bind(const struct iomap *m, u32 device)
> > +{
> > + struct virtio_mmio_dev *vmdev;
> > + void *page;
> > + u32 devid, i;
> > +
> > + page = alloc_page();
> > + vmdev = page;
> > + vmdev->vdev.config = page + sizeof(struct virtio_mmio_dev);
> > +
> > + vmdev->vdev.id.device = device;
> > + vmdev->vdev.id.vendor = -1;
> > + vmdev->vdev.config->get = vm_get;
> > + vmdev->vdev.config->set = vm_set;
> > +
> > + device &= 0xffff;
>
> what is this mask again? Is this to correspond to the virtio PCI device
> ID specs, but then shouldn't we also check the range, seems strange to
> me to just ignore upper-bits garbage?
Right, we're ignoring the upper bits to comply with the spec (and to
actually find the device if the upper bits weren't zero). Strangely, at
least to me, struct virtio_device_id in the kernel has device as a u32,
even though the spec has it as a u16. So I allow u32 devices to be put in
the device id, but then throw out the upper bits before searching.
>
> > +
> > + for (i = 0; i < m->nr; ++i) {
> > + vmdev->base = compat_ptr(m->addrs[i]);
> > + devid = readl(vmdev->base + VIRTIO_MMIO_DEVICE_ID);
> > + if ((devid & 0xffff) == device)
> > + break;
> > + }
> > +
> > + if (i >= m->nr) {
>
> this can just be 'if (i == m->nr)' right?
yeah, I just prefer to choose the broader condition when possible.
>
> > + printf("%s: Can't find device 0x%x.\n", __func__, device);
>
> I would ditch the '.'
ditched
drew
next prev parent reply other threads:[~2014-01-02 16:16 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-04 16:42 [PATCH 0/9 v2] kvm-unit-tests/arm: initial drop Andrew Jones
2013-12-04 16:42 ` [PATCH 1/9] remove unused files Andrew Jones
2013-12-04 16:42 ` [PATCH 2/9] makefile and run_tests tweaks Andrew Jones
2013-12-29 6:30 ` Christoffer Dall
2014-01-02 14:30 ` Andrew Jones
2013-12-04 16:42 ` [PATCH 3/9] clean root dir of all x86-ness Andrew Jones
2013-12-29 6:30 ` Christoffer Dall
2014-01-02 15:00 ` Andrew Jones
2014-01-02 17:16 ` Christoffer Dall
2013-12-04 16:42 ` [PATCH 4/9] move x86's simple heap management to common code Andrew Jones
2013-12-29 6:30 ` Christoffer Dall
2014-01-02 15:17 ` Andrew Jones
2014-01-02 17:17 ` Christoffer Dall
2013-12-04 16:42 ` [PATCH 5/9] Introduce libio to common code for io read/write Andrew Jones
2013-12-29 6:30 ` Christoffer Dall
2014-01-02 15:47 ` Andrew Jones
2014-01-02 17:19 ` Christoffer Dall
2014-01-02 18:38 ` Andrew Jones
2013-12-04 16:42 ` [PATCH 6/9] Introduce a simple iomap structure Andrew Jones
2013-12-29 6:30 ` Christoffer Dall
2014-01-02 16:04 ` Andrew Jones
2014-01-02 17:23 ` Christoffer Dall
2014-01-02 18:40 ` Andrew Jones
2014-01-02 21:05 ` Christoffer Dall
2014-01-02 17:32 ` Peter Maydell
2013-12-04 16:42 ` [PATCH 7/9] Add halt() and some error codes Andrew Jones
2013-12-29 6:31 ` Christoffer Dall
2013-12-04 16:42 ` [PATCH 8/9] Introduce virtio-testdev Andrew Jones
2013-12-29 6:31 ` Christoffer Dall
2014-01-02 16:16 ` Andrew Jones [this message]
2014-01-02 17:27 ` Christoffer Dall
2014-01-02 18:41 ` Andrew Jones
2013-12-04 16:42 ` [PATCH 9/9] arm: initial drop Andrew Jones
2013-12-29 6:31 ` Christoffer Dall
2013-12-29 9:18 ` Peter Maydell
2014-01-02 16:54 ` Andrew Jones
2014-01-02 17:40 ` Peter Maydell
2014-01-02 18:09 ` Christoffer Dall
2014-01-02 18:44 ` Andrew Jones
2014-01-02 17:44 ` Christoffer Dall
2014-01-02 18:50 ` Andrew Jones
2014-01-02 19:17 ` Christoffer Dall
2014-01-03 17:52 ` Andrew Jones
2014-01-03 17:55 ` Christoffer Dall
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=20140102161655.GF9725@hawk.usersys.redhat.com \
--to=drjones@redhat.com \
--cc=christoffer.dall@linaro.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).