git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
[NETLINK]: Extend netlink messaging interface
[pandora-kernel.git]
/
kernel
/
rcupdate.c
diff --git
a/kernel/rcupdate.c
b/kernel/rcupdate.c
index
f464f5a
..
523e464
100644
(file)
--- a/
kernel/rcupdate.c
+++ b/
kernel/rcupdate.c
@@
-53,13
+53,13
@@
static struct rcu_ctrlblk rcu_ctrlblk = {
.cur = -300,
.completed = -300,
static struct rcu_ctrlblk rcu_ctrlblk = {
.cur = -300,
.completed = -300,
- .lock =
SPIN_LOCK_UNLOCKED
,
+ .lock =
__SPIN_LOCK_UNLOCKED(&rcu_ctrlblk.lock)
,
.cpumask = CPU_MASK_NONE,
};
static struct rcu_ctrlblk rcu_bh_ctrlblk = {
.cur = -300,
.completed = -300,
.cpumask = CPU_MASK_NONE,
};
static struct rcu_ctrlblk rcu_bh_ctrlblk = {
.cur = -300,
.completed = -300,
- .lock =
SPIN_LOCK_UNLOCKED
,
+ .lock =
__SPIN_LOCK_UNLOCKED(&rcu_bh_ctrlblk.lock)
,
.cpumask = CPU_MASK_NONE,
};
.cpumask = CPU_MASK_NONE,
};
@@
-241,12
+241,16
@@
static void rcu_do_batch(struct rcu_data *rdp)
next = rdp->donelist = list->next;
list->func(list);
list = next;
next = rdp->donelist = list->next;
list->func(list);
list = next;
- rdp->qlen--;
if (++count >= rdp->blimit)
break;
}
if (++count >= rdp->blimit)
break;
}
+
+ local_irq_disable();
+ rdp->qlen -= count;
+ local_irq_enable();
if (rdp->blimit == INT_MAX && rdp->qlen <= qlowmark)
rdp->blimit = blimit;
if (rdp->blimit == INT_MAX && rdp->qlen <= qlowmark)
rdp->blimit = blimit;
+
if (!rdp->donelist)
rdp->donetail = &rdp->donelist;
else
if (!rdp->donelist)
rdp->donetail = &rdp->donelist;
else
@@
-548,7
+552,7
@@
static void __devinit rcu_online_cpu(int cpu)
tasklet_init(&per_cpu(rcu_tasklet, cpu), rcu_process_callbacks, 0UL);
}
tasklet_init(&per_cpu(rcu_tasklet, cpu), rcu_process_callbacks, 0UL);
}
-static int __
dev
init rcu_cpu_notify(struct notifier_block *self,
+static int __
cpu
init rcu_cpu_notify(struct notifier_block *self,
unsigned long action, void *hcpu)
{
long cpu = (long)hcpu;
unsigned long action, void *hcpu)
{
long cpu = (long)hcpu;
@@
-565,7
+569,7
@@
static int __devinit rcu_cpu_notify(struct notifier_block *self,
return NOTIFY_OK;
}
return NOTIFY_OK;
}
-static struct notifier_block __
dev
initdata rcu_nb = {
+static struct notifier_block __
cpu
initdata rcu_nb = {
.notifier_call = rcu_cpu_notify,
};
.notifier_call = rcu_cpu_notify,
};