Linus Torvalds
68380b5813
Add "run_scheduled_work()" workqueue function
...
This allows workqueue users to run just their own pending work, rather
than wait for the whole workqueue to finish running. This solves the
deadlock with networking libphy that was due to other workqueue entries
possibly needing a lock that was held by the routine that wanted to
flush its own work.
It's not wonderful: if you absolutely need to synchronize with the work
function having been executed, any user strictly speaking should have
its own completion tracking logic, since when we run things explicitly
by hand, the generic workqueue layer can no longer help us synchronize.
Also, this is strictly only usable for work that has been scheduled
without any delayed timers. You can not mix the new interface with
schedule_delayed_work().
But it's better than what we had currently.
Acked-by: Maciej W. Rozycki <macro@linux-mips.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-12-07 09:28:19 -08:00
..
irq
[PATCH] lockdep: name some old style locks
2006-12-07 08:39:36 -08:00
power
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
time
[PATCH] time_adjust cleared before use
2006-10-28 11:30:55 -07:00
.gitignore
acct.c
[PATCH] lockdep: name some old style locks
2006-12-07 08:39:36 -08:00
audit.c
[PATCH] Add include/linux/freezer.h and move definitions from sched.h
2006-12-07 08:39:27 -08:00
audit.h
auditfilter.c
[PATCH] kernel core: replace kmalloc+memset with kzalloc
2006-12-07 08:39:41 -08:00
auditsc.c
audit: Add auditing to ipsec
2006-12-06 20:14:22 -08:00
capability.c
compat.c
[PATCH] Create compat_sys_migrate_pages
2006-11-03 12:27:59 -08:00
configs.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
cpu.c
[PATCH] suspend: don't change cpus_allowed for task initiating the suspend
2006-12-07 08:39:28 -08:00
cpuset.c
[PATCH] cpuset: allow a larger buffer for writes to cpuset files
2006-12-07 08:39:48 -08:00
delayacct.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
dma.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
exec_domain.c
exit.c
[PATCH] taskstats: cleanup do_exit() path
2006-12-07 08:39:34 -08:00
extable.c
fork.c
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
2006-12-07 08:59:11 -08:00
futex.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
futex_compat.c
[PATCH] __user annotations: futex
2006-10-10 15:37:22 -07:00
hrtimer.c
itimer.c
kallsyms.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
Kconfig.hz
[PATCH] HZ: 300Hz support
2006-12-07 08:39:36 -08:00
Kconfig.preempt
kexec.c
[PATCH] Kexec / Kdump: Unify elf note code
2006-12-07 08:39:46 -08:00
kfifo.c
kmod.c
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
2006-12-05 14:37:56 +00:00
kprobes.c
[PATCH] kprobes: enable booster on the preemptible kernel
2006-12-07 08:39:38 -08:00
ksysfs.c
kthread.c
WorkStruct: Pass the work_struct pointer instead of context data
2006-11-22 14:55:48 +00:00
latency.c
[PATCH] severing module.h->sched.h
2006-12-04 02:00:22 -05:00
lockdep.c
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
2006-12-07 08:59:11 -08:00
lockdep_internals.h
[PATCH] lockdep: more chains
2006-12-07 08:39:43 -08:00
lockdep_proc.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
Makefile
[PATCH] srcu-3: RCU variant permitting read-side blocking
2006-10-04 07:55:30 -07:00
module.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
mutex-debug.c
[PATCH] lockdep: show more details about self-test failures
2006-12-07 08:39:43 -08:00
mutex-debug.h
mutex.c
mutex.h
nsproxy.c
[PATCH] kernel/nsproxy.c: use kmemdup()
2006-10-20 10:26:44 -07:00
panic.c
params.c
pid.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
posix-cpu-timers.c
[PATCH] posix-cpu-timers: prevent signal delivery starvation
2006-10-17 08:18:43 -07:00
posix-timers.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
printk.c
[PATCH] add ignore_loglevel boot option
2006-12-07 08:39:47 -08:00
profile.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
ptrace.c
rcupdate.c
[PATCH] rcu: add a prefetch() in rcu_do_batch()
2006-12-07 08:39:40 -08:00
rcutorture.c
[PATCH] Add Sparse annotations to SRCU wrapper functions in rcutorture
2006-12-07 08:39:44 -08:00
relay.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
resource.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
[PATCH] Add include/linux/freezer.h and move definitions from sched.h
2006-12-07 08:39:27 -08:00
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
[PATCH] struct seq_operations and struct file_operations constification
2006-12-07 08:39:46 -08:00
seccomp.c
signal.c
[PATCH] make kernel/signal.c:kill_proc_info() static
2006-12-07 08:39:39 -08:00
softirq.c
[PATCH] softirq: remove BUG_ONs which can incorrectly trigger
2006-12-07 08:39:43 -08:00
softlockup.c
spinlock.c
[PATCH] lockdep: spin_lock_irqsave_nested()
2006-11-25 13:28:34 -08:00
srcu.c
[PATCH] SRCU: report out-of-memory errors
2006-10-04 07:55:30 -07:00
stacktrace.c
stop_machine.c
sys.c
[PATCH] sys: remove unused variable
2006-12-07 08:39:44 -08:00
sys_ni.c
[PATCH] Create compat_sys_migrate_pages
2006-11-03 12:27:59 -08:00
sysctl.c
Merge branch 'for-linus' of git://one.firstfloor.org/home/andi/git/linux-2.6
2006-12-07 08:59:11 -08:00
taskstats.c
[PATCH] taskstats: cleanup reply assembling
2006-12-07 08:39:34 -08:00
time.c
timer.c
tsacct.c
[PATCH] xacct_add_tsk: fix pure theoretical ->mm use-after-free
2006-10-30 12:08:41 -08:00
uid16.c
unwind.c
[PATCH] unwinder: move .eh_frame to RODATA
2006-12-07 02:14:19 +01:00
user.c
[PATCH] slab: remove kmem_cache_t
2006-12-07 08:39:25 -08:00
utsname.c
wait.c
workqueue.c
Add "run_scheduled_work()" workqueue function
2006-12-07 09:28:19 -08:00