Commit a0137c90 authored by Kees Cook's avatar Kees Cook Committed by Huacai Chen
Browse files

LoongArch: Handle KCOV __init vs inline mismatches



When the KCOV is enabled all functions get instrumented, unless
the __no_sanitize_coverage attribute is used. To prepare for
__no_sanitize_coverage being applied to __init functions, we have to
handle differences in how GCC's inline optimizations get resolved.
For LoongArch this exposed several places where __init annotations
were missing but ended up being "accidentally correct". So fix these
cases.

Signed-off-by: default avatarKees Cook <kees@kernel.org>
Signed-off-by: default avatarHuacai Chen <chenhuacai@loongson.cn>
parent 39503fc8
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ int loongson_cpu_disable(void);
void loongson_cpu_die(unsigned int cpu);
#endif

static inline void plat_smp_setup(void)
static inline void __init plat_smp_setup(void)
{
	loongson_smp_setup();
}
+1 −1
Original line number Diff line number Diff line
@@ -102,7 +102,7 @@ static int constant_timer_next_event(unsigned long delta, struct clock_event_dev
	return 0;
}

static unsigned long __init get_loops_per_jiffy(void)
static unsigned long get_loops_per_jiffy(void)
{
	unsigned long lpj = (unsigned long)const_clock_freq;

+2 −2
Original line number Diff line number Diff line
@@ -16,12 +16,12 @@ void __init early_iounmap(void __iomem *addr, unsigned long size)

}

void *early_memremap_ro(resource_size_t phys_addr, unsigned long size)
void * __init early_memremap_ro(resource_size_t phys_addr, unsigned long size)
{
	return early_memremap(phys_addr, size);
}

void *early_memremap_prot(resource_size_t phys_addr, unsigned long size,
void * __init early_memremap_prot(resource_size_t phys_addr, unsigned long size,
		    unsigned long prot_val)
{
	return early_memremap(phys_addr, size);