Thanks Paul for catching this. In that case we should go with 'long' since mdev_parent_ops->ioctl() is called from vfio_device_ops->ioctl() for which the return type is 'long'. Thanks, Kirti On 1/4/2017 1:06 AM, Paul Gortmaker wrote: > What appears to be a copy and paste error from the line above gets > the ioctl a ssize_t return value instead of the traditional "int". > > The associated sample code used "long" which meant it would compile > for x86-64 but not i386, with the latter failing as follows: > > CC [M] samples/vfio-mdev/mtty.o > samples/vfio-mdev/mtty.c:1418:20: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types] > .ioctl = mtty_ioctl, > ^ > samples/vfio-mdev/mtty.c:1418:20: note: (near initialization for ‘mdev_fops.ioctl’) > cc1: some warnings being treated as errors > > Use the standard "int" ioctl return value in both the header and > the sample code to fix the issue. > > Fixes: 9d1a546c53b4 ("docs: Sample driver to demonstrate how to use Mediated device framework.") > Cc: Kirti Wankhede <kwankhede@xxxxxxxxxx> > Cc: Neo Jia <cjia@xxxxxxxxxx> > Cc: Alex Williamson <alex.williamson@xxxxxxxxxx> > Cc: kvm@xxxxxxxxxxxxxxx > Signed-off-by: Paul Gortmaker <paul.gortmaker@xxxxxxxxxxxxx> > --- > include/linux/mdev.h | 2 +- > samples/vfio-mdev/mtty.c | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/mdev.h b/include/linux/mdev.h > index 3ee44b8d2bb3..46659572ab00 100644 > --- a/include/linux/mdev.h > +++ b/include/linux/mdev.h > @@ -78,7 +78,7 @@ struct mdev_parent_ops { > size_t count, loff_t *ppos); > ssize_t (*write)(struct mdev_device *mdev, const char __user *buf, > size_t count, loff_t *ppos); > - ssize_t (*ioctl)(struct mdev_device *mdev, unsigned int cmd, > + int (*ioctl)(struct mdev_device *mdev, unsigned int cmd, > unsigned long arg); > int (*mmap)(struct mdev_device *mdev, struct vm_area_struct *vma); > }; > diff --git a/samples/vfio-mdev/mtty.c b/samples/vfio-mdev/mtty.c > index 919c10d5b12e..6f0713b1f717 100644 > --- a/samples/vfio-mdev/mtty.c > +++ b/samples/vfio-mdev/mtty.c > @@ -1147,7 +1147,7 @@ int mtty_get_device_info(struct mdev_device *mdev, > return 0; > } > > -static long mtty_ioctl(struct mdev_device *mdev, unsigned int cmd, > +static int mtty_ioctl(struct mdev_device *mdev, unsigned int cmd, > unsigned long arg) > { > int ret = 0; > -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html