> > User space need to check whether there's a dmabuf for the plane(user space
> > usually cached two or three dmabuf to handle double buffer or triple buffer
> > situation) only there's no dmabuf for the plane we will create a dmabuf for
> > it(another ioctl).
> If our ioctls are "Query current plane" and "Give me a dmabuf for
> current plane", isn't that racey? The current plane could have changed
> between those two calls so the user doesn't absolutely know which plane
> the dmabuf retrieved is for. The "Give me a dmabuf" therefore needs to
> take some sort of plane index so the user can request a specific
The "give me a dmabuf" ioctl returns the plane description too, so
userspace can at least figure it did hit the race window.
We could also do it the other way around: Instead of having the kernel
returning the plane description userspace could pass it in, and the
kernel throws -EINVAL in case it doesn't match due to things having