diff options
| -rw-r--r-- | arch/arm/mm/flush.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/arch/arm/mm/flush.c b/arch/arm/mm/flush.c index a480f161a4bb..43474d8752a6 100644 --- a/arch/arm/mm/flush.c +++ b/arch/arm/mm/flush.c | |||
| @@ -111,6 +111,8 @@ void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, | |||
| 111 | 111 | ||
| 112 | void __flush_dcache_page(struct address_space *mapping, struct page *page) | 112 | void __flush_dcache_page(struct address_space *mapping, struct page *page) |
| 113 | { | 113 | { |
| 114 | void *addr = page_address(page); | ||
| 115 | |||
| 114 | /* | 116 | /* |
| 115 | * Writeback any data associated with the kernel mapping of this | 117 | * Writeback any data associated with the kernel mapping of this |
| 116 | * page. This ensures that data in the physical page is mutually | 118 | * page. This ensures that data in the physical page is mutually |
| @@ -121,9 +123,9 @@ void __flush_dcache_page(struct address_space *mapping, struct page *page) | |||
| 121 | * kmap_atomic() doesn't set the page virtual address, and | 123 | * kmap_atomic() doesn't set the page virtual address, and |
| 122 | * kunmap_atomic() takes care of cache flushing already. | 124 | * kunmap_atomic() takes care of cache flushing already. |
| 123 | */ | 125 | */ |
| 124 | if (page_address(page)) | 126 | if (addr) |
| 125 | #endif | 127 | #endif |
| 126 | __cpuc_flush_dcache_page(page_address(page)); | 128 | __cpuc_flush_dcache_page(addr); |
| 127 | 129 | ||
| 128 | /* | 130 | /* |
| 129 | * If this is a page cache page, and we have an aliasing VIPT cache, | 131 | * If this is a page cache page, and we have an aliasing VIPT cache, |
