On Fri, Jan 06, 2023 at 11:23:29AM +0100, Benjamin Tissoires wrote:
+static void hid_bpf_link_release(struct bpf_link *link) +{
- struct hid_bpf_link *hid_link =
container_of(link, struct hid_bpf_link, link);
- __clear_bit(hid_link->index, jmp_table.enabled);
- schedule_work(&release_work);
+}
...
- link->index = prog_idx;
I was super confused that you use prog_idx as a bit in jmp_table and had to look into your tree what hid_bpf_jmp_table.c is doing. Looks like it's not prog_id (which is prog->aux->id) that we know. It's hid specific prog idx in that jmp table. Maybe would be good to rename your prog_idx to something with 'hid' suffix or prefix? or 'table' suffix or prefix ? prog_table_idx ?
Other than that the patch set looking great. I'm assuming removing call_hid_bpf_prog_put_deferred() and everything related comes in the next set?