Merge commit 'fixes.2015.02.23a' into core/rcu
authorIngo Molnar <mingo@kernel.org>
Tue, 15 Mar 2016 08:00:12 +0000 (09:00 +0100)
committerIngo Molnar <mingo@kernel.org>
Tue, 15 Mar 2016 08:01:06 +0000 (09:01 +0100)
 Conflicts:
kernel/rcu/tree.c

Signed-off-by: Ingo Molnar <mingo@kernel.org>
1  2 
include/linux/compiler.h
kernel/rcu/tree.c
kernel/rcu/tree.h
kernel/rcu/tree_plugin.h

Simple merge
index 9fd5b628a88dc0cd1e0790d20ecf212940bd5407,39f9c73d33c5cb842c734994237742fe2d139ace..55cea189783f247befe7243fe9dae0bc38a61410
@@@ -2046,9 -2045,7 +2045,9 @@@ static void rcu_gp_cleanup(struct rcu_s
                        needgp = __note_gp_changes(rsp, rnp, rdp) || needgp;
                /* smp_mb() provided by prior unlock-lock pair. */
                nocb += rcu_future_gp_cleanup(rsp, rnp);
-               raw_spin_unlock_irq(&rnp->lock);
 +              sq = rcu_nocb_gp_get(rnp);
+               raw_spin_unlock_irq_rcu_node(rnp);
 +              rcu_nocb_gp_cleanup(sq);
                cond_resched_rcu_qs();
                WRITE_ONCE(rsp->gp_activity, jiffies);
                rcu_gp_slow(rsp, gp_cleanup_delay);
@@@ -2247,8 -2246,8 +2248,8 @@@ static void rcu_report_qs_rsp(struct rc
  {
        WARN_ON_ONCE(!rcu_gp_in_progress(rsp));
        WRITE_ONCE(rsp->gp_flags, READ_ONCE(rsp->gp_flags) | RCU_GP_FLAG_FQS);
-       raw_spin_unlock_irqrestore(&rcu_get_root(rsp)->lock, flags);
+       raw_spin_unlock_irqrestore_rcu_node(rcu_get_root(rsp), flags);
 -      rcu_gp_kthread_wake(rsp);
 +      swake_up(&rsp->gp_wq);  /* Memory barrier implied by swake_up() path. */
  }
  
  /*
@@@ -2901,8 -2896,8 +2898,8 @@@ static void force_quiescent_state(struc
                return;  /* Someone beat us to it. */
        }
        WRITE_ONCE(rsp->gp_flags, READ_ONCE(rsp->gp_flags) | RCU_GP_FLAG_FQS);
-       raw_spin_unlock_irqrestore(&rnp_old->lock, flags);
+       raw_spin_unlock_irqrestore_rcu_node(rnp_old, flags);
 -      rcu_gp_kthread_wake(rsp);
 +      swake_up(&rsp->gp_wq); /* Memory barrier implied by swake_up() path. */
  }
  
  /*
@@@ -3528,10 -3523,10 +3525,10 @@@ static void __rcu_report_exp_rnp(struc
                        break;
                }
                if (rnp->parent == NULL) {
-                       raw_spin_unlock_irqrestore(&rnp->lock, flags);
+                       raw_spin_unlock_irqrestore_rcu_node(rnp, flags);
                        if (wake) {
                                smp_mb(); /* EGP done before wake_up(). */
 -                              wake_up(&rsp->expedited_wq);
 +                              swake_up(&rsp->expedited_wq);
                        }
                        break;
                }
Simple merge
Simple merge