aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--scripts/coccinelle/misc/boolconv.cocci90
-rw-r--r--scripts/coccinelle/misc/irqf_oneshot.cocci52
-rwxr-xr-xscripts/package/mkspec3
3 files changed, 128 insertions, 17 deletions
diff --git a/scripts/coccinelle/misc/boolconv.cocci b/scripts/coccinelle/misc/boolconv.cocci
new file mode 100644
index 000000000000..33c464d6bc71
--- /dev/null
+++ b/scripts/coccinelle/misc/boolconv.cocci
@@ -0,0 +1,90 @@
1/// Remove unneeded conversion to bool
2///
3//# Relational and logical operators evaluate to bool,
4//# explicit conversion is overly verbose and unneeded.
5//
6// Copyright: (C) 2016 Andrew F. Davis <afd@ti.com> GPLv2.
7
8virtual patch
9virtual context
10virtual org
11virtual report
12
13//----------------------------------------------------------
14// For patch mode
15//----------------------------------------------------------
16
17@depends on patch@
18expression A, B;
19symbol true, false;
20@@
21
22(
23 A == B
24|
25 A != B
26|
27 A > B
28|
29 A < B
30|
31 A >= B
32|
33 A <= B
34|
35 A && B
36|
37 A || B
38)
39- ? true : false
40
41//----------------------------------------------------------
42// For context mode
43//----------------------------------------------------------
44
45@r depends on !patch@
46expression A, B;
47symbol true, false;
48position p;
49@@
50
51(
52 A == B
53|
54 A != B
55|
56 A > B
57|
58 A < B
59|
60 A >= B
61|
62 A <= B
63|
64 A && B
65|
66 A || B
67)
68* ? true : false@p
69
70//----------------------------------------------------------
71// For org mode
72//----------------------------------------------------------
73
74@script:python depends on r&&org@
75p << r.p;
76@@
77
78msg = "WARNING: conversion to bool not needed here"
79coccilib.org.print_todo(p[0], msg)
80
81//----------------------------------------------------------
82// For report mode
83//----------------------------------------------------------
84
85@script:python depends on r&&report@
86p << r.p;
87@@
88
89msg = "WARNING: conversion to bool not needed here"
90coccilib.report.print_report(p[0], msg)
diff --git a/scripts/coccinelle/misc/irqf_oneshot.cocci b/scripts/coccinelle/misc/irqf_oneshot.cocci
index b421150a2eff..f698d6d0f5d7 100644
--- a/scripts/coccinelle/misc/irqf_oneshot.cocci
+++ b/scripts/coccinelle/misc/irqf_oneshot.cocci
@@ -5,7 +5,7 @@
5/// So pass the IRQF_ONESHOT flag in this case. 5/// So pass the IRQF_ONESHOT flag in this case.
6/// 6///
7// 7//
8// Confidence: Good 8// Confidence: Moderate
9// Comments: 9// Comments:
10// Options: --no-includes 10// Options: --no-includes
11 11
@@ -15,16 +15,13 @@ virtual org
15virtual report 15virtual report
16 16
17@r1@ 17@r1@
18expression dev; 18expression dev, irq, thread_fn;
19expression irq;
20expression thread_fn;
21expression flags;
22position p; 19position p;
23@@ 20@@
24( 21(
25request_threaded_irq@p(irq, NULL, thread_fn, 22request_threaded_irq@p(irq, NULL, thread_fn,
26( 23(
27flags | IRQF_ONESHOT 24IRQF_ONESHOT | ...
28| 25|
29IRQF_ONESHOT 26IRQF_ONESHOT
30) 27)
@@ -32,21 +29,34 @@ IRQF_ONESHOT
32| 29|
33devm_request_threaded_irq@p(dev, irq, NULL, thread_fn, 30devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
34( 31(
35flags | IRQF_ONESHOT 32IRQF_ONESHOT | ...
36| 33|
37IRQF_ONESHOT 34IRQF_ONESHOT
38) 35)
39, ...) 36, ...)
40) 37)
41 38
42@depends on patch@ 39@r2@
43expression dev; 40expression dev, irq, thread_fn, flags, e;
44expression irq;
45expression thread_fn;
46expression flags;
47position p != r1.p; 41position p != r1.p;
48@@ 42@@
49( 43(
44flags = IRQF_ONESHOT | ...
45|
46flags |= IRQF_ONESHOT | ...
47)
48... when != flags = e
49(
50request_threaded_irq@p(irq, NULL, thread_fn, flags, ...);
51|
52devm_request_threaded_irq@p(dev, irq, NULL, thread_fn, flags, ...);
53)
54
55@depends on patch@
56expression dev, irq, thread_fn, flags;
57position p != {r1.p,r2.p};
58@@
59(
50request_threaded_irq@p(irq, NULL, thread_fn, 60request_threaded_irq@p(irq, NULL, thread_fn,
51( 61(
52-0 62-0
@@ -69,15 +79,25 @@ devm_request_threaded_irq@p(dev, irq, NULL, thread_fn,
69) 79)
70 80
71@depends on context@ 81@depends on context@
72position p != r1.p; 82expression dev, irq;
83position p != {r1.p,r2.p};
73@@ 84@@
74*request_threaded_irq@p(...) 85(
86*request_threaded_irq@p(irq, NULL, ...)
87|
88*devm_request_threaded_irq@p(dev, irq, NULL, ...)
89)
90
75 91
76@match depends on report || org@ 92@match depends on report || org@
77expression irq; 93expression dev, irq;
78position p != r1.p; 94position p != {r1.p,r2.p};
79@@ 95@@
96(
80request_threaded_irq@p(irq, NULL, ...) 97request_threaded_irq@p(irq, NULL, ...)
98|
99devm_request_threaded_irq@p(dev, irq, NULL, ...)
100)
81 101
82@script:python depends on org@ 102@script:python depends on org@
83p << match.p; 103p << match.p;
diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index 57673bae5597..bb43f153fd8e 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -116,7 +116,8 @@ echo 'mv vmlinux.bz2 $RPM_BUILD_ROOT'"/boot/vmlinux-$KERNELRELEASE.bz2"
116echo "%endif" 116echo "%endif"
117 117
118if ! $PREBUILT; then 118if ! $PREBUILT; then
119echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}" 119echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/build"
120echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/source"
120echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE" 121echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
121echo "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d\"" 122echo "EXCLUDES=\"$RCS_TAR_IGNORE --exclude .tmp_versions --exclude=*vmlinux* --exclude=*.o --exclude=*.ko --exclude=*.cmd --exclude=Documentation --exclude=firmware --exclude .config.old --exclude .missing-syscalls.d\""
122echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)" 123echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"