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