aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSonny Rao <sonnyrao@chromium.org>2018-03-14 13:05:06 -0400
committerMichael S. Tsirkin <mst@redhat.com>2018-03-19 21:17:42 -0400
commit26b36604523f4a681a86e6cbc970ea72a2e9fb8a (patch)
treefca51df6464b4ded7cc165b6ff0af386ad316b9b
parent2d6d60a3d3eca50bbb20052278cb11dabcf4dff3 (diff)
vhost: fix vhost ioctl signature to build with clang
Clang is particularly anal about signed vs unsigned comparisons and doesn't like the fact that some ioctl numbers set the MSB, so we get this error when trying to build vhost on aarch64: drivers/vhost/vhost.c:1400:7: error: overflow converting case value to switch condition type (3221794578 to 18446744072636378898) [-Werror, -Wswitch] case VHOST_GET_VRING_BASE: 3221794578 is 0xC008AF12 in hex 18446744072636378898 is 0xFFFFFFFFC008AF12 in hex Fix this by using unsigned ints in the function signature for vhost_vring_ioctl(). Signed-off-by: Sonny Rao <sonnyrao@chromium.org> Reviewed-by: Darren Kenny <darren.kenny@oracle.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
-rw-r--r--drivers/vhost/vhost.c2
-rw-r--r--drivers/vhost/vhost.h4
2 files changed, 3 insertions, 3 deletions
diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
index 1b3e8d2d5c8b..5316319d8408 100644
--- a/drivers/vhost/vhost.c
+++ b/drivers/vhost/vhost.c
@@ -1337,7 +1337,7 @@ err:
1337 return -EFAULT; 1337 return -EFAULT;
1338} 1338}
1339 1339
1340long vhost_vring_ioctl(struct vhost_dev *d, int ioctl, void __user *argp) 1340long vhost_vring_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *argp)
1341{ 1341{
1342 struct file *eventfp, *filep = NULL; 1342 struct file *eventfp, *filep = NULL;
1343 bool pollstart = false, pollstop = false; 1343 bool pollstart = false, pollstop = false;
diff --git a/drivers/vhost/vhost.h b/drivers/vhost/vhost.h
index ac4b6056f19a..d8ee85ae8fdc 100644
--- a/drivers/vhost/vhost.h
+++ b/drivers/vhost/vhost.h
@@ -45,7 +45,7 @@ void vhost_poll_stop(struct vhost_poll *poll);
45void vhost_poll_flush(struct vhost_poll *poll); 45void vhost_poll_flush(struct vhost_poll *poll);
46void vhost_poll_queue(struct vhost_poll *poll); 46void vhost_poll_queue(struct vhost_poll *poll);
47void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work); 47void vhost_work_flush(struct vhost_dev *dev, struct vhost_work *work);
48long vhost_vring_ioctl(struct vhost_dev *d, int ioctl, void __user *argp); 48long vhost_vring_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *argp);
49 49
50struct vhost_log { 50struct vhost_log {
51 u64 addr; 51 u64 addr;
@@ -177,7 +177,7 @@ void vhost_dev_reset_owner(struct vhost_dev *, struct vhost_umem *);
177void vhost_dev_cleanup(struct vhost_dev *); 177void vhost_dev_cleanup(struct vhost_dev *);
178void vhost_dev_stop(struct vhost_dev *); 178void vhost_dev_stop(struct vhost_dev *);
179long vhost_dev_ioctl(struct vhost_dev *, unsigned int ioctl, void __user *argp); 179long vhost_dev_ioctl(struct vhost_dev *, unsigned int ioctl, void __user *argp);
180long vhost_vring_ioctl(struct vhost_dev *d, int ioctl, void __user *argp); 180long vhost_vring_ioctl(struct vhost_dev *d, unsigned int ioctl, void __user *argp);
181int vhost_vq_access_ok(struct vhost_virtqueue *vq); 181int vhost_vq_access_ok(struct vhost_virtqueue *vq);
182int vhost_log_access_ok(struct vhost_dev *); 182int vhost_log_access_ok(struct vhost_dev *);
183 183