[PATCH] HID: fix semantic patch and improve its performance

From: Julia Lawall

Date: Thu Aug 27 2026 - 07:30:56 EST


Replace "expression" with "identifier" in the declaration of hdev.
This is necessary because hdev is used as the name of a function
parameter.

Move the two uses of @p2 to the relevant function names.

Convert <... ...>, meaning that the contained pattern is optional,
to use ..., when any, and exists. This requires that the function
contain calls to hid_hw_start, etc, which reduces the set of files
that are considered for matching against this pattern.

Reported-by: Ricardo Ribalda <ribalda@xxxxxxxxxxxx>
Signed-off-by: Julia Lawall <Julia.Lawall@xxxxxxxx>

---
scripts/coccinelle/hid/ff_race.cocci | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/scripts/coccinelle/hid/ff_race.cocci b/scripts/coccinelle/hid/ff_race.cocci
index 479f5d1e3..e861de00c 100644
--- a/scripts/coccinelle/hid/ff_race.cocci
+++ b/scripts/coccinelle/hid/ff_race.cocci
@@ -7,18 +7,19 @@

virtual report

-@r@
+@r exists@
identifier probe_fn;
-expression hdev, flags;
+identifier hdev;
+expression flags;
position p1, p2;
@@

probe_fn(struct hid_device *hdev, ...) {
- <...
+ ... when any
hid_hw_start@p1(hdev, flags)
...
- \(input_ff_create\|input_ff_create_memless\)@p2(...)
- ...>
+ \(input_ff_create@p2\|input_ff_create_memless@p2\)(...)
+ ... when any
}

@script:python depends on report@