diff options
Diffstat (limited to 'drivers/infiniband/hw/hfi1/init.c')
| -rw-r--r-- | drivers/infiniband/hw/hfi1/init.c | 17 | 
1 files changed, 13 insertions, 4 deletions
| diff --git a/drivers/infiniband/hw/hfi1/init.c b/drivers/infiniband/hw/hfi1/init.c index cb7ad1288821..e3a8a420c045 100644 --- a/drivers/infiniband/hw/hfi1/init.c +++ b/drivers/infiniband/hw/hfi1/init.c @@ -627,7 +627,7 @@ static enum hrtimer_restart cca_timer_fn(struct hrtimer *t)   * Common code for initializing the physical port structure.   */  void hfi1_init_pportdata(struct pci_dev *pdev, struct hfi1_pportdata *ppd, -			 struct hfi1_devdata *dd, u8 hw_pidx, u8 port) +			 struct hfi1_devdata *dd, u8 hw_pidx, u32 port)  {  	int i;  	uint default_pkey_idx; @@ -1277,7 +1277,6 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,  	dd->pport = (struct hfi1_pportdata *)(dd + 1);  	dd->pcidev = pdev;  	pci_set_drvdata(pdev, dd); -	dd->node = NUMA_NO_NODE;  	ret = xa_alloc_irq(&hfi1_dev_table, &dd->unit, dd, xa_limit_32b,  			GFP_KERNEL); @@ -1287,6 +1286,15 @@ static struct hfi1_devdata *hfi1_alloc_devdata(struct pci_dev *pdev,  		goto bail;  	}  	rvt_set_ibdev_name(&dd->verbs_dev.rdi, "%s_%d", class_name(), dd->unit); +	/* +	 * If the BIOS does not have the NUMA node information set, select +	 * NUMA 0 so we get consistent performance. +	 */ +	dd->node = pcibus_to_node(pdev->bus); +	if (dd->node == NUMA_NO_NODE) { +		dd_dev_err(dd, "Invalid PCI NUMA node. Performance may be affected\n"); +		dd->node = 0; +	}  	/*  	 * Initialize all locks for the device. This needs to be as early as @@ -1767,7 +1775,7 @@ static void remove_one(struct pci_dev *pdev)  	hfi1_unregister_ib_device(dd);  	/* free netdev data */ -	hfi1_netdev_free(dd); +	hfi1_free_rx(dd);  	/*  	 * Disable the IB link, disable interrupts on the device, @@ -1852,7 +1860,8 @@ bail:  }  /** - * allocate eager buffers, both kernel and user contexts. + * hfi1_setup_eagerbufs - llocate eager buffers, both kernel and user + * contexts.   * @rcd: the context we are setting up.   *   * Allocate the eager TID buffers and program them into hip. | 
