]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
alpha: jensen, t2 - make __EXTERN_INLINE same as for the rest
authorAl Viro <viro@zeniv.linux.org.uk>
Thu, 25 Jan 2024 14:23:57 +0000 (09:23 -0500)
committerArnd Bergmann <arnd@arndb.de>
Fri, 3 May 2024 20:09:37 +0000 (22:09 +0200)
We want io.h primitives (readb(), etc.) to be extern inline.
However, that requires the backing out-of-line implementation
somewhere, preferably kept in sync with the inline ones.

The way it's done is __EXTERN_INLINE macro that defaults to
extern inline, but can be overridden in compilation unit where
the out-of-line instance will be.

That works, but it's brittle - we *must* make sure that asm/io.h
is the very first include in such compilation units.  There'd
been a bunch of bugs of that sort in the past.

Another issue is the choice of overriding definition for
__EXTERN_INLINE; it must be either 'inline' or empty.  Either
will do for compilation purposes - inline void foo(...) {...}
(without extern or static) is going to generate out-of-line
instance.  The difference is that 'definition without a
prototype' heuristics trigger on
void foo(void)
{
...
}
but not on
inline void foo(void)
{
...
}

Most of the overrides go for 'inline'; in two cases (sys_jensen
and core_t2) __EXTERN_INLINE is defined as empty.  Without
-Wmissing-prototypes it didn't matter, but now that we have
that thing always on...

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Acked-by: Paul E. McKenney <paulmck@kernel.org>
Acked-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
arch/alpha/kernel/core_t2.c
arch/alpha/kernel/sys_jensen.c

index 98d5b6ff8a769632a12304bb165b1e9d06c96d45..3d72d90624f11d767d9583e60da7c4d9fbada4bd 100644 (file)
@@ -10,7 +10,7 @@
  * Code common to all T2 core logic chips.
  */
 
-#define __EXTERN_INLINE
+#define __EXTERN_INLINE inline
 #include <asm/io.h>
 #include <asm/core_t2.h>
 #undef __EXTERN_INLINE
index 5c9c88428124447c51b035418c2d6e537449b5f8..a1bb1c4a7e93dd3dd9b4b24f6544b65fe80b13cb 100644 (file)
@@ -7,7 +7,7 @@
  *
  * Code supporting the Jensen.
  */
-#define __EXTERN_INLINE
+#define __EXTERN_INLINE inline
 #include <asm/io.h>
 #include <asm/jensen.h>
 #undef  __EXTERN_INLINE