Subject: Re: [PATCH RFC] uaccess: user_access_begin_after_access_ok()

From: Al Viro <[email-masked]>
Date: Thu, 4 Jun 2020 15:59:24 +0100

On Thu, Jun 04, 2020 at 02:10:27PM +0800, Jason Wang wrote:

> > > get_user(flags, desc->flags)
> > > smp_rmb()
> > > if (flags & VALID)
> > > copy_from_user(&adesc, desc, sizeof adesc);
> > > 
> > > this would be a good candidate I think.
> > Perhaps, once we get stac/clac out of raw_copy_from_user() (coming cycle,
> > probably).  BTW, how large is the structure and how is it aligned?
> 
> 
> Each descriptor is 16 bytes, and 16 bytes aligned.

Won't it be cheaper to grap the entire thing unconditionally?  And what does
that rmb order, while we are at it - won't all coherency work in terms of
entire cachelines anyway?

Confused...