linux/arch/x86
David Brownell aa24886e37 dma_free_coherent() needs irqs enabled (sigh)
On at least ARM (and I'm told MIPS too) dma_free_coherent() has a newish
call context requirement: unlike its dma_alloc_coherent() sibling, it may
not be called with IRQs disabled.  (This was new behavior on ARM as of late
2005, caused by ARM SMP updates.) This little surprise can be annoyingly
driver-visible.

Since it looks like that restriction won't be removed, this patch changes
the definition of the API to include that requirement.  Also, to help catch
nonportable drivers, it updates the x86 and swiotlb versions to include the
relevant warnings.  (I already observed that it trips on the
bus_reset_tasklet of the new firewire_ohci driver.)

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Cc: David Miller <davem@davemloft.net>
Acked-by: Russell King <rmk@arm.linux.org.uk>
Cc: Andi Kleen <ak@suse.de>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2007-10-12 15:03:15 -07:00
..
boot x86_64: move kernel 2007-10-11 11:17:24 +02:00
crypto x86_64: move crypto 2007-10-11 11:17:03 +02:00
ia32 i386/x86_64: move headers to include/asm-x86 2007-10-11 11:20:03 +02:00
kernel dma_free_coherent() needs irqs enabled (sigh) 2007-10-12 15:03:15 -07:00
lib x86_64: move lib 2007-10-11 11:17:08 +02:00
mach-default i386: move mach-default 2007-10-11 11:16:48 +02:00
mach-es7000 i386: move mach-es7000 2007-10-11 11:16:50 +02:00
mach-generic Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
mach-visws i386: move mach-visws 2007-10-11 11:16:38 +02:00
mach-voyager i386: move kernel 2007-10-11 11:17:01 +02:00
math-emu i386: move math-emu 2007-10-11 11:16:31 +02:00
mm x86_64: move mm 2007-10-11 11:17:18 +02:00
oprofile i386: move oprofile 2007-10-11 11:16:55 +02:00
pci Merge branch 'dmi-const' of git://git.kernel.org/pub/scm/linux/kernel/git/jgarzik/misc-2.6 2007-10-11 19:18:45 -07:00
power i386: move power 2007-10-11 11:16:34 +02:00
vdso x86_64: move vdso 2007-10-11 11:17:10 +02:00
video i386: move video 2007-10-11 11:16:56 +02:00
xen i386: move xen 2007-10-11 11:16:51 +02:00