aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/Kconfig
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-05-26 23:33:14 -0400
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>2009-05-26 23:33:14 -0400
commit84532a0fc3d5811dca8e3726fe4d372ea87bd7c6 (patch)
treef76d521d22d662dd1dccf22fd42ee57c71446e4f /arch/powerpc/Kconfig
parentcd86a536c81e9300d984327517548ca0652eebf9 (diff)
Revert "powerpc: Rework dma-noncoherent to use generic vmalloc layer"
This reverts commit 33f00dcedb0e22cdb156a23632814fc580fcfcf8. While it was a good idea to try to use the mm/vmalloc.c allocator instead of our own (in fact, ours is itself a dup on an old variant of the vmalloc one), unfortunately, the approach is terminally busted since dma_alloc_coherent() can be called at interrupt time or in atomic contexts and there's little chances we'll make the code in mm/vmalloc.c cope with\ that :-( Until we can get the generic code to forbid that idiocy and fix all drivers abusing it, we pretty much have no choice but revert to our custom virtual space allocator. There's also a problem with SMP safety since freeing such mapping would require an IPI which cannot be done at interrupt time. However, right now, I don't think we support any platform that is both SMP and has non-coherent DMA (don't laugh, I know such things do exist !) so we can sort that out later. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Diffstat (limited to 'arch/powerpc/Kconfig')
-rw-r--r--arch/powerpc/Kconfig25
1 files changed, 25 insertions, 0 deletions
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index a0d1146a0578..3bb43adce44d 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -868,6 +868,31 @@ config TASK_SIZE
868 default "0x80000000" if PPC_PREP || PPC_8xx 868 default "0x80000000" if PPC_PREP || PPC_8xx
869 default "0xc0000000" 869 default "0xc0000000"
870 870
871config CONSISTENT_START_BOOL
872 bool "Set custom consistent memory pool address"
873 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
874 help
875 This option allows you to set the base virtual address
876 of the consistent memory pool. This pool of virtual
877 memory is used to make consistent memory allocations.
878
879config CONSISTENT_START
880 hex "Base virtual address of consistent memory pool" if CONSISTENT_START_BOOL
881 default "0xfd000000" if (NOT_COHERENT_CACHE && 8xx)
882 default "0xff100000" if NOT_COHERENT_CACHE
883
884config CONSISTENT_SIZE_BOOL
885 bool "Set custom consistent memory pool size"
886 depends on ADVANCED_OPTIONS && NOT_COHERENT_CACHE
887 help
888 This option allows you to set the size of the
889 consistent memory pool. This pool of virtual memory
890 is used to make consistent memory allocations.
891
892config CONSISTENT_SIZE
893 hex "Size of consistent memory pool" if CONSISTENT_SIZE_BOOL
894 default "0x00200000" if NOT_COHERENT_CACHE
895
871config PIN_TLB 896config PIN_TLB
872 bool "Pinned Kernel TLBs (860 ONLY)" 897 bool "Pinned Kernel TLBs (860 ONLY)"
873 depends on ADVANCED_OPTIONS && 8xx 898 depends on ADVANCED_OPTIONS && 8xx