Lines Matching refs:dd
24 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_setup_ctxt() local
31 ret = hfi1_create_rcvhdrq(dd, uctxt); in hfi1_netdev_setup_ctxt()
53 hfi1_rcvctrl(uctxt->dd, rcvctrl_ops, uctxt); in hfi1_netdev_setup_ctxt()
58 static int hfi1_netdev_allocate_ctxt(struct hfi1_devdata *dd, in hfi1_netdev_allocate_ctxt() argument
64 if (dd->flags & HFI1_FROZEN) in hfi1_netdev_allocate_ctxt()
67 ret = hfi1_create_ctxtdata(dd->pport, dd->node, &uctxt); in hfi1_netdev_allocate_ctxt()
69 dd_dev_err(dd, "Unable to create ctxtdata, failing open\n"); in hfi1_netdev_allocate_ctxt()
85 dd_dev_info(dd, "created netdev context %d\n", uctxt->ctxt); in hfi1_netdev_allocate_ctxt()
91 static void hfi1_netdev_deallocate_ctxt(struct hfi1_devdata *dd, in hfi1_netdev_deallocate_ctxt() argument
100 hfi1_rcvctrl(dd, HFI1_RCVCTRL_CTXT_DIS | in hfi1_netdev_deallocate_ctxt()
108 msix_free_irq(dd, uctxt->msix_intr); in hfi1_netdev_deallocate_ctxt()
114 hfi1_clear_ctxt_pkey(dd, uctxt); in hfi1_netdev_deallocate_ctxt()
125 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_allot_ctxt() local
127 rc = hfi1_netdev_allocate_ctxt(dd, ctxt); in hfi1_netdev_allot_ctxt()
129 dd_dev_err(dd, "netdev ctxt alloc failed %d\n", rc); in hfi1_netdev_allot_ctxt()
135 dd_dev_err(dd, "netdev ctxt setup failed %d\n", rc); in hfi1_netdev_allot_ctxt()
136 hfi1_netdev_deallocate_ctxt(dd, *ctxt); in hfi1_netdev_allot_ctxt()
156 u32 hfi1_num_netdev_contexts(struct hfi1_devdata *dd, u32 available_contexts, in hfi1_num_netdev_contexts() argument
167 dd_dev_info(dd, "No receive contexts available for netdevs.\n"); in hfi1_num_netdev_contexts()
172 dd_dev_err(dd, "Unable to allocate cpu_mask for netdevs.\n"); in hfi1_num_netdev_contexts()
177 cpumask_of_node(pcibus_to_node(dd->pcidev->bus))); in hfi1_num_netdev_contexts()
192 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_rxq_init() local
194 priv->num_rx_q = dd->num_netdev_contexts; in hfi1_netdev_rxq_init()
196 GFP_KERNEL, dd->node); in hfi1_netdev_rxq_init()
199 dd_dev_err(dd, "Unable to allocate netdev queue data\n"); in hfi1_netdev_rxq_init()
213 dd_dev_info(dd, "Setting rcv queue %d napi to context %d\n", in hfi1_netdev_rxq_init()
229 dd_dev_err(dd, "Unable to allot receive context\n"); in hfi1_netdev_rxq_init()
234 hfi1_netdev_deallocate_ctxt(dd, rxq->rcd); in hfi1_netdev_rxq_init()
249 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_rxq_deinit() local
255 hfi1_netdev_deallocate_ctxt(dd, rxq->rcd); in hfi1_netdev_rxq_deinit()
272 dd_dev_info(priv->dd, "enabling queue %d on context %d\n", i, in enable_queues()
275 hfi1_rcvctrl(priv->dd, in enable_queues()
285 msix_netdev_synchronize_irq(priv->dd); in disable_queues()
290 dd_dev_info(priv->dd, "disabling queue %d on context %d\n", i, in disable_queues()
294 hfi1_rcvctrl(priv->dd, in disable_queues()
309 int hfi1_netdev_rx_init(struct hfi1_devdata *dd) in hfi1_netdev_rx_init() argument
311 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_rx_init()
318 init_dummy_netdev(dd->dummy_netdev); in hfi1_netdev_rx_init()
319 res = hfi1_netdev_rxq_init(dd->dummy_netdev); in hfi1_netdev_rx_init()
330 int hfi1_netdev_rx_destroy(struct hfi1_devdata *dd) in hfi1_netdev_rx_destroy() argument
332 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_rx_destroy()
337 hfi1_netdev_rxq_deinit(dd->dummy_netdev); in hfi1_netdev_rx_destroy()
351 int hfi1_netdev_alloc(struct hfi1_devdata *dd) in hfi1_netdev_alloc() argument
354 const int netdev_size = sizeof(*dd->dummy_netdev) + in hfi1_netdev_alloc()
357 dd_dev_info(dd, "allocating netdev size %d\n", netdev_size); in hfi1_netdev_alloc()
358 dd->dummy_netdev = kcalloc_node(1, netdev_size, GFP_KERNEL, dd->node); in hfi1_netdev_alloc()
360 if (!dd->dummy_netdev) in hfi1_netdev_alloc()
363 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_alloc()
364 priv->dd = dd; in hfi1_netdev_alloc()
372 void hfi1_netdev_free(struct hfi1_devdata *dd) in hfi1_netdev_free() argument
374 if (dd->dummy_netdev) { in hfi1_netdev_free()
375 dd_dev_info(dd, "hfi1 netdev freed\n"); in hfi1_netdev_free()
376 kfree(dd->dummy_netdev); in hfi1_netdev_free()
377 dd->dummy_netdev = NULL; in hfi1_netdev_free()
390 void hfi1_netdev_enable_queues(struct hfi1_devdata *dd) in hfi1_netdev_enable_queues() argument
394 if (!dd->dummy_netdev) in hfi1_netdev_enable_queues()
397 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_enable_queues()
406 void hfi1_netdev_disable_queues(struct hfi1_devdata *dd) in hfi1_netdev_disable_queues() argument
410 if (!dd->dummy_netdev) in hfi1_netdev_disable_queues()
413 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_disable_queues()
432 int hfi1_netdev_add_data(struct hfi1_devdata *dd, int id, void *data) in hfi1_netdev_add_data() argument
434 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_add_data()
446 void *hfi1_netdev_remove_data(struct hfi1_devdata *dd, int id) in hfi1_netdev_remove_data() argument
448 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_remove_data()
459 void *hfi1_netdev_get_data(struct hfi1_devdata *dd, int id) in hfi1_netdev_get_data() argument
461 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_get_data()
472 void *hfi1_netdev_get_first_data(struct hfi1_devdata *dd, int *start_id) in hfi1_netdev_get_first_data() argument
474 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_get_first_data()