diff options
author | Paul Mundt <lethal@linux-sh.org> | 2007-07-24 00:28:26 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2007-07-24 00:28:26 -0400 |
commit | 8cf1a74305688c85fc8d23ab7432a0c447ee6413 (patch) | |
tree | d43af5f2515db35ef6a705e5929780f91d34e898 /arch/sh/mm/cache-sh4.c | |
parent | f695baf2df9e0413d3521661070103711545207a (diff) |
sh: Add kmap_coherent()/kunmap_coherent() interface for SH-4.
This wires up kmap_coherent() and kunmap_coherent() on SH-4, and
moves away from the p3map_mutex and reserved P3 space, opting to
use fixmaps for colouring instead.
The copy_user_page()/clear_user_page() implementations are moved
to this, which fixes the nasty blowups with spinlock debugging
as a result of having some of these calls nested under the page
table lock.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/mm/cache-sh4.c')
-rw-r--r-- | arch/sh/mm/cache-sh4.c | 11 |
1 files changed, 0 insertions, 11 deletions
diff --git a/arch/sh/mm/cache-sh4.c b/arch/sh/mm/cache-sh4.c index 981b04089055..5d0f73a4fbbb 100644 --- a/arch/sh/mm/cache-sh4.c +++ b/arch/sh/mm/cache-sh4.c | |||
@@ -77,16 +77,8 @@ static void __init emit_cache_params(void) | |||
77 | /* | 77 | /* |
78 | * SH-4 has virtually indexed and physically tagged cache. | 78 | * SH-4 has virtually indexed and physically tagged cache. |
79 | */ | 79 | */ |
80 | |||
81 | /* Worst case assumed to be 64k cache, direct-mapped i.e. 4 synonym bits. */ | ||
82 | #define MAX_P3_MUTEXES 16 | ||
83 | |||
84 | struct mutex p3map_mutex[MAX_P3_MUTEXES]; | ||
85 | |||
86 | void __init p3_cache_init(void) | 80 | void __init p3_cache_init(void) |
87 | { | 81 | { |
88 | int i; | ||
89 | |||
90 | compute_alias(¤t_cpu_data.icache); | 82 | compute_alias(¤t_cpu_data.icache); |
91 | compute_alias(¤t_cpu_data.dcache); | 83 | compute_alias(¤t_cpu_data.dcache); |
92 | 84 | ||
@@ -109,9 +101,6 @@ void __init p3_cache_init(void) | |||
109 | 101 | ||
110 | if (ioremap_page_range(P3SEG, P3SEG + (PAGE_SIZE * 4), 0, PAGE_KERNEL)) | 102 | if (ioremap_page_range(P3SEG, P3SEG + (PAGE_SIZE * 4), 0, PAGE_KERNEL)) |
111 | panic("%s failed.", __FUNCTION__); | 103 | panic("%s failed.", __FUNCTION__); |
112 | |||
113 | for (i = 0; i < current_cpu_data.dcache.n_aliases; i++) | ||
114 | mutex_init(&p3map_mutex[i]); | ||
115 | } | 104 | } |
116 | 105 | ||
117 | /* | 106 | /* |