aboutsummaryrefslogtreecommitdiffstats
path: root/arch/frv/mm/dma-alloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/frv/mm/dma-alloc.c')
-rw-r--r--arch/frv/mm/dma-alloc.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/arch/frv/mm/dma-alloc.c b/arch/frv/mm/dma-alloc.c
index 4b38d45435f6..342823aad758 100644
--- a/arch/frv/mm/dma-alloc.c
+++ b/arch/frv/mm/dma-alloc.c
@@ -55,21 +55,18 @@ static int map_page(unsigned long va, unsigned long pa, pgprot_t prot)
55 pte_t *pte; 55 pte_t *pte;
56 int err = -ENOMEM; 56 int err = -ENOMEM;
57 57
58 spin_lock(&init_mm.page_table_lock);
59
60 /* Use upper 10 bits of VA to index the first level map */ 58 /* Use upper 10 bits of VA to index the first level map */
61 pge = pgd_offset_k(va); 59 pge = pgd_offset_k(va);
62 pue = pud_offset(pge, va); 60 pue = pud_offset(pge, va);
63 pme = pmd_offset(pue, va); 61 pme = pmd_offset(pue, va);
64 62
65 /* Use middle 10 bits of VA to index the second-level map */ 63 /* Use middle 10 bits of VA to index the second-level map */
66 pte = pte_alloc_kernel(&init_mm, pme, va); 64 pte = pte_alloc_kernel(pme, va);
67 if (pte != 0) { 65 if (pte != 0) {
68 err = 0; 66 err = 0;
69 set_pte(pte, mk_pte_phys(pa & PAGE_MASK, prot)); 67 set_pte(pte, mk_pte_phys(pa & PAGE_MASK, prot));
70 } 68 }
71 69
72 spin_unlock(&init_mm.page_table_lock);
73 return err; 70 return err;
74} 71}
75 72
@@ -81,7 +78,7 @@ static int map_page(unsigned long va, unsigned long pa, pgprot_t prot)
81 * portions of the kernel with single large page TLB entries, and 78 * portions of the kernel with single large page TLB entries, and
82 * still get unique uncached pages for consistent DMA. 79 * still get unique uncached pages for consistent DMA.
83 */ 80 */
84void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle) 81void *consistent_alloc(gfp_t gfp, size_t size, dma_addr_t *dma_handle)
85{ 82{
86 struct vm_struct *area; 83 struct vm_struct *area;
87 unsigned long page, va, pa; 84 unsigned long page, va, pa;