diff options
Diffstat (limited to 'arch/alpha/kernel/pci_iommu.c')
-rw-r--r-- | arch/alpha/kernel/pci_iommu.c | 34 |
1 files changed, 15 insertions, 19 deletions
diff --git a/arch/alpha/kernel/pci_iommu.c b/arch/alpha/kernel/pci_iommu.c index dd6e334ab9e1..2179c602032a 100644 --- a/arch/alpha/kernel/pci_iommu.c +++ b/arch/alpha/kernel/pci_iommu.c | |||
@@ -79,25 +79,21 @@ iommu_arena_new_node(int nid, struct pci_controller *hose, dma_addr_t base, | |||
79 | 79 | ||
80 | #ifdef CONFIG_DISCONTIGMEM | 80 | #ifdef CONFIG_DISCONTIGMEM |
81 | 81 | ||
82 | if (!NODE_DATA(nid) || | 82 | arena = alloc_bootmem_node(NODE_DATA(nid), sizeof(*arena)); |
83 | (NULL == (arena = alloc_bootmem_node(NODE_DATA(nid), | 83 | if (!NODE_DATA(nid) || !arena) { |
84 | sizeof(*arena))))) { | 84 | printk("%s: couldn't allocate arena from node %d\n" |
85 | printk("%s: couldn't allocate arena from node %d\n" | 85 | " falling back to system-wide allocation\n", |
86 | " falling back to system-wide allocation\n", | 86 | __func__, nid); |
87 | __FUNCTION__, nid); | 87 | arena = alloc_bootmem(sizeof(*arena)); |
88 | arena = alloc_bootmem(sizeof(*arena)); | 88 | } |
89 | } | 89 | |
90 | 90 | arena->ptes = __alloc_bootmem_node(NODE_DATA(nid), mem_size, align, 0); | |
91 | if (!NODE_DATA(nid) || | 91 | if (!NODE_DATA(nid) || !arena->ptes) { |
92 | (NULL == (arena->ptes = __alloc_bootmem_node(NODE_DATA(nid), | 92 | printk("%s: couldn't allocate arena ptes from node %d\n" |
93 | mem_size, | 93 | " falling back to system-wide allocation\n", |
94 | align, | 94 | __func__, nid); |
95 | 0)))) { | 95 | arena->ptes = __alloc_bootmem(mem_size, align, 0); |
96 | printk("%s: couldn't allocate arena ptes from node %d\n" | 96 | } |
97 | " falling back to system-wide allocation\n", | ||
98 | __FUNCTION__, nid); | ||
99 | arena->ptes = __alloc_bootmem(mem_size, align, 0); | ||
100 | } | ||
101 | 97 | ||
102 | #else /* CONFIG_DISCONTIGMEM */ | 98 | #else /* CONFIG_DISCONTIGMEM */ |
103 | 99 | ||