Bug 215089

Summary: local struct uinput_event inconsistency with kernel y2038 safe struct input_event: AVRCP events vanish on 32-bit
Product: Drivers Reporter: macmpi (spam)
Component: BluetoothAssignee: linux-bluetooth (linux-bluetooth)
Status: RESOLVED IMPLEMENTED    
Severity: high    
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 5.10 Subsystem:
Regression: No Bisected commit-id:

Description macmpi 2021-11-21 15:55:04 UTC
Under bluez (up to 5.62) compiled with time64 support (like musl1.2 or possibly newer glibc with __USE_TIME_BITS64) on 32-bit systems (x86 or armhf for instance), AVRCP events just never show-up on input device.

Tools like evtest will not report any event upon bluetooth headset media button keypress, whereas btmon sees them flowing through.

This bug does not hit x86-64 releases, only 32-bit are affected.

Issue has been discussed here [1], with a simple & replicable Alpinelinux 3.14 test case (based on musl 1.2).
Legacy local uinput_event struct might not play well with newer time64-aware input_event kernel structure.



[1] https://github.com/bluez/bluez/issues/84#issuecomment-942155841