io_uring vs in_compat_syscall()

From: Christoph Hellwig
Date: Mon Jul 20 2020 - 02:10:57 EST


Hi Jens,

I just found a (so far theoretical) issue with the io_uring submission
offloading to workqueues or threads. We have lots of places using
in_compat_syscall() to check if a syscall needs compat treatmenet.
While the biggest users is iocttl(), we also have a fair amount of
places using in_compat_task() in read and write methods, and these
will not do the wrong thing when used with io_uring under certain
conditions. I'm not sure how to best fix this, except for making sure
in_compat_syscall() returns true one way or another for these cases.