Merge branch 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc

* 'merge' of git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc:
powerpc/cell/axon-msi: Fix MSI after kexec
powerpc: Fix bootmem reservation on uninitialized node
powerpc: Check for valid hugepage size in hugetlb_get_unmapped_area

+17 -5
+3
arch/powerpc/mm/hugetlbpage.c
··· 507 { 508 struct hstate *hstate = hstate_file(file); 509 int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate)); 510 return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); 511 } 512
··· 507 { 508 struct hstate *hstate = hstate_file(file); 509 int mmu_psize = shift_to_mmu_psize(huge_page_shift(hstate)); 510 + 511 + if (!mmu_huge_psizes[mmu_psize]) 512 + return -EINVAL; 513 return slice_get_unmapped_area(addr, len, flags, mmu_psize, 1, 0); 514 } 515
+11 -5
arch/powerpc/mm/numa.c
··· 901 if (end_pfn > node_ar.end_pfn) 902 reserve_size = (node_ar.end_pfn << PAGE_SHIFT) 903 - (start_pfn << PAGE_SHIFT); 904 - dbg("reserve_bootmem %lx %lx nid=%d\n", physbase, 905 - reserve_size, node_ar.nid); 906 - reserve_bootmem_node(NODE_DATA(node_ar.nid), physbase, 907 - reserve_size, BOOTMEM_DEFAULT); 908 /* 909 * if reserved region is contained in the active region 910 * then done. ··· 936 void __init do_init_bootmem(void) 937 { 938 int nid; 939 - unsigned int i; 940 941 min_low_pfn = 0; 942 max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
··· 901 if (end_pfn > node_ar.end_pfn) 902 reserve_size = (node_ar.end_pfn << PAGE_SHIFT) 903 - (start_pfn << PAGE_SHIFT); 904 + /* 905 + * Only worry about *this* node, others may not 906 + * yet have valid NODE_DATA(). 907 + */ 908 + if (node_ar.nid == nid) { 909 + dbg("reserve_bootmem %lx %lx nid=%d\n", 910 + physbase, reserve_size, node_ar.nid); 911 + reserve_bootmem_node(NODE_DATA(node_ar.nid), 912 + physbase, reserve_size, 913 + BOOTMEM_DEFAULT); 914 + } 915 /* 916 * if reserved region is contained in the active region 917 * then done. ··· 929 void __init do_init_bootmem(void) 930 { 931 int nid; 932 933 min_low_pfn = 0; 934 max_low_pfn = lmb_end_of_DRAM() >> PAGE_SHIFT;
+3
arch/powerpc/platforms/cell/axon_msi.c
··· 413 MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE | 414 MSIC_CTRL_FIFO_SIZE); 415 416 device->dev.platform_data = msic; 417 418 ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;
··· 413 MSIC_CTRL_IRQ_ENABLE | MSIC_CTRL_ENABLE | 414 MSIC_CTRL_FIFO_SIZE); 415 416 + msic->read_offset = dcr_read(msic->dcr_host, MSIC_WRITE_OFFSET_REG) 417 + & MSIC_FIFO_SIZE_MASK; 418 + 419 device->dev.platform_data = msic; 420 421 ppc_md.setup_msi_irqs = axon_msi_setup_msi_irqs;