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()
176 cpumask_and(node_cpu_mask, cpu_mask, cpumask_of_node(dd->node)); in hfi1_num_netdev_contexts()
191 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_rxq_init() local
193 priv->num_rx_q = dd->num_netdev_contexts; in hfi1_netdev_rxq_init()
195 GFP_KERNEL, dd->node); in hfi1_netdev_rxq_init()
198 dd_dev_err(dd, "Unable to allocate netdev queue data\n"); in hfi1_netdev_rxq_init()
212 dd_dev_info(dd, "Setting rcv queue %d napi to context %d\n", in hfi1_netdev_rxq_init()
228 dd_dev_err(dd, "Unable to allot receive context\n"); in hfi1_netdev_rxq_init()
233 hfi1_netdev_deallocate_ctxt(dd, rxq->rcd); in hfi1_netdev_rxq_init()
248 struct hfi1_devdata *dd = priv->dd; in hfi1_netdev_rxq_deinit() local
254 hfi1_netdev_deallocate_ctxt(dd, rxq->rcd); in hfi1_netdev_rxq_deinit()
271 dd_dev_info(priv->dd, "enabling queue %d on context %d\n", i, in enable_queues()
274 hfi1_rcvctrl(priv->dd, in enable_queues()
284 msix_netdev_synchronize_irq(priv->dd); in disable_queues()
289 dd_dev_info(priv->dd, "disabling queue %d on context %d\n", i, in disable_queues()
293 hfi1_rcvctrl(priv->dd, in disable_queues()
308 int hfi1_netdev_rx_init(struct hfi1_devdata *dd) in hfi1_netdev_rx_init() argument
310 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_rx_init()
317 init_dummy_netdev(dd->dummy_netdev); in hfi1_netdev_rx_init()
318 res = hfi1_netdev_rxq_init(dd->dummy_netdev); in hfi1_netdev_rx_init()
329 int hfi1_netdev_rx_destroy(struct hfi1_devdata *dd) in hfi1_netdev_rx_destroy() argument
331 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_rx_destroy()
336 hfi1_netdev_rxq_deinit(dd->dummy_netdev); in hfi1_netdev_rx_destroy()
350 int hfi1_netdev_alloc(struct hfi1_devdata *dd) in hfi1_netdev_alloc() argument
353 const int netdev_size = sizeof(*dd->dummy_netdev) + in hfi1_netdev_alloc()
356 dd_dev_info(dd, "allocating netdev size %d\n", netdev_size); in hfi1_netdev_alloc()
357 dd->dummy_netdev = kcalloc_node(1, netdev_size, GFP_KERNEL, dd->node); in hfi1_netdev_alloc()
359 if (!dd->dummy_netdev) in hfi1_netdev_alloc()
362 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_alloc()
363 priv->dd = dd; in hfi1_netdev_alloc()
371 void hfi1_netdev_free(struct hfi1_devdata *dd) in hfi1_netdev_free() argument
373 if (dd->dummy_netdev) { in hfi1_netdev_free()
374 dd_dev_info(dd, "hfi1 netdev freed\n"); in hfi1_netdev_free()
375 kfree(dd->dummy_netdev); in hfi1_netdev_free()
376 dd->dummy_netdev = NULL; in hfi1_netdev_free()
389 void hfi1_netdev_enable_queues(struct hfi1_devdata *dd) in hfi1_netdev_enable_queues() argument
393 if (!dd->dummy_netdev) in hfi1_netdev_enable_queues()
396 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_enable_queues()
405 void hfi1_netdev_disable_queues(struct hfi1_devdata *dd) in hfi1_netdev_disable_queues() argument
409 if (!dd->dummy_netdev) in hfi1_netdev_disable_queues()
412 priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_disable_queues()
431 int hfi1_netdev_add_data(struct hfi1_devdata *dd, int id, void *data) in hfi1_netdev_add_data() argument
433 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_add_data()
445 void *hfi1_netdev_remove_data(struct hfi1_devdata *dd, int id) in hfi1_netdev_remove_data() argument
447 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_remove_data()
458 void *hfi1_netdev_get_data(struct hfi1_devdata *dd, int id) in hfi1_netdev_get_data() argument
460 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_get_data()
471 void *hfi1_netdev_get_first_data(struct hfi1_devdata *dd, int *start_id) in hfi1_netdev_get_first_data() argument
473 struct hfi1_netdev_priv *priv = hfi1_netdev_priv(dd->dummy_netdev); in hfi1_netdev_get_first_data()