Linus Torvalds
3af968e066
async: Fix lack of boot-time console due to insufficient synchronization
...
Our async work synchronization was broken by "async: make sure
independent async domains can't accidentally entangle" (commit
d5a877e8dd ), because it would report
the wrong lowest active async ID when there was both running and
pending async work.
This caused things like no being able to read the root filesystem,
resulting in missing console devices and inability to run 'init',
causing a boot-time panic.
This fixes it by properly returning the lowest pending async ID: if
there is any running async work, that will have a lower ID than any
pending work, and we should _not_ look at the pending work list.
There were alternative patches from Jaswinder and James, but this one
also cleans up the code by removing the pointless 'ret' variable and
the unnecesary testing for an empty list around 'for_each_entry()' (if
the list is empty, the for_each_entry() thing just won't execute).
Fixes-bug: http://bugzilla.kernel.org/show_bug.cgi?id=13474
Reported-and-tested-by: Chris Clayton <chris2553@googlemail.com>
Cc: Jaswinder Singh Rajput <jaswinder@kernel.org>
Cc: James Bottomley <James.Bottomley@HansenPartnership.com>
Cc: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-06-08 12:31:53 -07:00
..
irq
Revert "genirq: assert that irq handlers are indeed running in hardirq context"
2009-05-01 15:16:04 +02:00
power
PM: Do not hold dpm_list_mtx while disabling/enabling nonboot CPUs
2009-05-24 21:15:07 +02:00
time
clockevents: prevent endless loop in tick_handle_periodic()
2009-05-02 10:22:27 +02:00
trace
tracing: Append prompt in /debug/tracing/README file
2009-05-15 19:43:22 +02:00
.gitignore
acct.c
async.c
async: Fix lack of boot-time console due to insufficient synchronization
2009-06-08 12:31:53 -07:00
audit.c
Audit: remove spaces from audit_log_d_path
2009-04-05 13:49:04 -04:00
audit.h
audit_tree.c
No need for crossing to mountpoint in audit_tag_tree()
2009-04-20 23:01:15 -04:00
auditfilter.c
inotify: use GFP_NOFS in kernel_event() to work around a lockdep false-positive
2009-05-06 16:36:09 -07:00
auditsc.c
Audit: remove spaces from audit_log_d_path
2009-04-05 13:49:04 -04:00
backtracetest.c
bounds.c
capability.c
cgroup.c
Convert obvious places to deactivate_locked_super()
2009-05-09 10:49:40 -04:00
cgroup_debug.c
debug cgroup: remove unneeded cgroup_lock
2009-04-02 19:04:54 -07:00
cgroup_freezer.c
compat.c
configs.c
cpu.c
cpumask: use set_cpu_active in init/main.c
2009-03-30 22:05:12 +10:30
cpuset.c
cpusets: prevent PF_THREAD_BOUND tasks from attaching to non-root cpusets
2009-04-02 19:04:57 -07:00
cred-internals.h
cred.c
delayacct.c
dma-coherent.c
dma.c
exec_domain.c
Get rid of indirect include of fs_struct.h
2009-03-31 23:00:27 -04:00
exit.c
Merge branch 'irq/threaded' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-07 14:07:52 -07:00
extable.c
Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-05 11:04:19 -07:00
fork.c
ptrace: tracehook_report_clone: fix false positives
2009-06-04 18:07:40 -07:00
freezer.c
futex.c
futex: setup writeable mapping for futex ops which modify user space data
2009-05-19 23:36:52 +02:00
futex_compat.c
hrtimer.c
hrtimer: fix rq->lock inversion (again)
2009-03-31 14:52:52 +02:00
hung_task.c
softlockup: ensure the task has been switched out once
2009-02-11 11:04:16 +01:00
itimer.c
timers: split process wide cpu clocks/timers
2009-02-05 13:04:33 +01:00
kallsyms.c
Ksplice: Add functions for walking kallsyms symbols
2009-03-31 13:05:32 +10:30
Kconfig.freezer
Kconfig.hz
Kconfig.preempt
kexec.c
PM: Do not hold dpm_list_mtx while disabling/enabling nonboot CPUs
2009-05-24 21:15:07 +02:00
kfifo.c
kgdb.c
sysrq, intel_fb: fix sysrq g collision
2009-05-15 07:56:24 -05:00
kmod.c
kmod: Release sub_info on cred allocation failure.
2009-05-26 12:11:19 -07:00
kprobes.c
kprobes: fix to use text_mutex around arm/disarm kprobe
2009-05-08 16:23:48 -07:00
ksysfs.c
kthread.c
kthread: move sched-realeted initialization from kthreadd context
2009-04-09 09:50:37 +09:30
latencytop.c
sched, latencytop: incorporate review feedback from Andrew Morton
2009-02-11 10:18:04 +01:00
lockdep.c
lockdep: more robust lockdep_map init sequence
2009-04-17 18:00:00 +02:00
lockdep_internals.h
lockdep: increase MAX_LOCKDEP_ENTRIES and MAX_LOCKDEP_CHAINS
2009-05-12 19:59:52 +02:00
lockdep_proc.c
lockstat: warn about disabled lock debugging
2009-02-14 23:28:28 +01:00
lockdep_states.h
lockdep: move state bit definitions around
2009-02-14 23:27:59 +01:00
Makefile
Merge branch 'linus' into core/softlockup
2009-04-07 11:15:40 +02:00
marker.c
module.c
async: Fix module loading async-work regression
2009-04-11 12:44:49 -07:00
mutex-debug.c
mutex-debug.h
mutex.c
mutex: have non-spinning mutexes on s390 by default
2009-04-09 19:28:24 +02:00
mutex.h
notifier.c
ns_cgroup.c
cgroups: relax ns_can_attach checks to allow attaching to grandchild cgroups
2009-04-02 19:04:53 -07:00
nsproxy.c
panic.c
Fix caller information for warn_slowpath_null
2009-05-16 13:41:28 -07:00
params.c
param: fix charp parameters set via sysfs
2009-03-31 13:05:30 +10:30
pid.c
pids: refactor vnr/nr_ns helpers to make them safe
2009-04-02 19:05:02 -07:00
pid_namespace.c
signals: zap_pid_ns_process() should use force_sig()
2009-04-02 19:04:58 -07:00
pm_qos_params.c
posix-cpu-timers.c
kernel/posix-cpu-timers.c: fix sparse warning
2009-04-30 08:08:31 +02:00
posix-timers.c
printk.c
Merge branch 'printk-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-05 10:23:25 -07:00
profile.c
profiling: fix broken profiling regression
2009-02-10 00:50:37 +01:00
ptrace.c
ptrace: revert "ptrace_detach: the wrong wakeup breaks the ERESTARTxxx logic"
2009-06-04 18:07:40 -07:00
rcuclassic.c
kmemtrace, rcu: fix linux/rcutree.h and linux/rcuclassic.h dependencies
2009-04-03 12:23:02 +02:00
rcupdate.c
RCU: Don't try and predeclare inline funcs as it upsets some versions of gcc
2009-04-15 13:55:14 -07:00
rcupreempt.c
kmemtrace, rcu: fix rcupreempt.c data structure dependencies
2009-04-03 12:23:04 +02:00
rcupreempt_trace.c
rcutorture.c
cpumask: convert rcutorture.c
2009-03-30 22:05:16 +10:30
rcutree.c
rcu: Make hierarchical RCU less IPI-happy
2009-04-14 11:31:50 +02:00
rcutree.h
kmemtrace, rcu: fix rcu_tree_trace.c data structure dependencies
2009-04-03 12:23:03 +02:00
rcutree_trace.c
rcu: Make hierarchical RCU less IPI-happy
2009-04-14 11:31:50 +02:00
relay.c
Merge branch 'tracing-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-05 11:04:19 -07:00
res_counter.c
resource.c
Remove 'recurse into child resources' logic from 'reserve_region_with_split()'
2009-04-18 21:44:24 -07:00
rtmutex-debug.c
rtmutex-debug.h
rtmutex-tester.c
rtmutex.c
rtmutex.h
rtmutex_common.h
rwsem.c
sched.c
sched: account system time properly
2009-04-29 15:02:28 +02:00
sched_clock.c
sched: Fix fallback sched_clock()'s offset when using jiffies
2009-05-09 10:08:19 +02:00
sched_cpupri.c
sched_rt: don't allocate cpumask in fastpath
2009-04-01 13:24:51 +02:00
sched_cpupri.h
cpumask: remove cpumask_t from core
2009-03-30 22:05:17 +10:30
sched_debug.c
sched: remove unused fields from struct rq
2009-03-24 23:16:51 +01:00
sched_fair.c
Merge branch 'sched/urgent'; commit 'v2.6.29-rc5' into sched/core
2009-02-15 21:15:16 +01:00
sched_features.h
Merge branch 'locking-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-03-30 17:17:35 -07:00
sched_idletask.c
sched_rt.c
Merge commit 'v2.6.30-rc1' into sched/urgent
2009-04-08 17:26:00 +02:00
sched_stats.h
sched: remove unused fields from struct rq
2009-03-24 23:16:51 +01:00
seccomp.c
x86-64: seccomp: fix 32/64 syscall hole
2009-03-02 15:41:30 -08:00
semaphore.c
signal.c
signals: SI_USER: Masquerade si_pid when crossing pid ns boundary
2009-04-02 19:04:58 -07:00
slow-work.c
Delete slow-work timers properly
2009-04-24 07:47:59 -07:00
smp.c
generic-ipi: eliminate WARN_ON()s during oops/panic
2009-03-13 10:47:34 +01:00
softirq.c
kernel/softirq.c: fix sparse warning
2009-04-17 01:57:54 +02:00
softlockup.c
spinlock.c
Allow rwlocks to re-enable interrupts
2009-04-02 19:05:11 -07:00
srcu.c
stacktrace.c
stop_machine.c
cpumask: remove cpumask_t from core
2009-03-30 22:05:17 +10:30
sys.c
kernel/sys.c: clean up sys_shutdown exit path
2009-04-13 15:04:32 -07:00
sys_ni.c
sysctl.c
Revert "mm: add /proc controls for pdflush threads"
2009-05-15 11:32:24 +02:00
sysctl_check.c
net: add ARP notify option for devices
2009-02-01 01:04:33 -08:00
taskstats.c
test_kprobes.c
time.c
timeconst.pl
timer.c
Merge branches 'core-fixes-for-linus', 'irq-fixes-for-linus' and 'timers-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
2009-04-09 10:35:30 -07:00
tracepoint.c
tracepoints: dont update zero-sized tracepoint sections
2009-03-18 19:55:00 +01:00
tsacct.c
Fix fixpoint divide exception in acct_update_integrals
2009-03-09 08:13:35 -07:00
uid16.c
up.c
user.c
Merge branch 'master' into next
2009-03-24 10:52:46 +11:00
user_namespace.c
Fix recursive lock in free_uid()/free_user_ns()
2009-02-27 16:26:21 -08:00
utsname.c
utsname_sysctl.c
proc_sysctl: use CONFIG_PROC_SYSCTL around ipc and utsname proc_handlers
2009-04-02 19:05:01 -07:00
wait.c
wait: prevent exclusive waiter starvation
2009-02-05 12:56:48 -08:00
workqueue.c
work_on_cpu(): rewrite it to create a kernel thread on demand
2009-04-09 09:50:37 +09:30