diff options
| author | Jiri Kosina <jkosina@suse.cz> | 2021-04-29 21:45:19 +0200 |
|---|---|---|
| committer | Jiri Kosina <jkosina@suse.cz> | 2021-04-29 21:45:19 +0200 |
| commit | e50fedec822efc7b7090f95862b782d91ca8aec0 (patch) | |
| tree | 22dd6b534d00a1f7fc3823f0d88e0d43547fc87b /arch/riscv/kernel/patch.c | |
| parent | cfc9bdfb6ba76de84a9ed8ee75dc56903b505a78 (diff) | |
| parent | 35a927f2848bd79586c6374ebb99e4207f3b0c7f (diff) | |
| download | lwn-e50fedec822efc7b7090f95862b782d91ca8aec0.tar.gz lwn-e50fedec822efc7b7090f95862b782d91ca8aec0.zip | |
Merge branch 'for-5.13/surface-system-aggregator-intergration' into for-linus
- Surface Aggregator Module support from Maximilian Luz
Diffstat (limited to 'arch/riscv/kernel/patch.c')
| -rw-r--r-- | arch/riscv/kernel/patch.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/arch/riscv/kernel/patch.c b/arch/riscv/kernel/patch.c index 3fe7a5296aa5..0b552873a577 100644 --- a/arch/riscv/kernel/patch.c +++ b/arch/riscv/kernel/patch.c @@ -20,7 +20,12 @@ struct patch_insn { }; #ifdef CONFIG_MMU -static void *patch_map(void *addr, int fixmap) +/* + * The fix_to_virt(, idx) needs a const value (not a dynamic variable of + * reg-a0) or BUILD_BUG_ON failed with "idx >= __end_of_fixed_addresses". + * So use '__always_inline' and 'const unsigned int fixmap' here. + */ +static __always_inline void *patch_map(void *addr, const unsigned int fixmap) { uintptr_t uintaddr = (uintptr_t) addr; struct page *page; @@ -37,7 +42,6 @@ static void *patch_map(void *addr, int fixmap) return (void *)set_fixmap_offset(fixmap, page_to_phys(page) + (uintaddr & ~PAGE_MASK)); } -NOKPROBE_SYMBOL(patch_map); static void patch_unmap(int fixmap) { |
