diff options
Diffstat (limited to 'arch/m32r')
| -rw-r--r-- | arch/m32r/mm/init.c | 9 | ||||
| -rw-r--r-- | arch/m32r/mm/ioremap.c | 4 |
2 files changed, 9 insertions, 4 deletions
diff --git a/arch/m32r/mm/init.c b/arch/m32r/mm/init.c index d9a40b1fe8ba..6facf15b04f3 100644 --- a/arch/m32r/mm/init.c +++ b/arch/m32r/mm/init.c | |||
| @@ -48,6 +48,8 @@ void show_mem(void) | |||
| 48 | show_free_areas(); | 48 | show_free_areas(); |
| 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); | 49 | printk("Free swap: %6ldkB\n",nr_swap_pages<<(PAGE_SHIFT-10)); |
| 50 | for_each_pgdat(pgdat) { | 50 | for_each_pgdat(pgdat) { |
| 51 | unsigned long flags; | ||
| 52 | pgdat_resize_lock(pgdat, &flags); | ||
| 51 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { | 53 | for (i = 0; i < pgdat->node_spanned_pages; ++i) { |
| 52 | page = pgdat_page_nr(pgdat, i); | 54 | page = pgdat_page_nr(pgdat, i); |
| 53 | total++; | 55 | total++; |
| @@ -60,6 +62,7 @@ void show_mem(void) | |||
| 60 | else if (page_count(page)) | 62 | else if (page_count(page)) |
| 61 | shared += page_count(page) - 1; | 63 | shared += page_count(page) - 1; |
| 62 | } | 64 | } |
| 65 | pgdat_resize_unlock(pgdat, &flags); | ||
| 63 | } | 66 | } |
| 64 | printk("%d pages of RAM\n", total); | 67 | printk("%d pages of RAM\n", total); |
| 65 | printk("%d pages of HIGHMEM\n",highmem); | 68 | printk("%d pages of HIGHMEM\n",highmem); |
| @@ -150,10 +153,14 @@ int __init reservedpages_count(void) | |||
| 150 | int reservedpages, nid, i; | 153 | int reservedpages, nid, i; |
| 151 | 154 | ||
| 152 | reservedpages = 0; | 155 | reservedpages = 0; |
| 153 | for_each_online_node(nid) | 156 | for_each_online_node(nid) { |
| 157 | unsigned long flags; | ||
| 158 | pgdat_resize_lock(NODE_DATA(nid), &flags); | ||
| 154 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) | 159 | for (i = 0 ; i < MAX_LOW_PFN(nid) - START_PFN(nid) ; i++) |
| 155 | if (PageReserved(nid_page_nr(nid, i))) | 160 | if (PageReserved(nid_page_nr(nid, i))) |
| 156 | reservedpages++; | 161 | reservedpages++; |
| 162 | pgdat_resize_unlock(NODE_DATA(nid), &flags); | ||
| 163 | } | ||
| 157 | 164 | ||
| 158 | return reservedpages; | 165 | return reservedpages; |
| 159 | } | 166 | } |
diff --git a/arch/m32r/mm/ioremap.c b/arch/m32r/mm/ioremap.c index 70c59055c19c..a151849a605e 100644 --- a/arch/m32r/mm/ioremap.c +++ b/arch/m32r/mm/ioremap.c | |||
| @@ -67,7 +67,7 @@ remap_area_pmd(pmd_t * pmd, unsigned long address, unsigned long size, | |||
| 67 | if (address >= end) | 67 | if (address >= end) |
| 68 | BUG(); | 68 | BUG(); |
| 69 | do { | 69 | do { |
| 70 | pte_t * pte = pte_alloc_kernel(&init_mm, pmd, address); | 70 | pte_t * pte = pte_alloc_kernel(pmd, address); |
| 71 | if (!pte) | 71 | if (!pte) |
| 72 | return -ENOMEM; | 72 | return -ENOMEM; |
| 73 | remap_area_pte(pte, address, end - address, address + phys_addr, flags); | 73 | remap_area_pte(pte, address, end - address, address + phys_addr, flags); |
| @@ -90,7 +90,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
| 90 | flush_cache_all(); | 90 | flush_cache_all(); |
| 91 | if (address >= end) | 91 | if (address >= end) |
| 92 | BUG(); | 92 | BUG(); |
| 93 | spin_lock(&init_mm.page_table_lock); | ||
| 94 | do { | 93 | do { |
| 95 | pmd_t *pmd; | 94 | pmd_t *pmd; |
| 96 | pmd = pmd_alloc(&init_mm, dir, address); | 95 | pmd = pmd_alloc(&init_mm, dir, address); |
| @@ -104,7 +103,6 @@ remap_area_pages(unsigned long address, unsigned long phys_addr, | |||
| 104 | address = (address + PGDIR_SIZE) & PGDIR_MASK; | 103 | address = (address + PGDIR_SIZE) & PGDIR_MASK; |
| 105 | dir++; | 104 | dir++; |
| 106 | } while (address && (address < end)); | 105 | } while (address && (address < end)); |
| 107 | spin_unlock(&init_mm.page_table_lock); | ||
| 108 | flush_tlb_all(); | 106 | flush_tlb_all(); |
| 109 | return error; | 107 | return error; |
| 110 | } | 108 | } |
