is avoiding compat ioctls possible?

Dave Airlie
2009-10-28T01:22:15Z

So for drm KMS we wrote a bunch of ioctls that were 64-bit clean in theory.

They used uint64_t to represent userspace pointers and userspace
casted into those and the kernel casts back out and passes it to copy_*_user

Now I thought cool I don't need to worry about compat ioctl hackery I can
run 32 on 64 bit apps fine and it'll all just work.

Now Dave Miller points out that I'm obivously deluded and we really need
to add compat ioctls so that the kernel can truncate correctly 32-bit address
in case userspace shoves garbage into the top 32bits of the u64.

Is there really no way to avoid compat ioctls? was I delusional in
thinking there was?

Dave.