HID: bpf: actually free hdev memory after attaching a HID-BPF program
authorBenjamin Tissoires <bentiss@kernel.org>
Wed, 24 Jan 2024 11:26:58 +0000 (12:26 +0100)
committerBenjamin Tissoires <bentiss@kernel.org>
Wed, 31 Jan 2024 09:27:05 +0000 (10:27 +0100)
commit89be8aa5b0ecb3b729c7bcff64bb2af7921fec63
treeb1a6d7ede14188df09992669cbfda5f6eaea0c5b
parent7cdd2108903a4e369eb37579830afc12a6877ec2
HID: bpf: actually free hdev memory after attaching a HID-BPF program

Turns out that I got my reference counts wrong and each successful
bus_find_device() actually calls get_device(), and we need to manually
call put_device().

Ensure each bus_find_device() gets a matching put_device() when releasing
the bpf programs and fix all the error paths.

Cc: <stable@vger.kernel.org>
Fixes: f5c27da4e3c8 ("HID: initial BPF implementation")
Link: https://lore.kernel.org/r/20240124-b4-hid-bpf-fixes-v2-2-052520b1e5e6@kernel.org
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
drivers/hid/bpf/hid_bpf_dispatch.c
drivers/hid/bpf/hid_bpf_jmp_table.c