X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=linux_module%2Fiface-host-dev.c;h=a1e69c478b18964f33367f4aa9dd6b8c81e92d7d;hb=3d68a569e5122ebb366d426d1e69f657a4201408;hp=191e57e8aaa8b875ff844228e22d37510df73c43;hpb=46c72d0c65a70f0f0d90b9825740bc9335638821;p=palacios.releases.git diff --git a/linux_module/iface-host-dev.c b/linux_module/iface-host-dev.c index 191e57e..a1e69c4 100644 --- a/linux_module/iface-host-dev.c +++ b/linux_module/iface-host-dev.c @@ -342,7 +342,6 @@ static int host_dev_release(struct inode * i, struct file * filp) return 0; } - static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, unsigned long arg) { void __user *argp = (void __user *)arg; @@ -380,8 +379,8 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u return -EFAULT; } - if (v3_host_dev_read_guest_mem(dev->guestdev, - dev, + if (v3_host_dev_read_guest_mem(dev, + dev->guestdev, op.gpa, temp, op.len) != op.len) { @@ -421,8 +420,8 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u return -EFAULT; } - if (v3_host_dev_write_guest_mem(dev->guestdev, - dev, + if (v3_host_dev_write_guest_mem(dev, + dev->guestdev, op.gpa, temp, op.len) != op.len) { @@ -441,7 +440,7 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u DEEP_DEBUG_PRINT("palacios: hostdev: irq guest\n"); - return v3_host_dev_raise_irq(dev->guestdev, dev, op.irq); + return v3_host_dev_raise_irq(dev, dev->guestdev, op.irq); } break; @@ -596,13 +595,19 @@ static int host_dev_ioctl(struct inode *ip, struct file *fp, unsigned int val, u } - - +static long host_dev_compat_ioctl(struct file * filp, unsigned int ioctl, unsigned long arg) +{ + return host_dev_ioctl(NULL, filp, ioctl, arg); +} static struct file_operations host_dev_fops = { .poll = host_dev_poll, .release = host_dev_release, - .ioctl = host_dev_ioctl, +#ifdef HAVE_COMPAT_IOCTL + .compat_ioctl = host_dev_compat_ioctl, +#else + .ioctl = host_dev_ioctl, +#endif };