linux-stable/arch/alpha
Linus Torvalds cc9d3aaa53 alpha: make 'Jensen' IO functions build again
The Jensen IO functions are overly copmplicated because some of the IO
addresses refer to special 'local IO' ports, and they get accessed
differently.

That then makes gcc not actually inline them, and since they were marked
"extern inline" when included through the regular <asm/io.h> path, and
then only marked "inline" when included from sys_jensen.c, you never
necessarily got a body for the IO functions at all.

The intent of the sys_jensen.c code is to actually get the non-inlined
copy generated, so remove the 'inline' from the magic macro that is
supposed to sort this all out.

Also, do not mix 'extern inline' functions (that may or may not be
inlined and will not generate a function body if they are not) with
'static inline' (that _will_ generate a function body when not inlined).
Because gcc will complain about this situation:

   error: ‘jensen_bus_outb’ is static but used in inline function ‘jensen_outb’ which is not static

because gcc basically doesn't know whether to generate a body for that
static inline function or not for that call site.

So make all of these use that __EXTERN_INLINE marker.  Gcc will
generally not inline these things on use, and then generate the function
body out-of-line in sys_jensen.c.

This makes the core IO functions build for the alpha Jensen config.

Not that the rest then builds, because it turns out Jensen also doesn't
enable PCI, which then makes other drievrs very unhappy, but that's a
separate issue.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2021-09-18 10:57:10 -07:00
..
boot alpha: fix spelling mistakes 2021-07-25 22:33:04 -07:00
configs alpha: defconfig: add necessary configs for boot testing 2021-07-25 22:33:03 -07:00
include alpha: make 'Jensen' IO functions build again 2021-09-18 10:57:10 -07:00
kernel alpha: make 'Jensen' IO functions build again 2021-09-18 10:57:10 -07:00
lib alpha: csum_partial_copy.c: add function prototypes from <net/checksum.h> 2021-05-06 19:24:11 -07:00
math-emu alpha: fp_emul: avoid init/cleanup_module names 2021-07-25 22:33:04 -07:00
mm signal/alpha: si_trapno is only used with SIGFPE and SIGTRAP TRAP_UNK 2021-07-23 13:10:26 -05:00
Kbuild alpha: move core-y in arch/alpha/Makefile to arch/alpha/Kbuild 2021-05-26 23:11:47 +09:00
Kconfig asm-generic changes for 5.15 2021-09-01 15:13:02 -07:00
Kconfig.debug treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile alpha: move core-y in arch/alpha/Makefile to arch/alpha/Kbuild 2021-05-26 23:11:47 +09:00