diff options
Diffstat (limited to 'arch/frv/mm/dma-alloc.c')
-rw-r--r-- | arch/frv/mm/dma-alloc.c | 7 |
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 | */ |
84 | void *consistent_alloc(int gfp, size_t size, dma_addr_t *dma_handle) | 81 | void *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; |