diff options
author | Jeff Garzik <jeff@garzik.org> | 2006-09-19 00:42:13 -0400 |
---|---|---|
committer | Jeff Garzik <jeff@garzik.org> | 2006-09-19 00:42:13 -0400 |
commit | 4a3381feb823e06c8e2da7e283c17b0b6fdbddcf (patch) | |
tree | e1bef4c3db854bb10fd13dc67415d77b5d999533 /kernel | |
parent | fea63e38013ec628ab3f7fddc4c2148064b7910a (diff) | |
parent | 47a5c6fa0e204a2b63309c648bb2fde36836c826 (diff) |
Merge branch 'master' into upstream
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/irq/resend.c | 3 | ||||
-rw-r--r-- | kernel/kmod.c | 5 | ||||
-rw-r--r-- | kernel/lockdep_internals.h | 2 | ||||
-rw-r--r-- | kernel/rcupdate.c | 6 |
4 files changed, 10 insertions, 6 deletions
diff --git a/kernel/irq/resend.c b/kernel/irq/resend.c index 872f91ba2ce8..35f10f7ff94a 100644 --- a/kernel/irq/resend.c +++ b/kernel/irq/resend.c | |||
@@ -63,8 +63,7 @@ void check_irq_resend(struct irq_desc *desc, unsigned int irq) | |||
63 | desc->chip->enable(irq); | 63 | desc->chip->enable(irq); |
64 | 64 | ||
65 | if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { | 65 | if ((status & (IRQ_PENDING | IRQ_REPLAY)) == IRQ_PENDING) { |
66 | desc->status &= ~IRQ_PENDING; | 66 | desc->status = (status & ~IRQ_PENDING) | IRQ_REPLAY; |
67 | desc->status = status | IRQ_REPLAY; | ||
68 | 67 | ||
69 | if (!desc->chip || !desc->chip->retrigger || | 68 | if (!desc->chip || !desc->chip->retrigger || |
70 | !desc->chip->retrigger(irq)) { | 69 | !desc->chip->retrigger(irq)) { |
diff --git a/kernel/kmod.c b/kernel/kmod.c index 1d32defa38ab..5c470c57fb57 100644 --- a/kernel/kmod.c +++ b/kernel/kmod.c | |||
@@ -197,11 +197,12 @@ static void __call_usermodehelper(void *data) | |||
197 | { | 197 | { |
198 | struct subprocess_info *sub_info = data; | 198 | struct subprocess_info *sub_info = data; |
199 | pid_t pid; | 199 | pid_t pid; |
200 | int wait = sub_info->wait; | ||
200 | 201 | ||
201 | /* CLONE_VFORK: wait until the usermode helper has execve'd | 202 | /* CLONE_VFORK: wait until the usermode helper has execve'd |
202 | * successfully We need the data structures to stay around | 203 | * successfully We need the data structures to stay around |
203 | * until that is done. */ | 204 | * until that is done. */ |
204 | if (sub_info->wait) | 205 | if (wait) |
205 | pid = kernel_thread(wait_for_helper, sub_info, | 206 | pid = kernel_thread(wait_for_helper, sub_info, |
206 | CLONE_FS | CLONE_FILES | SIGCHLD); | 207 | CLONE_FS | CLONE_FILES | SIGCHLD); |
207 | else | 208 | else |
@@ -211,7 +212,7 @@ static void __call_usermodehelper(void *data) | |||
211 | if (pid < 0) { | 212 | if (pid < 0) { |
212 | sub_info->retval = pid; | 213 | sub_info->retval = pid; |
213 | complete(sub_info->complete); | 214 | complete(sub_info->complete); |
214 | } else if (!sub_info->wait) | 215 | } else if (!wait) |
215 | complete(sub_info->complete); | 216 | complete(sub_info->complete); |
216 | } | 217 | } |
217 | 218 | ||
diff --git a/kernel/lockdep_internals.h b/kernel/lockdep_internals.h index 0d355f24fe04..eab043c83bb2 100644 --- a/kernel/lockdep_internals.h +++ b/kernel/lockdep_internals.h | |||
@@ -27,7 +27,7 @@ | |||
27 | * Stack-trace: tightly packed array of stack backtrace | 27 | * Stack-trace: tightly packed array of stack backtrace |
28 | * addresses. Protected by the hash_lock. | 28 | * addresses. Protected by the hash_lock. |
29 | */ | 29 | */ |
30 | #define MAX_STACK_TRACE_ENTRIES 131072UL | 30 | #define MAX_STACK_TRACE_ENTRIES 262144UL |
31 | 31 | ||
32 | extern struct list_head all_lock_classes; | 32 | extern struct list_head all_lock_classes; |
33 | 33 | ||
diff --git a/kernel/rcupdate.c b/kernel/rcupdate.c index 436ab35f6fa7..523e46483b99 100644 --- a/kernel/rcupdate.c +++ b/kernel/rcupdate.c | |||
@@ -241,12 +241,16 @@ static void rcu_do_batch(struct rcu_data *rdp) | |||
241 | next = rdp->donelist = list->next; | 241 | next = rdp->donelist = list->next; |
242 | list->func(list); | 242 | list->func(list); |
243 | list = next; | 243 | list = next; |
244 | rdp->qlen--; | ||
245 | if (++count >= rdp->blimit) | 244 | if (++count >= rdp->blimit) |
246 | break; | 245 | break; |
247 | } | 246 | } |
247 | |||
248 | local_irq_disable(); | ||
249 | rdp->qlen -= count; | ||
250 | local_irq_enable(); | ||
248 | if (rdp->blimit == INT_MAX && rdp->qlen <= qlowmark) | 251 | if (rdp->blimit == INT_MAX && rdp->qlen <= qlowmark) |
249 | rdp->blimit = blimit; | 252 | rdp->blimit = blimit; |
253 | |||
250 | if (!rdp->donelist) | 254 | if (!rdp->donelist) |
251 | rdp->donetail = &rdp->donelist; | 255 | rdp->donetail = &rdp->donelist; |
252 | else | 256 | else |