|
Revision tags: v6.15, v6.15-rc7, v6.15-rc6, v6.15-rc5, v6.15-rc4, v6.15-rc3, v6.15-rc2, v6.15-rc1, v6.14, v6.14-rc7, v6.14-rc6, v6.14-rc5, v6.14-rc4, v6.14-rc3, v6.14-rc2, v6.14-rc1, v6.13, v6.13-rc7 |
|
| #
c600a559 |
| 06-Jan-2025 |
Tatsuya S <[email protected]> |
HID: core: Add reserved item tag for main items
For main items, separate warning of reserved item tag from warning of unknown item tag. This comes from 6.2.2.4 Main Items of Device Class Definition
HID: core: Add reserved item tag for main items
For main items, separate warning of reserved item tag from warning of unknown item tag. This comes from 6.2.2.4 Main Items of Device Class Definition for HID 1.11 specification.
Signed-off-by: Tatsuya S <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
0d24d4b1 |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Move all hid-pidff definitions to a dedicated header
Do not clutter hid includes with stuff not needed outside of the kernel.
Signed-off-by: Tomasz Pakuła <tomasz.pakula.oficjalny@gmail
HID: pidff: Move all hid-pidff definitions to a dedicated header
Do not clutter hid includes with stuff not needed outside of the kernel.
Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Tested-by: Pablo Cisneros <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
abdbf876 |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add PERIODIC_SINE_ONLY quirk
Some devices only support SINE periodic effect although they advertise support for all PERIODIC effect in their HID descriptor. Some just do nothing when try
HID: pidff: Add PERIODIC_SINE_ONLY quirk
Some devices only support SINE periodic effect although they advertise support for all PERIODIC effect in their HID descriptor. Some just do nothing when trying to play such an effect (upload goes fine), some express undefined behavior like turning to one side.
This quirk forces all the periodic effects to be uploaded as SINE. This is acceptable as all these effects are similar in nature and are mostly used as rumble. SINE is the most popular with others seldom used (especially SAW_UP and SAW_DOWN).
Fixes periodic effects for PXN and LITE STAR wheels
Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
3051bf5e |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add FIX_WHEEL_DIRECTION quirk
Most steering wheels simply ignore DIRECTION field, but some try to be compliant with the PID standard and use it in force calculations. Games often ignore
HID: pidff: Add FIX_WHEEL_DIRECTION quirk
Most steering wheels simply ignore DIRECTION field, but some try to be compliant with the PID standard and use it in force calculations. Games often ignore setting this field properly and/or there can be issues with dinput8 -> wine -> SDL -> Linux API translation, and this value can be incorrect. This can lead to partial/complete loss of Force Feedback or even unexpected force reversal.
Sadly, this quirk can't be detected automatically without sending out effects that would move an axis.
This fixes FFB on Moza Racing devices and others where effect direction is not simply ignored.
Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
36de0164 |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol
This lays out a way to provide an initial set of quirks to enable before device initialization takes place. GPL symbol export need
HID: pidff: Add hid_pidff_init_with_quirks and export as GPL symbol
This lays out a way to provide an initial set of quirks to enable before device initialization takes place. GPL symbol export needed for the possibility of building HID drivers which use this function as modules.
Adding a wrapper function to ensure compatibility with the old behavior of hid_pidff_init.
Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Tested-by: Pablo Cisneros <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
a4119108 |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add PERMISSIVE_CONTROL quirk
With this quirk, a PID device isn't required to have a strict logical_minimum of 1 for the the PID_DEVICE_CONTROL usage page.
Some devices come with weird v
HID: pidff: Add PERMISSIVE_CONTROL quirk
With this quirk, a PID device isn't required to have a strict logical_minimum of 1 for the the PID_DEVICE_CONTROL usage page.
Some devices come with weird values in their device descriptors and this quirk enables their initialization even if the logical minimum of the DEVICE_CONTROL page is not 1.
Fixes initialization of VRS Direct Force Pro
Changes in v6: - Change quirk name to better reflect it's intention
Co-developed-by: Makarenko Oleg <[email protected]> Signed-off-by: Makarenko Oleg <[email protected]> Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Tested-by: Pablo Cisneros <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
fc7c154e |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add MISSING_PBO quirk and its detection
Some devices with only one axis are missing PARAMETER_BLOCK_OFFSET field for conditional effects. They can only have one axis, so we're limiting t
HID: pidff: Add MISSING_PBO quirk and its detection
Some devices with only one axis are missing PARAMETER_BLOCK_OFFSET field for conditional effects. They can only have one axis, so we're limiting the max_axis when setting the report for those effects.
Automatic detection ensures compatibility even if such device won't be explicitly defined in the kernel.
Fixes initialization of VRS DirectForce PRO and possibly other devices.
Changes in v6: - Fixed NULL pointer dereference. When PBO is missing, make sure not to set it anyway
Co-developed-by: Makarenko Oleg <[email protected]> Signed-off-by: Makarenko Oleg <[email protected]> Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Tested-by: Pablo Cisneros <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
| #
2d5c7ce5 |
| 01-Feb-2025 |
Tomasz Pakuła <[email protected]> |
HID: pidff: Add MISSING_DELAY quirk and its detection
A lot of devices do not include this field, and it's seldom used in force feedback implementations. I tested about three dozen applications and
HID: pidff: Add MISSING_DELAY quirk and its detection
A lot of devices do not include this field, and it's seldom used in force feedback implementations. I tested about three dozen applications and none of them make use of the delay.
This fixes initialization of a lot of PID wheels like Cammus, VRS, FFBeast
This change has no effect on fully compliant devices
Co-developed-by: Makarenko Oleg <[email protected]> Signed-off-by: Makarenko Oleg <[email protected]> Signed-off-by: Tomasz Pakuła <[email protected]> Reviewed-by: Michał Kopeć <[email protected]> Reviewed-by: Paul Dino Jones <[email protected]> Tested-by: Paul Dino Jones <[email protected]> Tested-by: Cristóferson Bueno <[email protected]> Tested-by: Pablo Cisneros <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc6, v6.13-rc5, v6.13-rc4 |
|
| #
80818fdc |
| 20-Dec-2024 |
Terry Tritton <[email protected]> |
HID: fix generic desktop D-Pad controls
The addition of the "System Do Not Disturb" event code caused the Generic Desktop D-Pad configuration to be skipped. This commit allows both to be configured
HID: fix generic desktop D-Pad controls
The addition of the "System Do Not Disturb" event code caused the Generic Desktop D-Pad configuration to be skipped. This commit allows both to be configured without conflicting with each other.
Fixes: 22d6d060ac77 ("input: Add support for "Do Not Disturb"") Signed-off-by: Terry Tritton <[email protected]> Reviewed-by: Aseda Aboagye <[email protected]> Reviewed-by: Carlos Llamas <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
|
Revision tags: v6.13-rc3, v6.13-rc2, v6.13-rc1, v6.12, v6.12-rc7, v6.12-rc6, v6.12-rc5, v6.12-rc4, v6.12-rc3, v6.12-rc2 |
|
| #
645c224a |
| 01-Oct-2024 |
Benjamin Tissoires <[email protected]> |
HID: add per device quirk to force bind to hid-generic
We already have the possibility to force not binding to hid-generic and rely on a dedicated driver, but we couldn't do the other way around.
T
HID: add per device quirk to force bind to hid-generic
We already have the possibility to force not binding to hid-generic and rely on a dedicated driver, but we couldn't do the other way around.
This is useful for BPF programs where we are fixing the report descriptor and the events, but want to avoid a specialized driver to come after BPF which would unwind everything that is done there.
Reviewed-by: Peter Hutterer <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
8b7fd6a1 |
| 01-Oct-2024 |
Benjamin Tissoires <[email protected]> |
HID: bpf: move HID-BPF report descriptor fixup earlier
Currently, hid_bpf_rdesc_fixup() is called once the match between the HID device and the driver is done. This can be problematic in case the dr
HID: bpf: move HID-BPF report descriptor fixup earlier
Currently, hid_bpf_rdesc_fixup() is called once the match between the HID device and the driver is done. This can be problematic in case the driver selected by the kernel would change the report descriptor after the fact.
To give a chance for hid_bpf_rdesc_fixup() to provide hints on to how to select a dedicated driver or not, move the call to that BPF hook earlier in the .probe() process, when we get the first match.
However, this means that we might get called more than once (typically once for hid-generic, and once for hid-vendor-specific). So we store the result of HID-BPF fixup in struct hid_device. Basically, this means that ->bpf_rdesc can replace ->dev_rdesc when it was used in the code.
In order to not grow struct hid_device, some fields are re-ordered. This was the output of pahole for the first 128 bytes: struct hid_device { __u8 * dev_rdesc; /* 0 8 */ unsigned int dev_rsize; /* 8 4 */
/* XXX 4 bytes hole, try to pack */
__u8 * rdesc; /* 16 8 */ unsigned int rsize; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
struct hid_collection * collection; /* 32 8 */ unsigned int collection_size; /* 40 4 */ unsigned int maxcollection; /* 44 4 */ unsigned int maxapplication; /* 48 4 */ __u16 bus; /* 52 2 */ __u16 group; /* 54 2 */ __u32 vendor; /* 56 4 */ __u32 product; /* 60 4 */ /* --- cacheline 1 boundary (64 bytes) --- */ __u32 version; /* 64 4 */ enum hid_type type; /* 68 4 */ unsigned int country; /* 72 4 */
/* XXX 4 bytes hole, try to pack */
struct hid_report_enum report_enum[3]; /* 80 6216 */
Basically, we got three holes of 4 bytes. We can reorder things a little and makes those 3 holes a continuous 12 bytes hole, which can be replaced by the new pointer and the new unsigned int we need.
In terms of code allocation, when not using HID-BPF, we are back to kernel v6.2 in hid_open_report(). These multiple kmemdup() calls will be fixed in a later commit.
Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
c653ffc2 |
| 03-Oct-2024 |
Dmitry Torokhov <[email protected]> |
HID: stop exporting hid_snto32()
The only user of hid_snto32() is Logitech HID++ driver, which always calls hid_snto32() with valid size (constant, either 12 or 8) and therefore can simply use sign_
HID: stop exporting hid_snto32()
The only user of hid_snto32() is Logitech HID++ driver, which always calls hid_snto32() with valid size (constant, either 12 or 8) and therefore can simply use sign_extend32().
Make the switch and remove hid_snto32(). Move snto32() and s32ton() to avoid introducing forward declaration.
Signed-off-by: Dmitry Torokhov <[email protected]> Link: https://patch.msgid.link/[email protected] [bentiss: fix checkpatch warning] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
|
Revision tags: v6.12-rc1, v6.11, v6.11-rc7, v6.11-rc6, v6.11-rc5, v6.11-rc4, v6.11-rc3, v6.11-rc2 |
|
| #
fe73965d |
| 03-Aug-2024 |
Thomas Weißschuh <[email protected]> |
HID: change return type of report_fixup() to const
By allowing the drivers to return a "const *" they can constify their static report arrays. This makes it clear to driver authors that the HID core
HID: change return type of report_fixup() to const
By allowing the drivers to return a "const *" they can constify their static report arrays. This makes it clear to driver authors that the HID core will not modify those reports and they can be reused for multiple devices. Furthermore security is slightly improved as those reports are protected against accidental or malicious modifications.
[bentiss: fixup hid-cougar.c and hid-multitouch.c for latest version of the master branch]
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
3593630c |
| 03-Aug-2024 |
Thomas Weißschuh <[email protected]> |
HID: constify hid_device::dev_rdesc
Once a report descriptor has been created by the HID core it is not supposed to be modified anymore. Enforce this invariant through the type system.
Signed-off-b
HID: constify hid_device::dev_rdesc
Once a report descriptor has been created by the HID core it is not supposed to be modified anymore. Enforce this invariant through the type system.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
80cfb508 |
| 03-Aug-2024 |
Thomas Weißschuh <[email protected]> |
HID: constify params and return value of fetch_item()
fetch_item() does not modify the descriptor it operates on. As a prerequisite for the constification of hid_driver::dev_rdesc, mark the paramete
HID: constify params and return value of fetch_item()
fetch_item() does not modify the descriptor it operates on. As a prerequisite for the constification of hid_driver::dev_rdesc, mark the parameters and return value of fetch_item() as const.
Also adapt the variable types in the callers to match this constification.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
24ddd0d7 |
| 03-Aug-2024 |
Thomas Weißschuh <[email protected]> |
HID: constify hid_device::rdesc
Once a report descriptor has been created by the HID core it is not supposed to be modified anymore. Enforce this invariant through the type system.
Signed-off-by: T
HID: constify hid_device::rdesc
Once a report descriptor has been created by the HID core it is not supposed to be modified anymore. Enforce this invariant through the type system.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
6737769c |
| 03-Aug-2024 |
Thomas Weißschuh <[email protected]> |
HID: constify parameter rdesc of hid_parse_report()
The parameter is never modified, so mark it as const.
This is a prerequisite for constification changes in the HID core.
Signed-off-by: Thomas W
HID: constify parameter rdesc of hid_parse_report()
The parameter is never modified, so mark it as const.
This is a prerequisite for constification changes in the HID core.
Signed-off-by: Thomas Weißschuh <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
|
Revision tags: v6.11-rc1, v6.10, v6.10-rc7 |
|
| #
6edb8cd8 |
| 05-Jul-2024 |
Kerem Karabay <[email protected]> |
HID: core: add helper for finding a field with a certain usage
This helper will allow HID drivers to easily determine if they should bind to a hid_device by checking for the prescence of a certain f
HID: core: add helper for finding a field with a certain usage
This helper will allow HID drivers to easily determine if they should bind to a hid_device by checking for the prescence of a certain field when its ID is not enough, which can be the case on USB devices with multiple interfaces and/or configurations.
Convert google-hammer driver to use it, and remove now superfluous hammer_has_usage().
[[email protected]: expand changelog with the information about google-hammer being added as user of this API ] Signed-off-by: Kerem Karabay <[email protected]> Signed-off-by: Aditya Garg <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc6 |
|
| #
9286675a |
| 26-Jun-2024 |
Benjamin Tissoires <[email protected]> |
HID: bpf: add HID-BPF hooks for hid_hw_output_report
Same story than hid_hw_raw_requests:
This allows to intercept and prevent or change the behavior of hid_hw_output_report() from a bpf program.
HID: bpf: add HID-BPF hooks for hid_hw_output_report
Same story than hid_hw_raw_requests:
This allows to intercept and prevent or change the behavior of hid_hw_output_report() from a bpf program.
The intent is to solve a couple of use case: - firewalling a HID device: a firewall can monitor who opens the hidraw nodes and then prevent or allow access to write operations on that hidraw node. - change the behavior of a device and emulate a new HID feature request
The hook is allowed to be run as sleepable so it can itself call hid_hw_output_report(), which allows to "convert" one feature request into another or even call the feature request on a different HID device on the same physical device.
Link: https://patch.msgid.link/[email protected] Acked-by: Jiri Kosina <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
75839101 |
| 26-Jun-2024 |
Benjamin Tissoires <[email protected]> |
HID: bpf: prevent infinite recursions with hid_hw_raw_requests hooks
When we attach a sleepable hook to hid_hw_raw_requests, we can (and in many cases should) call ourself hid_bpf_raw_request(), to
HID: bpf: prevent infinite recursions with hid_hw_raw_requests hooks
When we attach a sleepable hook to hid_hw_raw_requests, we can (and in many cases should) call ourself hid_bpf_raw_request(), to actually fetch data from the device itself.
However, this means that we might enter an infinite loop between hid_hw_raw_requests hooks and hid_bpf_hw_request() call.
To prevent that, if a hid_bpf_hw_request() call is emitted, we prevent any new call of this kfunc by storing the information in the context. This way we can always trace/monitor/filter the incoming bpf requests, while preventing those loops to happen.
I don't think exposing "from_bpf" is very interesting because while writing such a bpf program, you need to match at least the report number and/or the source of the call. So a blind "if there is a hid_hw_raw_request() call, I'm emitting another one" makes no real sense.
Link: https://patch.msgid.link/[email protected] Acked-by: Jiri Kosina <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
| #
67eccf15 |
| 26-Jun-2024 |
Benjamin Tissoires <[email protected]> |
HID: add source argument to HID low level functions
This allows to know who actually sent what when we process the request to the device. This will be useful for a BPF firewall program to allow or n
HID: add source argument to HID low level functions
This allows to know who actually sent what when we process the request to the device. This will be useful for a BPF firewall program to allow or not requests coming from a dedicated hidraw node client.
Link: https://patch.msgid.link/[email protected] Acked-by: Jiri Kosina <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
|
Revision tags: v6.10-rc5, v6.10-rc4, v6.10-rc3, v6.10-rc2, v6.10-rc1, v6.9, v6.9-rc7, v6.9-rc6, v6.9-rc5, v6.9-rc4 |
|
| #
65ad580a |
| 10-Apr-2024 |
Benjamin Tissoires <[email protected]> |
HID: do not assume HAT Switch logical max < 8
Turns out that the code can handle a greater range, but the data stored can not. This is problematic on the Raptor Mach 2 joystick which logical max is
HID: do not assume HAT Switch logical max < 8
Turns out that the code can handle a greater range, but the data stored can not. This is problematic on the Raptor Mach 2 joystick which logical max is 239. The kernel interprets it as `-15` and thus ignores the Hat Switch handling.
Link: https://gitlab.freedesktop.org/libevdev/udev-hid-bpf/-/issues/17 Link: https://lore.kernel.org/r/[email protected] Reviewed-by: Peter Hutterer <[email protected]> Signed-off-by: Benjamin Tissoires <[email protected]>
show more ...
|
|
Revision tags: v6.9-rc3, v6.9-rc2, v6.9-rc1, v6.8, v6.8-rc7, v6.8-rc6, v6.8-rc5, v6.8-rc4, v6.8-rc3 |
|
| #
ed94a8f8 |
| 01-Feb-2024 |
Jiri Slaby (SUSE) <[email protected]> |
HID: protect hid_device::bpf by CONFIG_HID_BPF
And not by CONFIG_BPF. BPF can be selected while HID_BPF does not have to. It actually cannot be on some platforms due to Kconfig dependences.
This sa
HID: protect hid_device::bpf by CONFIG_HID_BPF
And not by CONFIG_BPF. BPF can be selected while HID_BPF does not have to. It actually cannot be on some platforms due to Kconfig dependences.
This saves quite some bytes on those setups.
Found by https://github.com/jirislaby/clang-struct.
Signed-off-by: Jiri Slaby (SUSE) <[email protected]> Cc: Jiri Kosina <[email protected]> Cc: Benjamin Tissoires <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
|
Revision tags: v6.8-rc2, v6.8-rc1, v6.7, v6.7-rc8, v6.7-rc7 |
|
| #
37d158d0 |
| 20-Dec-2023 |
Greg Kroah-Hartman <[email protected]> |
HID: make hid_bus_type const
Now that the driver core can properly handle constant struct bus_type, move the hid_bus_type variable to be a constant structure as well, placing it into read-only memor
HID: make hid_bus_type const
Now that the driver core can properly handle constant struct bus_type, move the hid_bus_type variable to be a constant structure as well, placing it into read-only memory which can not be modified at runtime.
Cc: Jiri Kosina <[email protected]> Cc: Benjamin Tissoires <[email protected]> Cc: [email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|
|
Revision tags: v6.7-rc6, v6.7-rc5, v6.7-rc4, v6.7-rc3, v6.7-rc2, v6.7-rc1 |
|
| #
fc43e9c8 |
| 31-Oct-2023 |
Charles Yi <[email protected]> |
HID: fix HID device resource race between HID core and debugging support
hid_debug_events_release releases resources bound to the HID device instance. hid_device_release releases the underlying HID
HID: fix HID device resource race between HID core and debugging support
hid_debug_events_release releases resources bound to the HID device instance. hid_device_release releases the underlying HID device instance potentially before hid_debug_events_release has completed releasing debug resources bound to the same HID device instance.
Reference count to prevent the HID device instance from being torn down preemptively when HID debugging support is used. When count reaches zero, release core resources of HID device instance using hiddev_free.
The crash:
[ 120.728477][ T4396] kernel BUG at lib/list_debug.c:53! [ 120.728505][ T4396] Internal error: Oops - BUG: 0 [#1] PREEMPT SMP [ 120.739806][ T4396] Modules linked in: bcmdhd dhd_static_buf 8822cu pcie_mhi r8168 [ 120.747386][ T4396] CPU: 1 PID: 4396 Comm: hidt_bridge Not tainted 5.10.110 #257 [ 120.754771][ T4396] Hardware name: Rockchip RK3588 EVB4 LP4 V10 Board (DT) [ 120.761643][ T4396] pstate: 60400089 (nZCv daIf +PAN -UAO -TCO BTYPE=--) [ 120.768338][ T4396] pc : __list_del_entry_valid+0x98/0xac [ 120.773730][ T4396] lr : __list_del_entry_valid+0x98/0xac [ 120.779120][ T4396] sp : ffffffc01e62bb60 [ 120.783126][ T4396] x29: ffffffc01e62bb60 x28: ffffff818ce3a200 [ 120.789126][ T4396] x27: 0000000000000009 x26: 0000000000980000 [ 120.795126][ T4396] x25: ffffffc012431000 x24: ffffff802c6d4e00 [ 120.801125][ T4396] x23: ffffff8005c66f00 x22: ffffffc01183b5b8 [ 120.807125][ T4396] x21: ffffff819df2f100 x20: 0000000000000000 [ 120.813124][ T4396] x19: ffffff802c3f0700 x18: ffffffc01d2cd058 [ 120.819124][ T4396] x17: 0000000000000000 x16: 0000000000000000 [ 120.825124][ T4396] x15: 0000000000000004 x14: 0000000000003fff [ 120.831123][ T4396] x13: ffffffc012085588 x12: 0000000000000003 [ 120.837123][ T4396] x11: 00000000ffffbfff x10: 0000000000000003 [ 120.843123][ T4396] x9 : 455103d46b329300 x8 : 455103d46b329300 [ 120.849124][ T4396] x7 : 74707572726f6320 x6 : ffffffc0124b8cb5 [ 120.855124][ T4396] x5 : ffffffffffffffff x4 : 0000000000000000 [ 120.861123][ T4396] x3 : ffffffc011cf4f90 x2 : ffffff81fee7b948 [ 120.867122][ T4396] x1 : ffffffc011cf4f90 x0 : 0000000000000054 [ 120.873122][ T4396] Call trace: [ 120.876259][ T4396] __list_del_entry_valid+0x98/0xac [ 120.881304][ T4396] hid_debug_events_release+0x48/0x12c [ 120.886617][ T4396] full_proxy_release+0x50/0xbc [ 120.891323][ T4396] __fput+0xdc/0x238 [ 120.895075][ T4396] ____fput+0x14/0x24 [ 120.898911][ T4396] task_work_run+0x90/0x148 [ 120.903268][ T4396] do_exit+0x1bc/0x8a4 [ 120.907193][ T4396] do_group_exit+0x8c/0xa4 [ 120.911458][ T4396] get_signal+0x468/0x744 [ 120.915643][ T4396] do_signal+0x84/0x280 [ 120.919650][ T4396] do_notify_resume+0xd0/0x218 [ 120.924262][ T4396] work_pending+0xc/0x3f0
[ Rahul Rameshbabu <[email protected]>: rework changelog ] Fixes: cd667ce24796 ("HID: use debugfs for events/reports dumping") Signed-off-by: Charles Yi <[email protected]> Signed-off-by: Jiri Kosina <[email protected]>
show more ...
|