NTB: Use NUMA memory in Intel driver
authorAllen Hubbe <Allen.Hubbe@emc.com>
Tue, 19 May 2015 16:04:52 +0000 (12:04 -0400)
committerJon Mason <jdmason@kudzu.us>
Sat, 4 Jul 2015 18:09:19 +0000 (14:09 -0400)
Allocate memory for the NUMA node of the NTB device.

Signed-off-by: Allen Hubbe <Allen.Hubbe@emc.com>
Signed-off-by: Jon Mason <jdmason@kudzu.us>
drivers/ntb/hw/intel/ntb_hw_intel.c

index c5ad7cb1706dff09088ad53b8c3d3b7ffe26c3b4..236b7d33b5afeda11cdc4542ac95b885cb9174be 100644 (file)
@@ -413,10 +413,12 @@ static int ndev_init_isr(struct intel_ntb_dev *ndev,
                         int msix_shift, int total_shift)
 {
        struct pci_dev *pdev;
-       int rc, i, msix_count;
+       int rc, i, msix_count, node;
 
        pdev = ndev_pdev(ndev);
 
+       node = dev_to_node(&pdev->dev);
+
        /* Mask all doorbell interrupts */
        ndev->db_mask = ndev->db_valid_mask;
        ndev->reg->db_iowrite(ndev->db_mask,
@@ -425,11 +427,13 @@ static int ndev_init_isr(struct intel_ntb_dev *ndev,
 
        /* Try to set up msix irq */
 
-       ndev->vec = kcalloc(msix_max, sizeof(*ndev->vec), GFP_KERNEL);
+       ndev->vec = kzalloc_node(msix_max * sizeof(*ndev->vec),
+                                GFP_KERNEL, node);
        if (!ndev->vec)
                goto err_msix_vec_alloc;
 
-       ndev->msix = kcalloc(msix_max, sizeof(*ndev->msix), GFP_KERNEL);
+       ndev->msix = kzalloc_node(msix_max * sizeof(*ndev->msix),
+                                 GFP_KERNEL, node);
        if (!ndev->msix)
                goto err_msix_alloc;
 
@@ -1955,10 +1959,12 @@ static int intel_ntb_pci_probe(struct pci_dev *pdev,
                               const struct pci_device_id *id)
 {
        struct intel_ntb_dev *ndev;
-       int rc;
+       int rc, node;
+
+       node = dev_to_node(&pdev->dev);
 
        if (pdev_is_bwd(pdev)) {
-               ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+               ndev = kzalloc_node(sizeof(*ndev), GFP_KERNEL, node);
                if (!ndev) {
                        rc = -ENOMEM;
                        goto err_ndev;
@@ -1975,7 +1981,7 @@ static int intel_ntb_pci_probe(struct pci_dev *pdev,
                        goto err_init_dev;
 
        } else if (pdev_is_snb(pdev)) {
-               ndev = kzalloc(sizeof(*ndev), GFP_KERNEL);
+               ndev = kzalloc_node(sizeof(*ndev), GFP_KERNEL, node);
                if (!ndev) {
                        rc = -ENOMEM;
                        goto err_ndev;