diff options
-rw-r--r-- | arch/arm/mm/dma-mapping.c | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index 707d81247630..6fac793329c6 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -209,10 +209,6 @@ __dma_alloc_remap(struct page *page, size_t size, gfp_t gfp, pgprot_t prot) | |||
209 | do { | 209 | do { |
210 | BUG_ON(!pte_none(*pte)); | 210 | BUG_ON(!pte_none(*pte)); |
211 | 211 | ||
212 | /* | ||
213 | * x86 does not mark the pages reserved... | ||
214 | */ | ||
215 | SetPageReserved(page); | ||
216 | set_pte_ext(pte, mk_pte(page, prot), 0); | 212 | set_pte_ext(pte, mk_pte(page, prot), 0); |
217 | page++; | 213 | page++; |
218 | pte++; | 214 | pte++; |
@@ -257,7 +253,6 @@ static void __dma_free_remap(void *cpu_addr, size_t size) | |||
257 | addr = c->vm_start; | 253 | addr = c->vm_start; |
258 | do { | 254 | do { |
259 | pte_t pte = ptep_get_and_clear(&init_mm, addr, ptep); | 255 | pte_t pte = ptep_get_and_clear(&init_mm, addr, ptep); |
260 | unsigned long pfn; | ||
261 | 256 | ||
262 | ptep++; | 257 | ptep++; |
263 | addr += PAGE_SIZE; | 258 | addr += PAGE_SIZE; |
@@ -267,21 +262,9 @@ static void __dma_free_remap(void *cpu_addr, size_t size) | |||
267 | ptep = consistent_pte[++idx]; | 262 | ptep = consistent_pte[++idx]; |
268 | } | 263 | } |
269 | 264 | ||
270 | if (!pte_none(pte) && pte_present(pte)) { | 265 | if (pte_none(pte) || !pte_present(pte)) |
271 | pfn = pte_pfn(pte); | 266 | printk(KERN_CRIT "%s: bad page in kernel page table\n", |
272 | 267 | __func__); | |
273 | if (pfn_valid(pfn)) { | ||
274 | struct page *page = pfn_to_page(pfn); | ||
275 | |||
276 | /* | ||
277 | * x86 does not mark the pages reserved... | ||
278 | */ | ||
279 | ClearPageReserved(page); | ||
280 | continue; | ||
281 | } | ||
282 | } | ||
283 | printk(KERN_CRIT "%s: bad page in kernel page table\n", | ||
284 | __func__); | ||
285 | } while (size -= PAGE_SIZE); | 268 | } while (size -= PAGE_SIZE); |
286 | 269 | ||
287 | flush_tlb_kernel_range(c->vm_start, c->vm_end); | 270 | flush_tlb_kernel_range(c->vm_start, c->vm_end); |