net/hinic: allocate IO memory with socket id
[dpdk.git] / drivers / net / hinic / base / hinic_pmd_nicio.c
index f6cc033..59e39ed 100644 (file)
@@ -728,9 +728,10 @@ void hinic_update_rq_local_ci(struct hinic_hwdev *hwdev, u16 q_id, int wqe_cnt)
 
 static int hinic_alloc_nicio(struct hinic_hwdev *hwdev)
 {
-       int err;
-       u16 max_qps, num_qp;
        struct hinic_nic_io *nic_io = hwdev->nic_io;
+       struct rte_pci_device *pdev = hwdev->pcidev_hdl;
+       u16 max_qps, num_qp;
+       int err;
 
        max_qps = hinic_func_max_qnum(hwdev);
        if ((max_qps & (max_qps - 1))) {
@@ -751,10 +752,10 @@ static int hinic_alloc_nicio(struct hinic_hwdev *hwdev)
                goto alloc_qps_err;
        }
 
-       nic_io->ci_vaddr_base =
-               dma_zalloc_coherent(hwdev,
+       nic_io->ci_vaddr_base = dma_zalloc_coherent(hwdev,
                                    CI_TABLE_SIZE(num_qp, HINIC_PAGE_SIZE),
-                                   &nic_io->ci_dma_base, GFP_KERNEL);
+                                   &nic_io->ci_dma_base,
+                                   pdev->device.numa_node);
        if (!nic_io->ci_vaddr_base) {
                PMD_DRV_LOG(ERR, "Failed to allocate ci area");
                err = -ENOMEM;