On Tue, 28 Aug 2018 16:10:24 -0700 Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Tue, Aug 28, 2018 at 3:29 PM Waiman Long <longman@xxxxxxxxxx> wrote: > > > > Yes, I can rewrite it. What is the problem with the abbreviated form? > > Either gcc rewrites it for you, or you end up _actually_ using a > function pointer and calling through it. > > The latter would be absolutely horribly bad for something like > "list_add()", which should expand to just a couple of instructions. > > And the former would be ok, except for the "you wrote code the garbage > way, and then depended on the compiler fixing it up". Which we > generally try to avoid in the kernel. > > (Don't get me wrong - we definitely depend on the compiler doing a > good job at CSE and dead code elimination etc, but generally we try to > avoid the whole "compiler has to rewrite code to be good" model). > And the "abbreviated form" will surely explode if one or both of those "functions" happens to be implemented (or later reimplemented) as a macro. It's best not to unnecessarily make such assumptions.