| From 39deed1d18cfab0a91544f44f9654b176b9d59d6 Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 25 Mar 2021 20:50:01 +0800 |
| Subject: MIPS/bpf: Enable bpf_probe_read{, str}() on MIPS again |
| |
| From: Tiezhu Yang <yangtiezhu@loongson.cn> |
| |
| [ Upstream commit 66633abd0642f1e89d26e15f36fb13d3a1c535ff ] |
| |
| After commit 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to |
| archs where they work"), bpf_probe_read{, str}() functions were no longer |
| available on MIPS, so there exist some errors when running bpf program: |
| |
| root@linux:/home/loongson/bcc# python examples/tracing/task_switch.py |
| bpf: Failed to load program: Invalid argument |
| [...] |
| 11: (85) call bpf_probe_read#4 |
| unknown func bpf_probe_read#4 |
| [...] |
| Exception: Failed to load BPF program count_sched: Invalid argument |
| |
| ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE should be restricted to archs |
| with non-overlapping address ranges, but they can overlap in EVA mode |
| on MIPS, so select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA in |
| arch/mips/Kconfig, otherwise the bpf old helper bpf_probe_read() will |
| not be available. |
| |
| This is similar with the commit d195b1d1d119 ("powerpc/bpf: Enable |
| bpf_probe_read{, str}() on powerpc again"). |
| |
| Fixes: 0ebeea8ca8a4 ("bpf: Restrict bpf_probe_read{, str}() only to archs where they work") |
| Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> |
| Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| arch/mips/Kconfig | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig |
| index 0a17bedf4f0d..bf8ccd965512 100644 |
| --- a/arch/mips/Kconfig |
| +++ b/arch/mips/Kconfig |
| @@ -6,6 +6,7 @@ config MIPS |
| select ARCH_BINFMT_ELF_STATE if MIPS_FP_SUPPORT |
| select ARCH_HAS_FORTIFY_SOURCE |
| select ARCH_HAS_KCOV |
| + select ARCH_HAS_NON_OVERLAPPING_ADDRESS_SPACE if !EVA |
| select ARCH_HAS_PTE_SPECIAL if !(32BIT && CPU_HAS_RIXI) |
| select ARCH_HAS_TICK_BROADCAST if GENERIC_CLOCKEVENTS_BROADCAST |
| select ARCH_HAS_UBSAN_SANITIZE_ALL |
| -- |
| 2.30.2 |
| |