ENOENT as an ioctl return code
Daniel Vetter
daniel at ffwll.ch
Tue Dec 3 12:41:40 PST 2013
On Tue, Dec 03, 2013 at 09:09:40PM +0100, Thomas Hellstrom wrote:
> Hi,
>
> By concidence I ran across this lkml message
>
> http://marc.info/?l=linux-kernel&m=135628421403144&w=2
>
> with an important part in the middle: (this is not a drm commit)
>
> To make matters worse, commit f0ed2ce840b3 is clearly total and utter
> CRAP even if it didn't break applications. ENOENT is not a valid error
> return from an ioctl. Never has been, never will be. ENOENT means "No
> such file and directory", and is for path operations. ioctl's are done
> on files that have already been opened, there's no way in hell that
> ENOENT would ever be valid.
>
> Perhaps we should rethink the use of ENOENT when not finding mode objects?
Yeah, it's somewhat abuse, otoh if we'd do a dma-buf export telling
userspace that "no such file exists" is a pretty precise answer. In a way
we _do_ duplicate file objects ... And having this special error code for
lookup failures is occasionally rather useful imo.
So honestly I'd prefer we keep on doing our practice.
-Daniel
--
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch
More information about the dri-devel
mailing list