]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - kernel/rcupreempt.c
[ARM] 4907/1: [AT91] SAM9/CAP9 reset reason
[linux-2.6-omap-h63xx.git] / kernel / rcupreempt.c
index 845abcd472b09782f43e3785c7b8350e2e29e011..e9517014b57c100af5926165d2131992f0589401 100644 (file)
@@ -952,9 +952,11 @@ static void rcu_process_callbacks(struct softirq_action *unused)
 {
        unsigned long flags;
        struct rcu_head *next, *list;
-       struct rcu_data *rdp = RCU_DATA_ME();
+       struct rcu_data *rdp;
 
-       spin_lock_irqsave(&rdp->lock, flags);
+       local_irq_save(flags);
+       rdp = RCU_DATA_ME();
+       spin_lock(&rdp->lock);
        list = rdp->donelist;
        if (list == NULL) {
                spin_unlock_irqrestore(&rdp->lock, flags);