summaryrefslogtreecommitdiffstats
path: root/scripts/checkpatch.pl
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2018-12-26 16:07:19 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2018-12-26 16:07:19 -0500
commit792bf4d871dea8b69be2aaabdd320d7c6ed15985 (patch)
tree8cec3755ff6df5f82b12420fb6ad6a4d531ebfd1 /scripts/checkpatch.pl
parenteed9688f8513189295887e5a27ec7f576754b60e (diff)
parent4bbfd7467cfc7d42e18d3008fa6a28ffd56e901a (diff)
Merge branch 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull RCU updates from Ingo Molnar: "The biggest RCU changes in this cycle were: - Convert RCU's BUG_ON() and similar calls to WARN_ON() and similar. - Replace calls of RCU-bh and RCU-sched update-side functions to their vanilla RCU counterparts. This series is a step towards complete removal of the RCU-bh and RCU-sched update-side functions. ( Note that some of these conversions are going upstream via their respective maintainers. ) - Documentation updates, including a number of flavor-consolidation updates from Joel Fernandes. - Miscellaneous fixes. - Automate generation of the initrd filesystem used for rcutorture testing. - Convert spin_is_locked() assertions to instead use lockdep. ( Note that some of these conversions are going upstream via their respective maintainers. ) - SRCU updates, especially including a fix from Dennis Krein for a bag-on-head-class bug. - RCU torture-test updates" * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (112 commits) rcutorture: Don't do busted forward-progress testing rcutorture: Use 100ms buckets for forward-progress callback histograms rcutorture: Recover from OOM during forward-progress tests rcutorture: Print forward-progress test age upon failure rcutorture: Print time since GP end upon forward-progress failure rcutorture: Print histogram of CB invocation at OOM time rcutorture: Print GP age upon forward-progress failure rcu: Print per-CPU callback counts for forward-progress failures rcu: Account for nocb-CPU callback counts in RCU CPU stall warnings rcutorture: Dump grace-period diagnostics upon forward-progress OOM rcutorture: Prepare for asynchronous access to rcu_fwd_startat torture: Remove unnecessary "ret" variables rcutorture: Affinity forward-progress test to avoid housekeeping CPUs rcutorture: Break up too-long rcu_torture_fwd_prog() function rcutorture: Remove cbflood facility torture: Bring any extra CPUs online during kernel startup rcutorture: Add call_rcu() flooding forward-progress tests rcutorture/formal: Replace synchronize_sched() with synchronize_rcu() tools/kernel.h: Replace synchronize_sched() with synchronize_rcu() net/decnet: Replace rcu_barrier_bh() with rcu_barrier() ...
Diffstat (limited to 'scripts/checkpatch.pl')
-rwxr-xr-xscripts/checkpatch.pl35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index c883ec55654f..377f373db6c0 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -573,6 +573,27 @@ foreach my $entry (@mode_permission_funcs) {
573} 573}
574$mode_perms_search = "(?:${mode_perms_search})"; 574$mode_perms_search = "(?:${mode_perms_search})";
575 575
576our %deprecated_apis = (
577 "synchronize_rcu_bh" => "synchronize_rcu",
578 "synchronize_rcu_bh_expedited" => "synchronize_rcu_expedited",
579 "call_rcu_bh" => "call_rcu",
580 "rcu_barrier_bh" => "rcu_barrier",
581 "synchronize_sched" => "synchronize_rcu",
582 "synchronize_sched_expedited" => "synchronize_rcu_expedited",
583 "call_rcu_sched" => "call_rcu",
584 "rcu_barrier_sched" => "rcu_barrier",
585 "get_state_synchronize_sched" => "get_state_synchronize_rcu",
586 "cond_synchronize_sched" => "cond_synchronize_rcu",
587);
588
589#Create a search pattern for all these strings to speed up a loop below
590our $deprecated_apis_search = "";
591foreach my $entry (keys %deprecated_apis) {
592 $deprecated_apis_search .= '|' if ($deprecated_apis_search ne "");
593 $deprecated_apis_search .= $entry;
594}
595$deprecated_apis_search = "(?:${deprecated_apis_search})";
596
576our $mode_perms_world_writable = qr{ 597our $mode_perms_world_writable = qr{
577 S_IWUGO | 598 S_IWUGO |
578 S_IWOTH | 599 S_IWOTH |
@@ -6368,6 +6389,20 @@ sub process {
6368 "please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr); 6389 "please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr);
6369 } 6390 }
6370 6391
6392# check for spin_is_locked(), suggest lockdep instead
6393 if ($line =~ /\bspin_is_locked\(/) {
6394 WARN("USE_LOCKDEP",
6395 "Where possible, use lockdep_assert_held instead of assertions based on spin_is_locked\n" . $herecurr);
6396 }
6397
6398# check for deprecated apis
6399 if ($line =~ /\b($deprecated_apis_search)\b\s*\(/) {
6400 my $deprecated_api = $1;
6401 my $new_api = $deprecated_apis{$deprecated_api};
6402 WARN("DEPRECATED_API",
6403 "Deprecated use of '$deprecated_api', prefer '$new_api' instead\n" . $herecurr);
6404 }
6405
6371# check for various structs that are normally const (ops, kgdb, device_tree) 6406# check for various structs that are normally const (ops, kgdb, device_tree)
6372# and avoid what seem like struct definitions 'struct foo {' 6407# and avoid what seem like struct definitions 'struct foo {'
6373 if ($line !~ /\bconst\b/ && 6408 if ($line !~ /\bconst\b/ &&