1// SPDX-License-Identifier: GPL-2.0-only
2///
3/// Find usages of:
4/// - msecs_to_jiffies(value*1000)
5/// - msecs_to_jiffies(value*MSEC_PER_SEC)
6///
7// Confidence: High
8// Copyright: (C) 2024 Easwar Hariharan, Microsoft
9// Keywords: secs, seconds, jiffies
10// Options: --include-headers
11
12virtual patch
13virtual report
14virtual context
15
16@pconst depends on patch@ constant C; @@
17
18- msecs_to_jiffies(C * 1000)
19+ secs_to_jiffies(C)
20
21@pconstms depends on patch@ constant C; @@
22
23- msecs_to_jiffies(C * MSEC_PER_SEC)
24+ secs_to_jiffies(C)
25
26@pexpr depends on patch@ expression E; @@
27
28- msecs_to_jiffies(E * 1000)
29+ secs_to_jiffies(E)
30
31@pexprms depends on patch@ expression E; @@
32
33- msecs_to_jiffies(E * MSEC_PER_SEC)
34+ secs_to_jiffies(E)
35
36@r depends on report && !patch@
37constant C;
38expression E;
39position p;
40@@
41
42(
43  msecs_to_jiffies(C@p * 1000)
44|
45  msecs_to_jiffies(C@p * MSEC_PER_SEC)
46|
47  msecs_to_jiffies(E@p * 1000)
48|
49  msecs_to_jiffies(E@p * MSEC_PER_SEC)
50)
51
52@c depends on context && !patch@
53constant C;
54expression E;
55@@
56
57(
58* msecs_to_jiffies(C * 1000)
59|
60* msecs_to_jiffies(C * MSEC_PER_SEC)
61|
62* msecs_to_jiffies(E * 1000)
63|
64* msecs_to_jiffies(E * MSEC_PER_SEC)
65)
66
67@script:python depends on report@
68p << r.p;
69@@
70
71coccilib.report.print_report(p[0], "WARNING opportunity for secs_to_jiffies()")
72