diff options
Diffstat (limited to 'arch/arm/mm/dma-mapping.c')
-rw-r--r-- | arch/arm/mm/dma-mapping.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c index ac6a36142fcd..a9bdfcda23f4 100644 --- a/arch/arm/mm/dma-mapping.c +++ b/arch/arm/mm/dma-mapping.c | |||
@@ -148,6 +148,7 @@ static int __init consistent_init(void) | |||
148 | { | 148 | { |
149 | int ret = 0; | 149 | int ret = 0; |
150 | pgd_t *pgd; | 150 | pgd_t *pgd; |
151 | pud_t *pud; | ||
151 | pmd_t *pmd; | 152 | pmd_t *pmd; |
152 | pte_t *pte; | 153 | pte_t *pte; |
153 | int i = 0; | 154 | int i = 0; |
@@ -155,7 +156,15 @@ static int __init consistent_init(void) | |||
155 | 156 | ||
156 | do { | 157 | do { |
157 | pgd = pgd_offset(&init_mm, base); | 158 | pgd = pgd_offset(&init_mm, base); |
158 | pmd = pmd_alloc(&init_mm, pgd, base); | 159 | |
160 | pud = pud_alloc(&init_mm, pgd, base); | ||
161 | if (!pud) { | ||
162 | printk(KERN_ERR "%s: no pud tables\n", __func__); | ||
163 | ret = -ENOMEM; | ||
164 | break; | ||
165 | } | ||
166 | |||
167 | pmd = pmd_alloc(&init_mm, pud, base); | ||
159 | if (!pmd) { | 168 | if (!pmd) { |
160 | printk(KERN_ERR "%s: no pmd tables\n", __func__); | 169 | printk(KERN_ERR "%s: no pmd tables\n", __func__); |
161 | ret = -ENOMEM; | 170 | ret = -ENOMEM; |