.. | .. |
---|
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 | |
---|