Commit fa03f39
Benjamin Tissoires
HID: bpf: make hid_bpf_input_report() sleep until the device is ready
hid_bpf_input_report() is already marked to be used in sleepable context
only. So instead of hammering with timers the device to hopefully get
an available slot where the device is not sending events, we can make
that kfunc wait for the current event to be terminated before it goes in.
This allows to work with the following pseudo code:
in struct_ops/hid_device_event:
- schedule a bpf_wq, which calls hid_bpf_input_report()
- once this struct_ops function terminates, hid_bpf_input_report()
immediately starts before the next event
Link: https://patch.msgid.link/[email protected]
Acked-by: Jiri Kosina <[email protected]>
Signed-off-by: Benjamin Tissoires <[email protected]>1 parent 3ac83fc commit fa03f39
File tree
3 files changed
+26
-9
lines changed- drivers/hid
- bpf
- include/linux
3 files changed
+26
-9
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
496 | 496 | | |
497 | 497 | | |
498 | 498 | | |
499 | | - | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
500 | 502 | | |
501 | 503 | | |
502 | 504 | | |
503 | 505 | | |
504 | 506 | | |
505 | | - | |
506 | 507 | | |
507 | 508 | | |
508 | 509 | | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
509 | 514 | | |
510 | 515 | | |
511 | 516 | | |
512 | 517 | | |
513 | 518 | | |
514 | | - | |
| 519 | + | |
| 520 | + | |
| 521 | + | |
| 522 | + | |
515 | 523 | | |
516 | | - | |
| 524 | + | |
517 | 525 | | |
518 | 526 | | |
519 | 527 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2027 | 2027 | | |
2028 | 2028 | | |
2029 | 2029 | | |
2030 | | - | |
| 2030 | + | |
| 2031 | + | |
2031 | 2032 | | |
2032 | 2033 | | |
2033 | 2034 | | |
| |||
2037 | 2038 | | |
2038 | 2039 | | |
2039 | 2040 | | |
2040 | | - | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
2041 | 2046 | | |
| 2047 | + | |
2042 | 2048 | | |
2043 | 2049 | | |
2044 | 2050 | | |
| |||
2079 | 2085 | | |
2080 | 2086 | | |
2081 | 2087 | | |
2082 | | - | |
| 2088 | + | |
| 2089 | + | |
2083 | 2090 | | |
2084 | 2091 | | |
2085 | 2092 | | |
| |||
2097 | 2104 | | |
2098 | 2105 | | |
2099 | 2106 | | |
2100 | | - | |
| 2107 | + | |
| 2108 | + | |
2101 | 2109 | | |
2102 | 2110 | | |
2103 | 2111 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
75 | | - | |
| 75 | + | |
| 76 | + | |
76 | 77 | | |
77 | 78 | | |
78 | 79 | | |
| |||
0 commit comments