re: HID: add documentation and Coccinelle script for FF registration race
From: Julia Lawall
Date: Tue Aug 18 2026 - 08:08:53 EST
On Tue, 18 Aug 2026, Ricardo Ribalda wrote:
> Hi Dimitry
>
> Looks like media-ci is not particularly happy about this patch:
>
> https://gitlab.freedesktop.org/linux-media/users/ribalda/-/jobs/108127901
>
> /usr/bin/spatch -D report --no-show-diff --very-quiet --cocci-file /builds/linux-media/users/ribalda/scripts/coccinelle/hid/ff_race.cocci --patch /builds/linux-media/users/ribalda --dir . -I /builds/linux-media/users/ribalda/arch/x86/include -I /builds/linux-media/users/ribalda/arch/x86/include/generated -I /builds/linux-media/users/ribalda/include -I /builds/linux-media/users/ribalda/include -I /builds/linux-media/users/ribalda/arch/x86/include/uapi -I /builds/linux-media/users/ribalda/arch/x86/include/generated/uapi -I /builds/linux-media/users/ribalda/include/uapi -I /builds/linux-media/users/ribalda/include/generated/uapi --include /builds/linux-media/users/ribalda/include/linux/compiler-version.h --include /builds/linux-media/users/ribalda/include/linux/kconfig.h --jobs 16 --chunksize 1
> Position variable r.p2 on line 20 must be attached to some other token using @.
> coccicheck failed
>
>
> The following change fixes the issue for me... but you probably want to double
> check it, I am not proficient at cocci.
I would also like to improve this, as suggested in a previous mail.
Could it be detached from the documentation change? Then I can take this
part and fix it up.
julia
>
> diff --git a/scripts/coccinelle/hid/ff_race.cocci b/scripts/coccinelle/hid/ff_race.cocci
> index 479f5d1e3184..7cf84936db13 100644
> --- a/scripts/coccinelle/hid/ff_race.cocci
> +++ b/scripts/coccinelle/hid/ff_race.cocci
> @@ -9,7 +9,8 @@ virtual report
>
> @r@
> identifier probe_fn;
> -expression hdev, flags;
> +identifier hdev;
> +expression flags;
> position p1, p2;
> @@
>
> @@ -17,7 +18,7 @@ probe_fn(struct hid_device *hdev, ...) {
> <...
> hid_hw_start@p1(hdev, flags)
> ...
> - \(input_ff_create\|input_ff_create_memless\)@p2(...)
> + \(input_ff_create@p2\|input_ff_create_memless@p2\)(...)
> ...>
> }
>
>
> Regards!
>