On Wed, 19 Feb 2020 08:27:47 -0800 "Paul E. McKenney" <paulmck@xxxxxxxxxx> wrote: > > Or, we could just cut and paste the current memmove and make a notrace > > version too. Then we don't need to worry bout bugs like this. > > OK, I will bite... > > Can we just make the core be an inline function and make a notrace and > a trace caller? Possibly going one step further and having one call > the other? (Presumably the traceable version invoking the notrace > version, but it has been one good long time since I have looked at > function preambles.) Sure. Looking at the implementation (which is big and ugly), we could have a static always_inline void __memmove(...) { [..] } __visible void *memmove(...) { return __memmove(...); } __visible notrace void *memmove_notrace(...) { return __memmove(...); } -- Steve