Re: [PATCH RESEND 1/4] uaccess: Add user_read_access_begin/end and user_write_access_begin/end
From: Al Viro
Date: Fri Apr 03 2020 - 13:27:35 EST
On Fri, Apr 03, 2020 at 02:37:19PM +0100, Russell King - ARM Linux admin wrote:
> > I think uaccess_enable() could indeed switch the kernel domain if
> > KERNEL_DS is set and move this out of set_fs(). It would reduce the
> > window the kernel domain permissions are overridden. Anyway,
> > uaccess_enable() appeared much later on arm when Russell introduced PAN
> > (SMAP) like support by switching the user domain.
>
> Yes, that would be a possibility. Another possibility would be to
> eliminate as much usage of KERNEL_DS as possible
That's definitely worth doing, but that's another long-term project ;-/
> - I've just found
> one instance in sys_oabi-compat.c that can be eliminated (epoll_ctl)
> but there's several there that can't with the current code structure,
> and re-coding the contents of some fs/* functions to work around that
> is a very bad idea. If there's some scope for rejigging some of the
> fs/* code, it may be possible to elimate some other cases in there.
Well, your do_locks() definitely can be converted. epoll_wait()...
not sure, need to look into that. Is that about the layout mismatch
between struct oabi_epoll_event and struct epoll_event? In case of
semtimedop... Hell knows, I would probably consider moving that thing
into ipc/sem.c under ifdef...