Blackfin: fix early L1 relocation crash
authorRobin Getz <robin.getz@analog.com>
Thu, 23 Apr 2009 20:49:43 +0000 (20:49 +0000)
committerMike Frysinger <vapier@gentoo.org>
Fri, 12 Jun 2009 10:11:27 +0000 (06:11 -0400)
commitfecbd7366bf5a39eaae2c03541f0b412f319534f
treeb8b034938d916cc3398708ff6a0749f871a64828
parentf5879fda09ea98d7aa845a0e0fa7e508452e5f9f
Blackfin: fix early L1 relocation crash

Our early L1 relocate code may implicitly call code which lives in L1
memory.  This is due to the dma_memcpy() rewrite that made the DMA code
lockless and safe to be used by multiple processes.  If we start the
early DMA memcpy to relocate things into L1 instruction but then our
DMA memcpy code calls a function that lives in L1, things fall apart.
As such, create a small dedicated DMA memcpy routine that we can assume
sanity at boot time.

Reported-by: Filip Van Rillaer <filip.vanrillaer@oneaccess-net.com>
Signed-off-by: Robin Getz <robin.getz@analog.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
arch/blackfin/include/asm/dma.h
arch/blackfin/kernel/bfin_dma_5xx.c
arch/blackfin/kernel/setup.c