kernel-fxtec-pro1x/arch/openrisc
Stafford Horne 2c01af4f3b openrisc: Fix cache API compile issue when not inlining
[ Upstream commit 3ae90d764093dfcd6ab8ab6875377302892c87d4 ]

I found this when compiling a kbuild random config with GCC 11.  The
config enables CONFIG_DEBUG_SECTION_MISMATCH, which sets CFLAGS
-fno-inline-functions-called-once. This causes the call to cache_loop in
cache.c to not be inlined causing the below compile error.

    In file included from arch/openrisc/mm/cache.c:13:
    arch/openrisc/mm/cache.c: In function 'cache_loop':
    ./arch/openrisc/include/asm/spr.h:16:27: warning: 'asm' operand 0 probably does not match constraints
       16 | #define mtspr(_spr, _val) __asm__ __volatile__ (  \
	  |                           ^~~~~~~
    arch/openrisc/mm/cache.c:25:3: note: in expansion of macro 'mtspr'
       25 |   mtspr(reg, line);
	  |   ^~~~~
    ./arch/openrisc/include/asm/spr.h:16:27: error: impossible constraint in 'asm'
       16 | #define mtspr(_spr, _val) __asm__ __volatile__ (  \
	  |                           ^~~~~~~
    arch/openrisc/mm/cache.c:25:3: note: in expansion of macro 'mtspr'
       25 |   mtspr(reg, line);
	  |   ^~~~~
    make[1]: *** [scripts/Makefile.build:283: arch/openrisc/mm/cache.o] Error 1

The asm constraint "K" requires a immediate constant argument to mtspr,
however because of no inlining a register argument is passed causing a
failure.  Fix this by using __always_inline.

Link: https://lore.kernel.org/lkml/202008200453.ohnhqkjQ%25lkp@intel.com/
Signed-off-by: Stafford Horne <shorne@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-09-23 12:10:58 +02:00
..
boot/dts DeviceTree for 4.15: 2017-11-14 18:25:40 -08:00
configs openrisc: add simple_smp dts and defconfig for simulators 2017-11-03 14:01:15 +09:00
include arch/openrisc: Fix issues with access_ok() 2020-06-22 09:04:59 +02:00
kernel openrisc: Fix oops caused when dumping stack 2020-08-21 11:05:37 +02:00
lib OpenRISC updates for v4.15 2017-11-13 12:12:00 -08:00
mm openrisc: Fix cache API compile issue when not inlining 2020-09-23 12:10:58 +02:00
Kconfig OpenRISC updates for 4.19 2018-08-23 14:09:37 -07:00
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Makefile kbuild: remove redundant LDFLAGS clearing in arch/*/Makefile 2018-07-19 08:40:27 +09:00