Re: [cocci] [PATCH] coccinelle: misc: secs_to_jiffies: Implement context and report modes

Ricardo Ribalda
2025-06-12T13:49:31Z

On Tue, 10 Jun 2025 at 19:49, Easwar Hariharan
<eahariha@linux.microsoft.com> wrote:
>
> On 6/10/2025 10:45 AM, Easwar Hariharan wrote:
> > As requested by Ricardo and Jakub, implement report and context modes
> > for the secs_to_jiffies Coccinelle script. While here, add the option to
> > look for opportunities to use secs_to_jiffies() in headers.
> >
> > Cc: Andrew Morton <akpm@linux-foundation.org>
> > Cc: Jakub Kicinski <kuba@kernel.org>
> > Cc: Ricardo Ribalda <ribalda@chromium.org>
Tested-by: Ricardo Ribalda <ribalda@chromium.org>

With this patch I can run coccicheck MODE=report with no error.

Thanks!

> > Closes: https://lore.kernel.org/all/20250129-secs_to_jiffles-v1-1-35a5e16b9f03@chromium.org/
> > Closes: https://lore.kernel.org/all/20250221162107.409ae333@kernel.org/
> > Signed-off-by: Easwar Hariharan <eahariha@linux.microsoft.com>
> > ---
> > scripts/coccinelle/misc/secs_to_jiffies.cocci | 49 +++++++++++++++++--
> > 1 file changed, 44 insertions(+), 5 deletions(-)
> >
> > diff --git a/scripts/coccinelle/misc/secs_to_jiffies.cocci b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> > index 416f348174ca..f3241ce75a7b 100644
> > --- a/scripts/coccinelle/misc/secs_to_jiffies.cocci
> > +++ b/scripts/coccinelle/misc/secs_to_jiffies.cocci
> > @@ -7,26 +7,65 @@
> > // Confidence: High
> > // Copyright: (C) 2024 Easwar Hariharan, Microsoft
> > // Keywords: secs, seconds, jiffies
> > -//
> > +// Options: --include-headers
> >
> > virtual patch
> > +virtual report
> > +virtual context
> >
> > -@depends on patch@ constant C; @@
> > +@pconst depends on patch@ constant C; @@
> >
> > - msecs_to_jiffies(C * 1000)
> > + secs_to_jiffies(C)
> >
> > -@depends on patch@ constant C; @@
> > +@pconstms depends on patch@ constant C; @@
> >
> > - msecs_to_jiffies(C * MSEC_PER_SEC)
> > + secs_to_jiffies(C)
> >
> > -@depends on patch@ expression E; @@
> > +@pexpr depends on patch@ expression E; @@
> >
> > - msecs_to_jiffies(E * 1000)
> > + secs_to_jiffies(E)
> >
> > -@depends on patch@ expression E; @@
> > +@pexprms depends on patch@ expression E; @@
> >
> > - msecs_to_jiffies(E * MSEC_PER_SEC)
> > + secs_to_jiffies(E)
> > +
> > +@r depends on report && !patch@
> > +constant C;
> > +expression E;
> > +position p;
> > +@@
> > +
> > +(
> > + msecs_to_jiffies(C@p * 1000)
> > +|
> > + msecs_to_jiffies(C@p * MSEC_PER_SEC)
> > +|
> > + msecs_to_jiffies(E@p * 1000)
> > +|
> > + msecs_to_jiffies(E@p * MSEC_PER_SEC)
> > +)
> > +
> > +@c depends on context && !patch@
> > +constant C;
> > +expression E;
> > +@@
> > +
> > +(
> > +* msecs_to_jiffies(C * 1000)
> > +|
> > +* msecs_to_jiffies(C * MSEC_PER_SEC)
> > +|
> > +* msecs_to_jiffies(E * 1000)
> > +|
> > +* msecs_to_jiffies(E * MSEC_PER_SEC)
> > +)
> > +
> > +@script:python depends on report@
> > +p << r.p;
> > +@@
> > +
> > +coccilib.report.print_report(p[0], "WARNING opportunity for secs_to_jiffies()")
>
> Sorry, I was testing sending this to myself before sending to the list, I've added the mailing lists now.
>
> Thanks,
> Easwar (he/him)
>

--
Ricardo Ribalda