diff options
author | Xishi Qiu <qiuxishi@huawei.com> | 2013-11-12 18:07:13 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-11-12 22:09:03 -0500 |
commit | c1ce4b375fa7b76d8b553d4f8d6cc5a09f063691 (patch) | |
tree | 50ed8b8cdfbbd6ae59c99f9650a24192be3aa34b /arch/microblaze | |
parent | 9e4be4708e9e88da46ae1f0bb1054c3619cc476e (diff) |
mm/arch: use __free_reserved_page() to simplify the code
Use __free_reserved_page() to simplify the code in arch.
It used split_page() in consistent_alloc()/__dma_alloc_coherent()/dma_alloc_coherent(),
so page->_count == 1, and we can free it safely.
__free_reserved_page()
ClearPageReserved()
init_page_count() // it won't change the value
__free_page()
Signed-off-by: Xishi Qiu <qiuxishi@huawei.com>
Cc: James Hogan <james.hogan@imgtec.com>
Cc: Michal Simek <monstr@monstr.eu>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Paul Mackerras <paulus@samba.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'arch/microblaze')
-rw-r--r-- | arch/microblaze/mm/consistent.c | 7 |
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/microblaze/mm/consistent.c b/arch/microblaze/mm/consistent.c index 5226b09cbbb2..dbbf2246a260 100644 --- a/arch/microblaze/mm/consistent.c +++ b/arch/microblaze/mm/consistent.c | |||
@@ -176,8 +176,7 @@ void consistent_free(size_t size, void *vaddr) | |||
176 | page = virt_to_page(vaddr); | 176 | page = virt_to_page(vaddr); |
177 | 177 | ||
178 | do { | 178 | do { |
179 | ClearPageReserved(page); | 179 | __free_reserved_page(page); |
180 | __free_page(page); | ||
181 | page++; | 180 | page++; |
182 | } while (size -= PAGE_SIZE); | 181 | } while (size -= PAGE_SIZE); |
183 | #else | 182 | #else |
@@ -194,9 +193,7 @@ void consistent_free(size_t size, void *vaddr) | |||
194 | pte_clear(&init_mm, (unsigned int)vaddr, ptep); | 193 | pte_clear(&init_mm, (unsigned int)vaddr, ptep); |
195 | if (pfn_valid(pfn)) { | 194 | if (pfn_valid(pfn)) { |
196 | page = pfn_to_page(pfn); | 195 | page = pfn_to_page(pfn); |
197 | 196 | __free_reserved_page(page); | |
198 | ClearPageReserved(page); | ||
199 | __free_page(page); | ||
200 | } | 197 | } |
201 | } | 198 | } |
202 | vaddr += PAGE_SIZE; | 199 | vaddr += PAGE_SIZE; |