]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - arch/ia64/hp/common/sba_iommu.c
Merge tag 'pci-v3.15-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaa...
[mirror_ubuntu-artful-kernel.git] / arch / ia64 / hp / common / sba_iommu.c
index 30c43d39dede068c9f54448bc8e1f90917fe0c84..1a871b78e5709232f1f5f3e9aa8021cb4d02dd59 100644 (file)
@@ -1140,11 +1140,13 @@ sba_alloc_coherent(struct device *dev, size_t size, dma_addr_t *dma_handle,
 
 #ifdef CONFIG_NUMA
        {
+               int node = ioc->node;
                struct page *page;
-               page = alloc_pages_exact_node(ioc->node == MAX_NUMNODES ?
-                                       numa_node_id() : ioc->node, flags,
-                                       get_order(size));
 
+               if (node == NUMA_NO_NODE)
+                       node = numa_node_id();
+
+               page = alloc_pages_exact_node(node, flags, get_order(size));
                if (unlikely(!page))
                        return NULL;
 
@@ -1914,7 +1916,7 @@ ioc_show(struct seq_file *s, void *v)
        seq_printf(s, "Hewlett Packard %s IOC rev %d.%d\n",
                ioc->name, ((ioc->rev >> 4) & 0xF), (ioc->rev & 0xF));
 #ifdef CONFIG_NUMA
-       if (ioc->node != MAX_NUMNODES)
+       if (ioc->node != NUMA_NO_NODE)
                seq_printf(s, "NUMA node       : %d\n", ioc->node);
 #endif
        seq_printf(s, "IOVA size       : %ld MB\n", ((ioc->pdir_size >> 3) * iovp_size)/(1024*1024));
@@ -2015,31 +2017,19 @@ sba_connect_bus(struct pci_bus *bus)
        printk(KERN_WARNING "No IOC for PCI Bus %04x:%02x in ACPI\n", pci_domain_nr(bus), bus->number);
 }
 
-#ifdef CONFIG_NUMA
 static void __init
 sba_map_ioc_to_node(struct ioc *ioc, acpi_handle handle)
 {
+#ifdef CONFIG_NUMA
        unsigned int node;
-       int pxm;
-
-       ioc->node = MAX_NUMNODES;
-
-       pxm = acpi_get_pxm(handle);
-
-       if (pxm < 0)
-               return;
-
-       node = pxm_to_node(pxm);
 
-       if (node >= MAX_NUMNODES || !node_online(node))
-               return;
+       node = acpi_get_node(handle);
+       if (node != NUMA_NO_NODE && !node_online(node))
+               node = NUMA_NO_NODE;
 
        ioc->node = node;
-       return;
-}
-#else
-#define sba_map_ioc_to_node(ioc, handle)
 #endif
+}
 
 static int
 acpi_sba_ioc_add(struct acpi_device *device,