1
linux/arch/avr32/include/asm
Ilya Loginov 2d4dc890b5 block: add helpers to run flush_dcache_page() against a bio and a request's pages
Mtdblock driver doesn't call flush_dcache_page for pages in request.  So,
this causes problems on architectures where the icache doesn't fill from
the dcache or with dcache aliases.  The patch fixes this.

The ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE symbol was introduced to avoid
pointless empty cache-thrashing loops on architectures for which
flush_dcache_page() is a no-op.  Every architecture was provided with this
flush pages on architectires where ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE is
equal 1 or do nothing otherwise.

See "fix mtd_blkdevs problem with caches on some architectures" discussion
on LKML for more information.

Signed-off-by: Ilya Loginov <isloginov@gmail.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Peter Horton <phorton@bitbox.co.uk>
Cc: "Ed L. Cashin" <ecashin@coraid.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
2009-11-26 09:16:19 +01:00
..
mach avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
addrspace.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
asm.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
atomic.h asm-generic: rename atomic.h to atomic-long.h 2009-06-11 21:02:17 +02:00
auxvec.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
bitops.h avr32: define __fls 2009-01-01 10:12:16 +10:30
bitsperlong.h asm-generic: introduce asm/bitsperlong.h 2009-06-11 21:02:14 +02:00
bug.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
bugs.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
byteorder.h byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
cache.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
cachectl.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
cacheflush.h block: add helpers to run flush_dcache_page() against a bio and a request's pages 2009-11-26 09:16:19 +01:00
checksum.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
cputime.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
current.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
delay.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
device.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
div64.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
dma-mapping.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
dma.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
elf.h [PATCH] remove unused ibcs2/PER_SVR4 in SET_PERSONALITY 2008-10-16 15:40:05 +02:00
emergency-restart.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
errno.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
fb.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
fcntl.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
ftrace.h tracing: make CALLER_ADDRx overwriteable 2009-03-02 16:49:37 -05:00
futex.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
gpio.h avr32: Use <mach/foo.h> instead of <asm/arch/foo.h> 2008-08-05 14:36:57 +02:00
hardirq.h preempt-count: force hardirq-count to max of 10 2009-02-12 11:19:05 -05:00
hw_irq.h avr32: remove obsolete hw_interrupt_type 2009-05-13 16:53:48 +02:00
io.h avr32: Implement {read,write}[bwl]_be 2008-10-08 18:44:57 +02:00
ioctl.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
ioctls.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
ipcbuf.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
irq_regs.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
irq.h avr32: Use <mach/foo.h> instead of <asm/arch/foo.h> 2008-08-05 14:36:57 +02:00
irqflags.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
Kbuild byteorder: make swab.h include asm/swab.h like a regular header 2009-01-14 19:56:50 -08:00
kdebug.h avr32: Define DIE_OOPS 2009-01-07 10:40:30 +01:00
kmap_types.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
kprobes.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
linkage.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
local.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
mman.h mm: remove duplicate asm/mman.h files 2009-09-22 07:17:42 -07:00
mmu_context.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
mmu.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
module.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
msgbuf.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
mutex.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
numnodes.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
ocd.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
page.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
param.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
pci.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
percpu.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
pgalloc.h mm: Pass virtual address to [__]p{te,ud,md}_free_tlb() 2009-07-27 12:10:38 -07:00
pgtable-2level.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
pgtable.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
poll.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
posix_types.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
processor.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
ptrace.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
resource.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
scatterlist.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
sections.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
sembuf.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
serial.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
setup.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
shmbuf.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
shmparam.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
sigcontext.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
siginfo.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
signal.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
socket.h net: implement a SO_DOMAIN getsockoption 2009-08-05 13:02:57 -07:00
sockios.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
stat.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
statfs.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
string.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
swab.h headers_check fix: avr32, swab.h 2009-02-01 11:01:23 +05:30
syscalls.h avr32: Move syscalls.h under arch/avr32/include/asm/ 2009-01-07 11:28:15 +01:00
sysreg.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
system.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
termbits.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
termios.h asm-generic: rename termios.h, signal.h and mman.h 2009-06-11 21:01:52 +02:00
thread_info.h KEYS: Extend TIF_NOTIFY_RESUME to (almost) all architectures [try #6] 2009-09-02 21:29:19 +10:00
timex.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
tlb.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
tlbflush.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
topology.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
traps.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
types.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
uaccess.h avr32: fix out-of-range rjmp instruction on large kernels 2009-01-16 09:38:05 +01:00
ucontext.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
unaligned.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
unistd.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
user.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00
xor.h avr32: Move include/asm-avr32 to arch/avr32/include/asm 2008-08-05 13:35:07 +02:00