|
@@ -327,6 +327,7 @@ void rcu_read_unlock_special(struct task_struct *t)
|
|
special = t->rcu_read_unlock_special;
|
|
special = t->rcu_read_unlock_special;
|
|
if (special.b.need_qs) {
|
|
if (special.b.need_qs) {
|
|
rcu_preempt_qs();
|
|
rcu_preempt_qs();
|
|
|
|
+ t->rcu_read_unlock_special.b.need_qs = false;
|
|
if (!t->rcu_read_unlock_special.s) {
|
|
if (!t->rcu_read_unlock_special.s) {
|
|
local_irq_restore(flags);
|
|
local_irq_restore(flags);
|
|
return;
|
|
return;
|