On Thu, Jun 04, 2020 at 04:03:35PM +0100, Al Viro wrote: > On Thu, Jun 04, 2020 at 06:10:23AM -0400, Michael S. Tsirkin wrote: > > > stac() > > for (i = 0; i < 64; ++i) { > > get_user(flags, desc[i].flags) > unsafe_get_user(), please. > > smp_rmb() > > if (!(flags & VALID)) > > break; > > copy_from_user(&adesc[i], desc + i, sizeof adesc[i]); > ... and that would raw_copy_from_user() (or unsafe_copy_from_user(), > for wrapper that would take a label to bugger off to) > > } > > clac()
Absolutely, that's all just pseudo-code. -- MST