On Thu, 1 Jun 2017 03:01:28 +0000
"Chen, Xiaoguang" <[email protected]> wrote:

> Hi Kirti,
> 
> >-----Original Message-----
> >From: Kirti Wankhede [mailto:[email protected]]
> >Sent: Thursday, June 01, 2017 1:23 AM
> >To: Chen, Xiaoguang <[email protected]>; Gerd Hoffmann
> ><[email protected]>; [email protected]; [email protected];
> >[email protected]; [email protected];
> >[email protected]; Lv, Zhiyuan <[email protected]>; intel-gvt-
> >[email protected]; Wang, Zhi A <[email protected]>; Tian, Kevin
> ><[email protected]>
> >Subject: Re: [PATCH v6 4/6] vfio: Define vfio based vgpu's dma-buf operations
> >
> >
> >
> >On 5/31/2017 11:48 AM, Chen, Xiaoguang wrote:  
> >> Hi,
> >>  
> >>> -----Original Message-----
> >>> From: Gerd Hoffmann [mailto:[email protected]]
> >>> Sent: Monday, May 29, 2017 3:20 PM
> >>> To: Chen, Xiaoguang <[email protected]>;
> >>> [email protected]; [email protected]; intel-
> >>> [email protected]; [email protected];
> >>> [email protected]; Lv, Zhiyuan <[email protected]>;
> >>> intel-gvt- [email protected]; Wang, Zhi A
> >>> <[email protected]>; Tian, Kevin <[email protected]>
> >>> Subject: Re: [PATCH v6 4/6] vfio: Define vfio based vgpu's dma-buf
> >>> operations
> >>>  
> >>>> +struct vfio_vgpu_dmabuf_info {
> >>>> +        __u32 argsz;
> >>>> +        __u32 flags;
> >>>> +        struct vfio_vgpu_plane_info plane_info;
> >>>> +        __s32 fd;
> >>>> +        __u32 pad;
> >>>> +};  
> >>>
> >>> Hmm, now you have argsz and flags twice in vfio_vgpu_dmabuf_info ...
> >>>
> >>> I think we should have something like this:
> >>>
> >>> struct vfio_vgpu_plane_info {
> >>>         __u64 start;
> >>>         __u64 drm_format_mod;
> >>>         __u32 drm_format;
> >>>         __u32 width;
> >>>         __u32 height;
> >>>         __u32 stride;
> >>>         __u32 size;
> >>>         __u32 x_pos;
> >>>         __u32 y_pos;
> >>>        __u32 padding;
> >>> };
> >>>
> >>> struct vfio_vgpu_query_plane {
> >>>   __u32 argsz;
> >>>   __u32 flags;
> >>>   struct vfio_vgpu_plane_info plane_info;
> >>>        __u32 plane_id;
> >>>        __u32 padding;
> >>> };
> >>>
> >>> struct vfio_vgpu_create_dmabuf {
> >>>   __u32 argsz;
> >>>   __u32 flags;
> >>>   struct vfio_vgpu_plane_info plane_info;
> >>>        __u32 plane_id;
> >>>        __s32 fd;
> >>> };  
> >> Good suggestion will apply in the next version.
> >> Thanks for review :)
> >>  
> >
> >Can you define what are the expected values of 'flags' would be?  
> Flags is not used in this case.  It is defined to follow the rules of vfio 
> ioctls.

An important note about flags, the vendor driver must validate it.  If
they don't and the user passes an arbitrary value there, then we have a
backwards compatibility issue with ever attempting to use the flags
field.  The user passing in a flag unknown to the vendor driver should
return an -EINVAL response.  In this case, we haven't defined any
flags, so the vendor driver needs to force the user to pass zero.
Thanks,

Alex

Reply via email to