| .. | .. |
|---|
| 57 | 57 | |
|---|
| 58 | 58 | #define flush_dcache_mmap_lock(mapping) xa_lock_irq(&mapping->i_pages) |
|---|
| 59 | 59 | #define flush_dcache_mmap_unlock(mapping) xa_unlock_irq(&mapping->i_pages) |
|---|
| 60 | +#define flush_dcache_mmap_lock_irqsave(mapping, flags) \ |
|---|
| 61 | + xa_lock_irqsave(&mapping->i_pages, flags) |
|---|
| 62 | +#define flush_dcache_mmap_unlock_irqrestore(mapping, flags) \ |
|---|
| 63 | + xa_unlock_irqrestore(&mapping->i_pages, flags) |
|---|
| 64 | + |
|---|
| 60 | 65 | |
|---|
| 61 | 66 | #define flush_icache_page(vma,page) do { \ |
|---|
| 62 | 67 | flush_kernel_dcache_page(page); \ |
|---|
| .. | .. |
|---|
| 100 | 105 | } |
|---|
| 101 | 106 | } |
|---|
| 102 | 107 | |
|---|
| 103 | | -#include <asm/kmap_types.h> |
|---|
| 104 | | - |
|---|
| 105 | | -#define ARCH_HAS_KMAP |
|---|
| 106 | | - |
|---|
| 107 | | -static inline void *kmap(struct page *page) |
|---|
| 108 | | -{ |
|---|
| 109 | | - might_sleep(); |
|---|
| 110 | | - return page_address(page); |
|---|
| 111 | | -} |
|---|
| 112 | | - |
|---|
| 113 | | -static inline void kunmap(struct page *page) |
|---|
| 114 | | -{ |
|---|
| 115 | | - flush_kernel_dcache_page_addr(page_address(page)); |
|---|
| 116 | | -} |
|---|
| 117 | | - |
|---|
| 118 | | -static inline void *kmap_atomic(struct page *page) |
|---|
| 119 | | -{ |
|---|
| 120 | | - preempt_disable(); |
|---|
| 121 | | - pagefault_disable(); |
|---|
| 122 | | - return page_address(page); |
|---|
| 123 | | -} |
|---|
| 124 | | - |
|---|
| 125 | | -static inline void __kunmap_atomic(void *addr) |
|---|
| 108 | +#define ARCH_HAS_FLUSH_ON_KUNMAP |
|---|
| 109 | +static inline void kunmap_flush_on_unmap(void *addr) |
|---|
| 126 | 110 | { |
|---|
| 127 | 111 | flush_kernel_dcache_page_addr(addr); |
|---|
| 128 | | - pagefault_enable(); |
|---|
| 129 | | - preempt_enable(); |
|---|
| 130 | 112 | } |
|---|
| 131 | | - |
|---|
| 132 | | -#define kmap_atomic_prot(page, prot) kmap_atomic(page) |
|---|
| 133 | | -#define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn)) |
|---|
| 134 | 113 | |
|---|
| 135 | 114 | #endif /* _PARISC_CACHEFLUSH_H */ |
|---|
| 136 | 115 | |
|---|