| Age | Commit message (Collapse) | Author |
|
Jeff Dike noticed that wait_for_completion_interruptible()'s prototype
had a mismatched fastcall.
Fix this by removing the fastcall attributes from all the completion APIs.
Found-by: Jeff Dike <jdike@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
|
|
Clean up lockdep on-stack-completion initializer. (This also removes the
dependency on waitqueue_lock_key.)
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
lockdep needs to have the waitqueue lock initialized for on-stack waitqueues
implicitly initialized by DECLARE_COMPLETION(). Introduce the API.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
Adds 3 new completion API calls, which are a straightforward extension of
the current APIs:
int wait_for_completion_interruptible(struct completion *x);
unsigned long wait_for_completion_timeout(struct completion *x,
unsigned long timeout);
unsigned long wait_for_completion_interruptible_timeout(
struct completion *x, unsigned long timeout);
This enables the conversion of more semaphore-using code to completions.
There is code that cannot be converted right now (and is forced to use
semaphores) because these primitives are missing. Thomas Gleixner has a
bunch of patches to make use of them.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Tested-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
|
|
This fixes threaded coredumps and streamlines the code. The old code
caused crashes and hung coredumps. The new code has been tested for
some time already and appears to be robust. Changes:
- the code now uses completions instead of a semaphore and a waitqueue,
attached to mm_struct:
/* coredumping support */
int core_waiters;
struct completion *core_startup_done, core_done;
- extended the completion concept with a 'complete all' call - all pending
threads are woken up in that case.
- core_waiters is a plain integer now - it's always accessed from under
the mmap_sem. It's also used as the fastpath-check in the sys_exit()
path, instead of ->dumpable (which was incorrect).
- got rid of the ->core_waiter task flag - it's not needed anymore.
|
|
- Andreas Dilger: various ext2 cleanups
- Richard Gooch: devfs update
- Johannes Erdfelt: USB updates
- Alan Cox: merges
- David Miller: fix SMP pktsched bootup deadlock (CONFIG_NET_SCHED)
- Roman Zippel: AFFS update
- Anton Altaparmakov: NTFS update
- me: fix races in vfork() (semaphores are not good completion handlers)
- Jeff Garzik: net driver updates, sysvfs update
|