On Wed, Oct 02, 2019 at 01:39:40PM -0700, Linus Torvalds wrote: > On Wed, Oct 2, 2019 at 5:56 AM Geert Uytterhoeven <geert@xxxxxxxxxxxxxx> wrote: > > > > > > > > Then use the C preprocessor to force the inlining. I'm sorry it's not > > > as pretty as static inline functions. > > > > Which makes us lose the baby^H^H^H^Htype checking performed > > on function parameters, requiring to add more ugly checks. > > I'm 100% agreed on this. > > If the inline change is being pushed by people who say "you should > have used macros instead if you wanted inlining", then I will just > revert that stupid commit that is causing problems. > > No, the preprocessor is not the answer. > > That said, code that relies on inlining for _correctness_ should use > "__always_inline" and possibly even have a comment about why. > > But I am considering just undoing commit 9012d011660e ("compiler: > allow all arches to enable CONFIG_OPTIMIZE_INLINING") entirely. The > advantages are questionable, and when the advantages are balanced > against actual regressions and the arguments are "use macros", that > just shows how badly thought out this was. It's clear that opinions are divided on this issue, but you can add an enthusiastic: Acked-by: Will Deacon <will@xxxxxxxxxx> if you go ahead with the revert. I'm all for allowing the compiler to make its own inlining decisions, but not when the potential for miscompilation isn't fully understood and the proposed alternatives turn the source into an unreadable mess. Perhaps we can do something different for 5.5 (arch opt-in? clang only? invert the logic? work to move functions over to __always_inline /before/ flipping the CONFIG option? ...?) Will