On Tue, 19 Aug 2008, Benjamin Herrenschmidt wrote: > > > Hmm, this was originally copied from x86, where we did a cmpxchg, but that > > is probably not needed since all of this is done in kstop_machine. Also, > > only the "get" is needed. If we don't fault there, we wont fault on the > > put (unless we have permissions wrong, and that would be a bug). > > Would it ? How do we make sure the kernel text is mapped writeable ?
We map it writeable if FTRACE is enabled. > > > So are you recommending something like > > > > int cmd; > > > > if (__get_user(cmd, ip)) > > goto fault; > > > > if (cmd != old) > > goto not_same; > > > > WARN_ON_ONCE(__put_user(cmd, ip)); > > > > If we did this, we could probably put this into the generic code: > > That would work I suppose, I'll give it a try. > > > if (copy_from_user(cmd, ip, ARCH_CALL_SIZE)) > > goto fault; > > > > if (memcmp(cmd, old, ARCH_CALL_SIZE) != 0) > > goto not_same; > > > > WARN_ON_ONCE(copy_to_user(cmd, ip, ARCH_CALL_SIZE)); > > You need the __ variants or the access_ok() checks will bite > you bad. Ah, good point ;-) -- Steve _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@ozlabs.org https://ozlabs.org/mailman/listinfo/linuxppc-dev