On Fri, Oct 9, 2026 at 3:29 PM <[email protected]> wrote:
>
> Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
> to consider:
> - [Medium] hid: documentation incorrectly relaxes asynchronous requirement 
> for output_report
> --
>
> commit 6d8fa62fc058c7f5630a13cc92c85b7867bc9869
> Author: Jarrett Schultz <[email protected]>
>
> Documentation: Correction in HID output_report callback description.
>
> This commit updates the documentation for the HID output_report callback.
> It changes the description to state that the callback might be asynchronous
> rather than strictly requiring it, citing i2c-hid as an example.
>
> > diff --git a/Documentation/hid/hid-transport.rst 
> > b/Documentation/hid/hid-transport.rst
> > index 6f1692da296cf..2008cf432af12 100644
> > --- a/Documentation/hid/hid-transport.rst
> > +++ b/Documentation/hid/hid-transport.rst
> > @@ -327,8 +327,8 @@ The available HID callbacks are:
> >
> >     Send raw output report via intr channel. Used by some HID device drivers
> >     which require high throughput for outgoing requests on the intr 
> > channel. This
> > -   must not cause SET_REPORT calls! This must be implemented as 
> > asynchronous
> > -   output report on the intr channel!
> > +   must not cause SET_REPORT calls! This call might be asynchronous, so the
> > +   caller should not expect an immediate response!
>
> [Severity: Medium]
> Does this documentation change contradict the strict architectural guarantees
> of the HID subsystem?
>
> The HID subsystem design rules mandate that the output_report callback must
> be asynchronous to prevent latency spikes, performance degradation, or
> deadlocks on the high-throughput interrupt channel.
>
> By stating that the call "might be asynchronous", could this inadvertently
> mislead future transport driver authors into implementing blocking,
> synchronous callbacks where they are not permitted?
>
> --
> Sashiko AI review · 
> https://sashiko.dev/#/patchset/[email protected]?part=1

The "must be asynchronous" rule doesn't match the in-tree transports.
usbhid and i2c-hid both block in `output_report()`, and hid-input calls it
from a workqueue as a "synchronous output report". This patch only
brings the documentation in line with existing behavior; the actual
requirements don't change.

Reply via email to