diff options
Diffstat (limited to 'arch/sparc64/mm/init.c')
-rw-r--r-- | arch/sparc64/mm/init.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/arch/sparc64/mm/init.c b/arch/sparc64/mm/init.c index 4e821b3ecb0..217de3ea29e 100644 --- a/arch/sparc64/mm/init.c +++ b/arch/sparc64/mm/init.c | |||
@@ -49,6 +49,7 @@ | |||
49 | #include <asm/sstate.h> | 49 | #include <asm/sstate.h> |
50 | #include <asm/mdesc.h> | 50 | #include <asm/mdesc.h> |
51 | #include <asm/cpudata.h> | 51 | #include <asm/cpudata.h> |
52 | #include <asm/irq.h> | ||
52 | 53 | ||
53 | #define MAX_PHYS_ADDRESS (1UL << 42UL) | 54 | #define MAX_PHYS_ADDRESS (1UL << 42UL) |
54 | #define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) | 55 | #define KPTE_BITMAP_CHUNK_SZ (256UL * 1024UL * 1024UL) |
@@ -1771,6 +1772,16 @@ void __init paging_init(void) | |||
1771 | if (tlb_type == hypervisor) | 1772 | if (tlb_type == hypervisor) |
1772 | sun4v_mdesc_init(); | 1773 | sun4v_mdesc_init(); |
1773 | 1774 | ||
1775 | /* Once the OF device tree and MDESC have been setup, we know | ||
1776 | * the list of possible cpus. Therefore we can allocate the | ||
1777 | * IRQ stacks. | ||
1778 | */ | ||
1779 | for_each_possible_cpu(i) { | ||
1780 | /* XXX Use node local allocations... XXX */ | ||
1781 | softirq_stack[i] = __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); | ||
1782 | hardirq_stack[i] = __va(lmb_alloc(THREAD_SIZE, THREAD_SIZE)); | ||
1783 | } | ||
1784 | |||
1774 | /* Setup bootmem... */ | 1785 | /* Setup bootmem... */ |
1775 | last_valid_pfn = end_pfn = bootmem_init(phys_base); | 1786 | last_valid_pfn = end_pfn = bootmem_init(phys_base); |
1776 | 1787 | ||