Lines Matching refs:priv

39 gve_num_tx_qpls(struct gve_priv *priv)  in gve_num_tx_qpls()  argument
41 if (priv->queue_format != GVE_GQI_QPL_FORMAT) in gve_num_tx_qpls()
44 return (priv->tx_cfg.max_queues); in gve_num_tx_qpls()
48 gve_num_rx_qpls(struct gve_priv *priv) in gve_num_rx_qpls() argument
50 if (priv->queue_format != GVE_GQI_QPL_FORMAT) in gve_num_rx_qpls()
53 return (priv->rx_cfg.max_queues); in gve_num_rx_qpls()
57 gve_free_qpl(struct gve_priv *priv, uint32_t id) in gve_free_qpl() argument
59 struct gve_queue_page_list *qpl = &priv->qpls[id]; in gve_free_qpl()
86 priv->num_registered_pages--; in gve_free_qpl()
97 gve_alloc_qpl(struct gve_priv *priv, uint32_t id, int npages, bool single_kva) in gve_alloc_qpl() argument
99 struct gve_queue_page_list *qpl = &priv->qpls[id]; in gve_alloc_qpl()
103 if (npages + priv->num_registered_pages > priv->max_registered_pages) { in gve_alloc_qpl()
104 device_printf(priv->dev, "Reached max number of registered pages %ju > %ju\n", in gve_alloc_qpl()
105 (uintmax_t)npages + priv->num_registered_pages, in gve_alloc_qpl()
106 (uintmax_t)priv->max_registered_pages); in gve_alloc_qpl()
124 device_printf(priv->dev, "Failed to create the single kva for QPL %d\n", id); in gve_alloc_qpl()
138 device_printf(priv->dev, "Failed to create kva for page %d in QPL %d", i, id); in gve_alloc_qpl()
154 err = gve_dmamap_create(priv, /*size=*/PAGE_SIZE, /*align=*/PAGE_SIZE, in gve_alloc_qpl()
157 device_printf(priv->dev, "Failed to dma-map page %d in QPL %d\n", i, id); in gve_alloc_qpl()
162 priv->num_registered_pages++; in gve_alloc_qpl()
168 gve_free_qpl(priv, id); in gve_alloc_qpl()
173 gve_free_qpls(struct gve_priv *priv) in gve_free_qpls() argument
175 int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); in gve_free_qpls()
181 if (priv->qpls != NULL) { in gve_free_qpls()
183 gve_free_qpl(priv, i); in gve_free_qpls()
184 free(priv->qpls, M_GVE_QPL); in gve_free_qpls()
188 int gve_alloc_qpls(struct gve_priv *priv) in gve_alloc_qpls() argument
190 int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); in gve_alloc_qpls()
197 priv->qpls = malloc(num_qpls * sizeof(*priv->qpls), M_GVE_QPL, in gve_alloc_qpls()
200 for (i = 0; i < gve_num_tx_qpls(priv); i++) { in gve_alloc_qpls()
201 err = gve_alloc_qpl(priv, i, priv->tx_desc_cnt / GVE_QPL_DIVISOR, in gve_alloc_qpls()
208 err = gve_alloc_qpl(priv, i, priv->rx_desc_cnt, /*single_kva=*/false); in gve_alloc_qpls()
216 gve_free_qpls(priv); in gve_alloc_qpls()
221 gve_unregister_n_qpls(struct gve_priv *priv, int n) in gve_unregister_n_qpls() argument
227 err = gve_adminq_unregister_page_list(priv, priv->qpls[i].id); in gve_unregister_n_qpls()
229 device_printf(priv->dev, in gve_unregister_n_qpls()
231 priv->qpls[i].id, err); in gve_unregister_n_qpls()
242 gve_register_qpls(struct gve_priv *priv) in gve_register_qpls() argument
244 int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); in gve_register_qpls()
248 if (gve_get_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK)) in gve_register_qpls()
252 err = gve_adminq_register_page_list(priv, &priv->qpls[i]); in gve_register_qpls()
254 device_printf(priv->dev, in gve_register_qpls()
256 priv->qpls[i].id, err); in gve_register_qpls()
261 gve_set_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK); in gve_register_qpls()
265 gve_unregister_n_qpls(priv, i); in gve_register_qpls()
270 gve_unregister_qpls(struct gve_priv *priv) in gve_unregister_qpls() argument
272 int num_qpls = gve_num_tx_qpls(priv) + gve_num_rx_qpls(priv); in gve_unregister_qpls()
275 if (!gve_get_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK)) in gve_unregister_qpls()
278 err = gve_unregister_n_qpls(priv, num_qpls); in gve_unregister_qpls()
282 gve_clear_state_flag(priv, GVE_STATE_FLAG_QPLREG_OK); in gve_unregister_qpls()