forked from luck/tmp_suning_uos_patched
srcu: Add might_sleep() annotation to synchronize_srcu()
Although synchronize_srcu() can sleep, it will not sleep if the fast path succeeds, which means that illegal use of synchronize_rcu() might go unnoticed. This commit therefore adds might_sleep(), which unconditionally catches illegal use of synchronize_rcu() from atomic context. Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
This commit is contained in:
parent
5a41344a3d
commit
6e6f1b307e
|
@ -421,6 +421,7 @@ static void __synchronize_srcu(struct srcu_struct *sp, int trycount)
|
||||||
!lock_is_held(&rcu_sched_lock_map),
|
!lock_is_held(&rcu_sched_lock_map),
|
||||||
"Illegal synchronize_srcu() in same-type SRCU (or RCU) read-side critical section");
|
"Illegal synchronize_srcu() in same-type SRCU (or RCU) read-side critical section");
|
||||||
|
|
||||||
|
might_sleep();
|
||||||
init_completion(&rcu.completion);
|
init_completion(&rcu.completion);
|
||||||
|
|
||||||
head->next = NULL;
|
head->next = NULL;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user