Revision 228f47b959a0cf2e24c9696757c7e6510334e499 authored by Tejun Heo on 23 September 2007, 03:37:05 UTC, committed by Jeff Garzik on 26 September 2007, 01:30:56 UTC
When PCIX_IRQ_WOC is used, sil24 has an inherent race condition
between clearing IRQ pending and reading IRQ status.  If IRQ pending
is cleared after reading IRQ status, there's possibility of lost IRQ.
If IRQ pending is cleared before reading IRQ status, spurious IRQs
will occur.

sata_sil24 till now cleared IRQ pending after reading IRQ status thus
losing IRQs on machines where PCIX_IRQ_WOC was used.  Reverse the
order and ignore spurious IRQs if PCIX_IRQ_WOC.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
1 parent 4942de4
History
File Mode Size
irq
power
time
.gitignore -rw-r--r-- 51 bytes
Kconfig.hz -rw-r--r-- 1.6 KB
Kconfig.preempt -rw-r--r-- 2.3 KB
Makefile -rw-r--r-- 2.9 KB
acct.c -rw-r--r-- 15.9 KB
audit.c -rw-r--r-- 36.1 KB
audit.h -rw-r--r-- 4.7 KB
auditfilter.c -rw-r--r-- 44.2 KB
auditsc.c -rw-r--r-- 52.0 KB
capability.c -rw-r--r-- 6.7 KB
compat.c -rw-r--r-- 27.7 KB
configs.c -rw-r--r-- 3.1 KB
cpu.c -rw-r--r-- 7.8 KB
cpuset.c -rw-r--r-- 79.1 KB
delayacct.c -rw-r--r-- 4.2 KB
die_notifier.c -rw-r--r-- 780 bytes
dma.c -rw-r--r-- 3.7 KB
exec_domain.c -rw-r--r-- 4.3 KB
exit.c -rw-r--r-- 43.8 KB
extable.c -rw-r--r-- 2.0 KB
fork.c -rw-r--r-- 41.0 KB
futex.c -rw-r--r-- 49.5 KB
futex_compat.c -rw-r--r-- 3.7 KB
hrtimer.c -rw-r--r-- 35.2 KB
itimer.c -rw-r--r-- 7.8 KB
kallsyms.c -rw-r--r-- 11.9 KB
kexec.c -rw-r--r-- 28.9 KB
kfifo.c -rw-r--r-- 5.1 KB
kmod.c -rw-r--r-- 14.2 KB
kprobes.c -rw-r--r-- 26.2 KB
ksysfs.c -rw-r--r-- 3.0 KB
kthread.c -rw-r--r-- 6.7 KB
latency.c -rw-r--r-- 8.4 KB
lockdep.c -rw-r--r-- 77.9 KB
lockdep_internals.h -rw-r--r-- 2.4 KB
lockdep_proc.c -rw-r--r-- 16.7 KB
module.c -rw-r--r-- 63.4 KB
mutex-debug.c -rw-r--r-- 3.1 KB
mutex-debug.h -rw-r--r-- 1.7 KB
mutex.c -rw-r--r-- 9.6 KB
mutex.h -rw-r--r-- 1.1 KB
nsproxy.c -rw-r--r-- 4.4 KB
panic.c -rw-r--r-- 6.7 KB
params.c -rw-r--r-- 17.6 KB
pid.c -rw-r--r-- 10.2 KB
posix-cpu-timers.c -rw-r--r-- 42.6 KB
posix-timers.c -rw-r--r-- 29.1 KB
printk.c -rw-r--r-- 29.5 KB
profile.c -rw-r--r-- 15.9 KB
ptrace.c -rw-r--r-- 11.5 KB
rcupdate.c -rw-r--r-- 17.5 KB
rcutorture.c -rw-r--r-- 26.7 KB
relay.c -rw-r--r-- 29.0 KB
resource.c -rw-r--r-- 15.4 KB
rtmutex-debug.c -rw-r--r-- 5.6 KB
rtmutex-debug.h -rw-r--r-- 1.4 KB
rtmutex-tester.c -rw-r--r-- 9.0 KB
rtmutex.c -rw-r--r-- 25.8 KB
rtmutex.h -rw-r--r-- 1.1 KB
rtmutex_common.h -rw-r--r-- 3.3 KB
rwsem.c -rw-r--r-- 2.6 KB
sched.c -rw-r--r-- 165.9 KB
sched_debug.c -rw-r--r-- 6.3 KB
sched_fair.c -rw-r--r-- 30.7 KB
sched_idletask.c -rw-r--r-- 1.6 KB
sched_rt.c -rw-r--r-- 5.3 KB
sched_stats.h -rw-r--r-- 7.1 KB
seccomp.c -rw-r--r-- 1.6 KB
signal.c -rw-r--r-- 64.5 KB
softirq.c -rw-r--r-- 14.6 KB
softlockup.c -rw-r--r-- 4.8 KB
spinlock.c -rw-r--r-- 11.1 KB
srcu.c -rw-r--r-- 8.5 KB
stacktrace.c -rw-r--r-- 462 bytes
stop_machine.c -rw-r--r-- 4.9 KB
sys.c -rw-r--r-- 58.0 KB
sys_ni.c -rw-r--r-- 4.1 KB
sysctl.c -rw-r--r-- 60.5 KB
taskstats.c -rw-r--r-- 12.1 KB
time.c -rw-r--r-- 16.8 KB
timer.c -rw-r--r-- 35.7 KB
tsacct.c -rw-r--r-- 3.8 KB
uid16.c -rw-r--r-- 5.1 KB
user.c -rw-r--r-- 5.9 KB
user_namespace.c -rw-r--r-- 1.8 KB
utsname.c -rw-r--r-- 1.5 KB
utsname_sysctl.c -rw-r--r-- 3.3 KB
wait.c -rw-r--r-- 7.3 KB
workqueue.c -rw-r--r-- 20.7 KB

back to top