aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/virtio
diff options
context:
space:
mode:
authorRusty Russell <rusty@rustcorp.com.au>2008-05-02 21:50:49 -0500
committerRusty Russell <rusty@rustcorp.com.au>2008-05-02 21:50:50 +1000
commit72e61eb40b55dd57031ec5971e810649f82b0259 (patch)
tree66a836c7799b21156d4fc87f42e5817d7d95535b /drivers/virtio
parent5539ae9613587e4a4eec42d420b8bdd9ff552a65 (diff)
downloadkernel_samsung_crespo-72e61eb40b55dd57031ec5971e810649f82b0259.zip
kernel_samsung_crespo-72e61eb40b55dd57031ec5971e810649f82b0259.tar.gz
kernel_samsung_crespo-72e61eb40b55dd57031ec5971e810649f82b0259.tar.bz2
virtio: change config to guest endian.
A recent proposed feature addition to the virtio block driver revealed some flaws in the API, in particular how easy it is to break big endian machines. The virtio config space was originally chosen to be little-endian, because we thought the config might be part of the PCI config space for virtio_pci. It's actually a separate mmio region, so that argument holds little water; as only x86 is currently using the virtio mechanism, we can change this (but must do so now, before the impending s390 merge). API changes: - __virtio_config_val() just becomes a striaght vdev->config_get() call. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/virtio')
-rw-r--r--drivers/virtio/virtio_balloon.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 0b3efc3..fef88d8 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -155,9 +155,9 @@ static void virtballoon_changed(struct virtio_device *vdev)
static inline s64 towards_target(struct virtio_balloon *vb)
{
u32 v;
- __virtio_config_val(vb->vdev,
- offsetof(struct virtio_balloon_config, num_pages),
- &v);
+ vb->vdev->config->get(vb->vdev,
+ offsetof(struct virtio_balloon_config, num_pages),
+ &v, sizeof(v));
return v - vb->num_pages;
}