summaryrefslogtreecommitdiff
path: root/include/linux/bpf.h
diff options
context:
space:
mode:
authorYafang Shao <laoar.shao@gmail.com>2023-10-05 08:41:23 +0000
committerDaniel Borkmann <daniel@iogearbox.net>2023-10-06 20:16:44 +0200
commitbc5bc309db45a7ab218ce8259ba9bc7659be61ca (patch)
tree658e32196afca145b29b0c268385fd2a57046df1 /include/linux/bpf.h
parent9c8c3fa3a52bc55696ccc4dfcb8a49f969b5fb0e (diff)
bpf: Inherit system settings for CPU security mitigations
Currently, there exists a system-wide setting related to CPU security mitigations, denoted as 'mitigations='. When set to 'mitigations=off', it deactivates all optional CPU mitigations. Therefore, if we implement a system-wide 'mitigations=off' setting, it should inherently bypass Spectre v1 and Spectre v4 in the BPF subsystem. Please note that there is also a more specific 'nospectre_v1' setting on x86 and ppc architectures, though it is not currently exported. For the time being, let's disregard more fine-grained options. This idea emerged during our discussion about potential Spectre v1 attacks with Luis [0]. [0] https://lore.kernel.org/bpf/b4fc15f7-b204-767e-ebb9-fdb4233961fb@iogearbox.net Signed-off-by: Yafang Shao <laoar.shao@gmail.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net> Acked-by: Stanislav Fomichev <sdf@google.com> Acked-by: Song Liu <song@kernel.org> Acked-by: KP Singh <kpsingh@kernel.org> Cc: Luis Gerhorst <gerhorst@cs.fau.de> Link: https://lore.kernel.org/bpf/20231005084123.1338-1-laoar.shao@gmail.com
Diffstat (limited to 'include/linux/bpf.h')
-rw-r--r--include/linux/bpf.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/include/linux/bpf.h b/include/linux/bpf.h
index a82efd34b741..61bde4520f5c 100644
--- a/include/linux/bpf.h
+++ b/include/linux/bpf.h
@@ -2164,12 +2164,12 @@ static inline bool bpf_allow_uninit_stack(void)
static inline bool bpf_bypass_spec_v1(void)
{
- return perfmon_capable();
+ return perfmon_capable() || cpu_mitigations_off();
}
static inline bool bpf_bypass_spec_v4(void)
{
- return perfmon_capable();
+ return perfmon_capable() || cpu_mitigations_off();
}
int bpf_map_new_fd(struct bpf_map *map, int flags);