Thread (11 messages) 11 messages, 5 authors, 2020-07-22

Re: io_uring vs in_compat_syscall()

From: Jens Axboe <axboe@kernel.dk>
Date: 2020-07-20 17:02:25
Also in: io-uring, linux-arch, lkml

On 7/20/20 10:58 AM, Andy Lutomirski wrote:
quoted
On Jul 20, 2020, at 9:37 AM, Jens Axboe [off-list ref] wrote:

On 7/20/20 12:10 AM, Christoph Hellwig wrote:
quoted
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.
We can probably propagate this information in the io_kiocb via a flag,
and have the io-wq worker set TS_COMPAT if that's the case.
Is TS_COMPAT actually a cross-arch concept for which this is safe?
Having a real arch helper for “set the current syscall arch for the
current kernel thread” seems more sensible to me. 
Sure, I'd consider that implementation detail for the actual patch(es)
for this issue.

-- 
Jens Axboe
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help