[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1493718658.8581.82.camel@redhat.com>
Date: Tue, 02 May 2017 11:50:58 +0200
From: Gerd Hoffmann <kraxel@...hat.com>
To: Xiaoguang Chen <xiaoguang.chen@...el.com>
Cc: alex.williamson@...hat.com, intel-gfx@...ts.freedesktop.org,
intel-gvt-dev@...ts.freedesktop.org, zhi.a.wang@...el.com,
zhenyuw@...ux.intel.com, linux-kernel@...r.kernel.org,
zhiyuan.lv@...el.com, kevin.tian@...el.com
Subject: Re: [RFC PATCH 6/6] drm/i915/gvt: support QEMU getting the dmabuf
On Fr, 2017-04-28 at 17:35 +0800, Xiaoguang Chen wrote:
> +static size_t intel_vgpu_reg_rw_gvtg(struct intel_vgpu *vgpu, char
> *buf,
> + size_t count, loff_t *ppos, bool iswrite)
> +{
> + unsigned int i = VFIO_PCI_OFFSET_TO_INDEX(*ppos) -
> + VFIO_PCI_NUM_REGIONS;
> + loff_t pos = *ppos & VFIO_PCI_OFFSET_MASK;
> + int fd;
> +
> + if (pos >= vgpu->vdev.region[i].size || iswrite) {
> + gvt_vgpu_err("invalid op or offset for Intel vgpu fd
> region\n");
> + return -EINVAL;
> + }
> +
> + fd = anon_inode_getfd("gvtg", &intel_vgpu_gvtg_ops, vgpu,
> + O_RDWR | O_CLOEXEC);
> + if (fd < 0) {
> + gvt_vgpu_err("create intel vgpu fd failed:%d\n", fd);
> + return -EINVAL;
> + }
> +
> + count = min(count, (size_t)(vgpu->vdev.region[i].size - pos));
> + memcpy(buf, &fd, count);
> +
> + return count;
> +}
Hmm, that looks like a rather strange way to return a file descriptor.
What is the reason to not use ioctls on the vfio file handle, like older
version of these patches did?
cheers,
Gerd
Powered by blists - more mailing lists