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
eCryptfs: Report errors in writes to /dev/ecryptfs
[pandora-kernel.git]
/
kernel
/
rcutree.c
diff --git
a/kernel/rcutree.c
b/kernel/rcutree.c
index
e234eb9
..
1aa52af
100644
(file)
--- a/
kernel/rcutree.c
+++ b/
kernel/rcutree.c
@@
-38,7
+38,7
@@
#include <linux/nmi.h>
#include <linux/atomic.h>
#include <linux/bitops.h>
#include <linux/nmi.h>
#include <linux/atomic.h>
#include <linux/bitops.h>
-#include <linux/
module
.h>
+#include <linux/
export
.h>
#include <linux/completion.h>
#include <linux/moduleparam.h>
#include <linux/percpu.h>
#include <linux/completion.h>
#include <linux/moduleparam.h>
#include <linux/percpu.h>
@@
-202,13
+202,13
@@
DEFINE_PER_CPU(struct rcu_dynticks, rcu_dynticks) = {
};
#endif /* #ifdef CONFIG_NO_HZ */
};
#endif /* #ifdef CONFIG_NO_HZ */
-static
int blimit = 10;
/* Maximum callbacks per rcu_do_batch. */
-static
int qhimark = 10000;
/* If this many pending, ignore blimit. */
-static
int qlowmark = 100;
/* Once only this many pending, use blimit. */
+static
long blimit = 10;
/* Maximum callbacks per rcu_do_batch. */
+static
long qhimark = 10000;
/* If this many pending, ignore blimit. */
+static
long qlowmark = 100;
/* Once only this many pending, use blimit. */
-module_param(blimit,
int
, 0);
-module_param(qhimark,
int
, 0);
-module_param(qlowmark,
int
, 0);
+module_param(blimit,
long
, 0);
+module_param(qhimark,
long
, 0);
+module_param(qlowmark,
long
, 0);
int rcu_cpu_stall_suppress __read_mostly;
module_param(rcu_cpu_stall_suppress, int, 0644);
int rcu_cpu_stall_suppress __read_mostly;
module_param(rcu_cpu_stall_suppress, int, 0644);
@@
-292,7
+292,9
@@
cpu_has_callbacks_ready_to_invoke(struct rcu_data *rdp)
static int
cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp)
{
static int
cpu_needs_another_gp(struct rcu_state *rsp, struct rcu_data *rdp)
{
- return *rdp->nxttail[RCU_DONE_TAIL] && !rcu_gp_in_progress(rsp);
+ return *rdp->nxttail[RCU_DONE_TAIL +
+ ACCESS_ONCE(rsp->completed) != rdp->completed] &&
+ !rcu_gp_in_progress(rsp);
}
/*
}
/*
@@
-1258,7
+1260,7
@@
static void rcu_do_batch(struct rcu_state *rsp, struct rcu_data *rdp)
{
unsigned long flags;
struct rcu_head *next, *list, **tail;
{
unsigned long flags;
struct rcu_head *next, *list, **tail;
-
int
bl, count;
+
long
bl, count;
/* If no callbacks are ready, just return.*/
if (!cpu_has_callbacks_ready_to_invoke(rdp)) {
/* If no callbacks are ready, just return.*/
if (!cpu_has_callbacks_ready_to_invoke(rdp)) {