On Tue, Oct 1, 2019 at 10:53 PM Arnd Bergmann <arnd@xxxxxxxx> wrote: > > 1. is clearly the most common case, but there is also > > 4. Some compiler version (possibly long gone, possibly still current) > makes bad inlining decisions that result in horrible but functionally > correct object code for a particular function, and forcing a function to > be inlined results in what we had expected the compiler to do already. There is also 5. code that does not even compile without it, e.g. _static_cpu_has() in x86_64 which requires __attribute__((always_inline)), at least on GCC 9.2. For x64_64 it is the only one case I found, though. If you disable __always_inline everything else compiles and links (in a defconfig). Cheers, Miguel