From df592eb5dc07c5df26a16318ed4bf2f96fa38a4d Mon Sep 17 00:00:00 2001 From: Geert Uytterhoeven Date: Sun, 30 Jun 2013 11:58:40 +0200 Subject: m68knommu: Mark functions only called from setup_arch() __init Some functions that are only called (indirectly) from setup_arch() lack __init annotations. Signed-off-by: Geert Uytterhoeven Signed-off-by: Greg Ungerer --- arch/m68k/kernel/setup_no.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'arch/m68k/kernel') diff --git a/arch/m68k/kernel/setup_no.c b/arch/m68k/kernel/setup_no.c index 911ba472e6c4..5b16f5d61b44 100644 --- a/arch/m68k/kernel/setup_no.c +++ b/arch/m68k/kernel/setup_no.c @@ -118,7 +118,7 @@ void (*mach_power_off)(void); * * Returns: */ -void parse_uboot_commandline(char *commandp, int size) +static void __init parse_uboot_commandline(char *commandp, int size) { extern unsigned long _init_sp; unsigned long *sp; -- cgit v1.2.3 From 42cb38bcb7a2a8f3a12bf4721e708476daf4f190 Mon Sep 17 00:00:00 2001 From: Alexander Stein Date: Wed, 5 Jun 2013 13:42:39 +0200 Subject: m68k/coldfire: flush cache when creating the signal stack frame When the signal stack frame is created, it must be flushed in order to make sure the cache fetches the correct data. Without cache flush the icache might pick up old cached data from an older signal stack frame if the signal is raised again very fast. In case of copyback the data cache muist be pushed first, but is untested. Signed-off-by: Alexander Stein Signed-off-by: Greg Ungerer --- arch/m68k/kernel/signal.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'arch/m68k/kernel') diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c index 2a16df3d9312..57fd286e4b0b 100644 --- a/arch/m68k/kernel/signal.c +++ b/arch/m68k/kernel/signal.c @@ -50,6 +50,7 @@ #include #include #include +#include #ifdef CONFIG_MMU @@ -181,6 +182,13 @@ static inline void push_cache (unsigned long vaddr) asm volatile ("movec %0,%%caar\n\t" "movec %1,%%cacr" : : "r" (vaddr + 4), "r" (temp)); + } else { + /* CPU_IS_COLDFIRE */ +#if defined(CONFIG_CACHE_COPYBACK) + flush_cf_dcache(0, DCACHE_MAX_ADDR); +#endif + /* Invalidate instruction cache for the pushed bytes */ + clear_cf_icache(vaddr, vaddr + 8); } } -- cgit v1.2.3