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>
This commit is contained in:
@@ -77,16 +77,8 @@ static void __init emit_cache_params(void)
|
||||
/*
|
||||
* SH-4 has virtually indexed and physically tagged cache.
|
||||
*/
|
||||
|
||||
/* Worst case assumed to be 64k cache, direct-mapped i.e. 4 synonym bits. */
|
||||
#define MAX_P3_MUTEXES 16
|
||||
|
||||
struct mutex p3map_mutex[MAX_P3_MUTEXES];
|
||||
|
||||
void __init p3_cache_init(void)
|
||||
{
|
||||
int i;
|
||||
|
||||
compute_alias(¤t_cpu_data.icache);
|
||||
compute_alias(¤t_cpu_data.dcache);
|
||||
|
||||
@@ -109,9 +101,6 @@ void __init p3_cache_init(void)
|
||||
|
||||
if (ioremap_page_range(P3SEG, P3SEG + (PAGE_SIZE * 4), 0, PAGE_KERNEL))
|
||||
panic("%s failed.", __FUNCTION__);
|
||||
|
||||
for (i = 0; i < current_cpu_data.dcache.n_aliases; i++)
|
||||
mutex_init(&p3map_mutex[i]);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user