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() ...
Showing the changes to scripts (1 of 88 files). Show all
Unified · Split
| @@ -573,6 +573,27 @@ foreach my $entry (@mode_permission_funcs) { · 572 unmodified lines | ||
| 573 | 573 | } |
| 574 | 574 | $mode_perms_search = "(?:${mode_perms_search})"; |
| 575 | 575 | |
| 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 | + | |
| 576 | 597 | our $mode_perms_world_writable = qr{ |
| 577 | 598 | S_IWUGO | |
| 578 | 599 | S_IWOTH | |
| @@ -6368,6 +6389,20 @@ sub process { · 5789 unmodified lines | ||
| 6368 | 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 | 6406 | # check for various structs that are normally const (ops, kgdb, device_tree) |
| 6372 | 6407 | # and avoid what seem like struct definitions 'struct foo {' |
| 6373 | 6408 | if ($line !~ /\bconst\b/ && |