| .. | .. |
|---|
| 100 | 100 | } |
|---|
| 101 | 101 | } |
|---|
| 102 | 102 | |
|---|
| 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) |
|---|
| 103 | +#define ARCH_HAS_FLUSH_ON_KUNMAP |
|---|
| 104 | +static inline void kunmap_flush_on_unmap(void *addr) |
|---|
| 126 | 105 | { |
|---|
| 127 | 106 | flush_kernel_dcache_page_addr(addr); |
|---|
| 128 | | - pagefault_enable(); |
|---|
| 129 | | - preempt_enable(); |
|---|
| 130 | 107 | } |
|---|
| 131 | | - |
|---|
| 132 | | -#define kmap_atomic_prot(page, prot) kmap_atomic(page) |
|---|
| 133 | | -#define kmap_atomic_pfn(pfn) kmap_atomic(pfn_to_page(pfn)) |
|---|
| 134 | 108 | |
|---|
| 135 | 109 | #endif /* _PARISC_CACHEFLUSH_H */ |
|---|
| 136 | 110 | |
|---|