summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorBenjamin Tissoires <bentiss@kernel.org>2026-08-25 11:55:11 +0200
committerBenjamin Tissoires <bentiss@kernel.org>2026-09-01 16:08:28 +0200
commit67bfe48a29fbddfff77e13d4d327e49fca2c2be5 (patch)
tree27099ee15966b5e821a6364ab824a636eb3a96dd /drivers
parenta8e04f3f894ccb52cfcd7e60125a9f35da4a616d (diff)
downloadlinux-next-67bfe48a29fbddfff77e13d4d327e49fca2c2be5.tar.gz
linux-next-67bfe48a29fbddfff77e13d4d327e49fca2c2be5.zip
HID: bpf: mark struct hid_device as safe BPF pointer
Commit ee9ad135b208 ("bpf: Reject a store through a fault prone pointer") in the BPF tree makes the verifier reject any writes to hid_device->{name,uniq,phys}. A simple solution is to mark the struct hid_device as safe from a BPF point of view. Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hid/bpf/hid_bpf_struct_ops.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/hid/bpf/hid_bpf_struct_ops.c b/drivers/hid/bpf/hid_bpf_struct_ops.c
index 702c22fae136..56c53aca4511 100644
--- a/drivers/hid/bpf/hid_bpf_struct_ops.c
+++ b/drivers/hid/bpf/hid_bpf_struct_ops.c
@@ -62,6 +62,10 @@ struct hid_bpf_offset_write_range {
u32 end;
};
+struct hid_bpf_ctx__safe_trusted {
+ struct hid_device *hid;
+};
+
static int hid_bpf_ops_btf_struct_access(struct bpf_verifier_log *log,
const struct bpf_reg_state *reg,
int off, int size)
@@ -86,6 +90,8 @@ static int hid_bpf_ops_btf_struct_access(struct bpf_verifier_log *log,
const char *cur = NULL;
int i;
+ BTF_TYPE_EMIT(struct hid_bpf_ctx__safe_trusted);
+
t = btf_type_by_id(reg->btf, reg->btf_id);
for (i = 0; i < ARRAY_SIZE(write_ranges); i++) {