diff options
Diffstat (limited to 'scripts/checkpatch.pl')
| -rwxr-xr-x | scripts/checkpatch.pl | 24 | 
1 files changed, 24 insertions, 0 deletions
| diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl index 880fde13d9b8..a9841148cde2 100755 --- a/scripts/checkpatch.pl +++ b/scripts/checkpatch.pl @@ -7457,6 +7457,30 @@ sub process {  			}  		} +# Complain about RCU Tasks Trace used outside of BPF (and of course, RCU). +		our $rcu_trace_funcs = qr{(?x: +			rcu_read_lock_trace | +			rcu_read_lock_trace_held | +			rcu_read_unlock_trace | +			call_rcu_tasks_trace | +			synchronize_rcu_tasks_trace | +			rcu_barrier_tasks_trace | +			rcu_request_urgent_qs_task +		)}; +		our $rcu_trace_paths = qr{(?x: +			kernel/bpf/ | +			include/linux/bpf | +			net/bpf/ | +			kernel/rcu/ | +			include/linux/rcu +		)}; +		if ($line =~ /\b($rcu_trace_funcs)\s*\(/) { +			if ($realfile !~ m{^$rcu_trace_paths}) { +				WARN("RCU_TASKS_TRACE", +				     "use of RCU tasks trace is incorrect outside BPF or core RCU code\n" . $herecurr); +			} +		} +  # check for lockdep_set_novalidate_class  		if ($line =~ /^.\s*lockdep_set_novalidate_class\s*\(/ ||  		    $line =~ /__lockdep_no_validate__\s*\)/ ) { | 
