android_kernel_motorola_sm6225/include
Tejun Heo f4d6d00466 libata: ignore EH scheduling during initialization
libata enables SCSI host during ATA host activation which happens
after IRQ handler is registered and IRQ is enabled.  All ATA ports are
in frozen state when IRQ is enabled but frozen ports may raise limited
number of IRQs after being frozen - IOW, ->freeze() is not responsible
for clearing pending IRQs.  During normal operation, the IRQ handler
is responsible for clearing spurious IRQs on frozen ports and it
usually doesn't require any extra code.

Unfortunately, during host initialization, the IRQ handler can end up
scheduling EH for a port whose SCSI host isn't initialized yet.  This
results in OOPS in the SCSI midlayer.  This is relatively short window
and scheduling EH for probing is the first thing libata does after
initialization, so ignoring EH scheduling until initialization is
complete solves the problem nicely.

This problem was spotted by Berck E. Nash in the following thread.

  http://thread.gmane.org/gmane.linux.kernel/519412

Signed-off-by: Tejun Heo <htejun@gmail.com>
Cc: Berck E. Nash <flyboy@gmail.com>
Signed-off-by: Jeff Garzik <jeff@garzik.org>
2007-05-11 18:09:18 -04:00
..
acpi ACPICA: Lindent 2007-05-09 23:34:35 -04:00
asm-alpha Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-arm Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-arm26 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-avr32 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-blackfin rename thread_info to stack 2007-05-09 12:30:56 -07:00
asm-cris Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-frv Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-generic Merge branch 'audit.b38' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/audit-current 2007-05-11 09:57:16 -07:00
asm-h8300 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-i386 signal/timer/event: eventfd wire up x86 arches 2007-05-11 08:29:37 -07:00
asm-ia64 Merge branch 'release' of git://git.kernel.org/pub/scm/linux/kernel/git/aegl/linux-2.6 2007-05-11 12:53:21 -07:00
asm-m32r Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-m68k Merge git://git.kernel.org/pub/scm/linux/kernel/git/bunk/trivial 2007-05-11 10:30:00 -07:00
asm-m68knommu Remove tas() 2007-05-08 11:15:20 -07:00
asm-mips Merge branch 'upstream' of git://ftp.linux-mips.org/pub/scm/upstream-ip22 2007-05-11 10:00:50 -07:00
asm-parisc Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-powerpc powerpc: fixup hard_irq_disable semantics 2007-05-11 08:29:34 -07:00
asm-ppc Merge branch 'linux-2.6' 2007-05-10 21:08:37 +10:00
asm-s390 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sh Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sh64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sparc Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-sparc64 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-um uml: iRQ stacks 2007-05-11 08:29:34 -07:00
asm-v850 Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
asm-x86_64 signal/timer/event: eventfd wire up x86 arches 2007-05-11 08:29:37 -07:00
asm-xtensa Consolidate asm/poll.h 2007-05-11 08:29:34 -07:00
crypto [CRYPTO] cryptd: Add software async crypto daemon 2007-05-02 14:38:32 +10:00
keys
linux libata: ignore EH scheduling during initialization 2007-05-11 18:09:18 -04:00
math-emu Delete unused header file math-emu/extended.h 2007-05-08 11:15:05 -07:00
media V4L/DVB (5592): DMA: Correctly free resources on error, sync PCI streamed data 2007-05-09 10:12:42 -03:00
mtd
net [NETFILTER]: nf_conntrack: Removes unused destroy operation of l3proto 2007-05-10 23:47:46 -07:00
pcmcia add new_id to PCMCIA drivers 2007-05-07 12:12:50 -07:00
rdma IB: Put rlimit accounting struct in struct ib_umem 2007-05-08 18:00:37 -07:00
rxrpc
scsi [SCSI] sas_scsi_host: Convert to use the kthread API 2007-05-06 09:33:17 -05:00
sound [ALSA] version 1.0.14rc4 2007-05-11 16:56:18 +02:00
video atmel_lcdfb: AT91/AT32 LCD Controller framebuffer driver 2007-05-11 08:29:37 -07:00
Kbuild