diff options
Diffstat (limited to 'arch/arm/include/asm/highmem.h')
| -rw-r--r-- | arch/arm/include/asm/highmem.h | 15 | 
1 files changed, 14 insertions, 1 deletions
diff --git a/arch/arm/include/asm/highmem.h b/arch/arm/include/asm/highmem.h index 7f36d00600b..feb988a7ec3 100644 --- a/arch/arm/include/asm/highmem.h +++ b/arch/arm/include/asm/highmem.h @@ -11,7 +11,11 @@  #define kmap_prot		PAGE_KERNEL -#define flush_cache_kmaps()	flush_cache_all() +#define flush_cache_kmaps() \ +	do { \ +		if (cache_is_vivt()) \ +			flush_cache_all(); \ +	} while (0)  extern pte_t *pkmap_page_table; @@ -21,11 +25,20 @@ extern void *kmap_high(struct page *page);  extern void *kmap_high_get(struct page *page);  extern void kunmap_high(struct page *page); +extern void *kmap_high_l1_vipt(struct page *page, pte_t *saved_pte); +extern void kunmap_high_l1_vipt(struct page *page, pte_t saved_pte); + +/* + * The following functions are already defined by <linux/highmem.h> + * when CONFIG_HIGHMEM is not set. + */ +#ifdef CONFIG_HIGHMEM  extern void *kmap(struct page *page);  extern void kunmap(struct page *page);  extern void *kmap_atomic(struct page *page, enum km_type type);  extern void kunmap_atomic(void *kvaddr, enum km_type type);  extern void *kmap_atomic_pfn(unsigned long pfn, enum km_type type);  extern struct page *kmap_atomic_to_page(const void *ptr); +#endif  #endif  |