Commit fea06915 authored by David S. Miller's avatar David S. Miller
parents 5f6c0181 a8d3782f
...@@ -642,7 +642,7 @@ static struct miscdevice vhost_net_misc = { ...@@ -642,7 +642,7 @@ static struct miscdevice vhost_net_misc = {
&vhost_net_fops, &vhost_net_fops,
}; };
int vhost_net_init(void) static int vhost_net_init(void)
{ {
int r = vhost_init(); int r = vhost_init();
if (r) if (r)
...@@ -659,7 +659,7 @@ int vhost_net_init(void) ...@@ -659,7 +659,7 @@ int vhost_net_init(void)
} }
module_init(vhost_net_init); module_init(vhost_net_init);
void vhost_net_exit(void) static void vhost_net_exit(void)
{ {
misc_deregister(&vhost_net_misc); misc_deregister(&vhost_net_misc);
vhost_cleanup(); vhost_cleanup();
......
...@@ -715,8 +715,8 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log, ...@@ -715,8 +715,8 @@ int vhost_log_write(struct vhost_virtqueue *vq, struct vhost_log *log,
return 0; return 0;
} }
int translate_desc(struct vhost_dev *dev, u64 addr, u32 len, static int translate_desc(struct vhost_dev *dev, u64 addr, u32 len,
struct iovec iov[], int iov_size) struct iovec iov[], int iov_size)
{ {
const struct vhost_memory_region *reg; const struct vhost_memory_region *reg;
struct vhost_memory *mem; struct vhost_memory *mem;
...@@ -741,7 +741,7 @@ int translate_desc(struct vhost_dev *dev, u64 addr, u32 len, ...@@ -741,7 +741,7 @@ int translate_desc(struct vhost_dev *dev, u64 addr, u32 len,
_iov = iov + ret; _iov = iov + ret;
size = reg->memory_size - addr + reg->guest_phys_addr; size = reg->memory_size - addr + reg->guest_phys_addr;
_iov->iov_len = min((u64)len, size); _iov->iov_len = min((u64)len, size);
_iov->iov_base = (void *)(unsigned long) _iov->iov_base = (void __user *)(unsigned long)
(reg->userspace_addr + addr - reg->guest_phys_addr); (reg->userspace_addr + addr - reg->guest_phys_addr);
s += size; s += size;
addr += size; addr += size;
...@@ -995,7 +995,7 @@ void vhost_discard_vq_desc(struct vhost_virtqueue *vq) ...@@ -995,7 +995,7 @@ void vhost_discard_vq_desc(struct vhost_virtqueue *vq)
* want to notify the guest, using eventfd. */ * want to notify the guest, using eventfd. */
int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len) int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len)
{ {
struct vring_used_elem *used; struct vring_used_elem __user *used;
/* The virtqueue contains a ring of used buffers. Get a pointer to the /* The virtqueue contains a ring of used buffers. Get a pointer to the
* next entry in that used ring. */ * next entry in that used ring. */
...@@ -1019,7 +1019,8 @@ int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len) ...@@ -1019,7 +1019,8 @@ int vhost_add_used(struct vhost_virtqueue *vq, unsigned int head, int len)
smp_wmb(); smp_wmb();
/* Log used ring entry write. */ /* Log used ring entry write. */
log_write(vq->log_base, log_write(vq->log_base,
vq->log_addr + ((void *)used - (void *)vq->used), vq->log_addr +
((void __user *)used - (void __user *)vq->used),
sizeof *used); sizeof *used);
/* Log used index update. */ /* Log used index update. */
log_write(vq->log_base, log_write(vq->log_base,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment