History

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() ...

Linus Torvalds committed 7 years ago

Commit 792bf4d2 parents eed9688 4bbfd7488 files · +4187 −4014Browse files

Showing the changes to scripts (1 of 88 files). Show all

Unified · Split

scripts/checkpatch.pl+35−0
@@ -573,6 +573,27 @@ foreach my $entry (@mode_permission_funcs) { · 572 unmodified lines
573573 }
574574 $mode_perms_search = "(?:${mode_perms_search})";
575575
576+our %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
590+our $deprecated_apis_search = "";
591+foreach 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+
576597 our $mode_perms_world_writable = qr{
577598 S_IWUGO |
578599 S_IWOTH |
@@ -6368,6 +6389,20 @@ sub process { · 5789 unmodified lines
63686389 "please use device_initcall() or more appropriate function instead of __initcall() (see include/linux/init.h)\n" . $herecurr);
63696390 }
63706391
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+
63716406 # check for various structs that are normally const (ops, kgdb, device_tree)
63726407 # and avoid what seem like struct definitions 'struct foo {'
63736408 if ($line !~ /\bconst\b/ &&