Lines Matching refs:xdp_rxq
146 void xdp_rxq_info_unreg_mem_model(struct xdp_rxq_info *xdp_rxq) in xdp_rxq_info_unreg_mem_model() argument
149 int id = xdp_rxq->mem.id; in xdp_rxq_info_unreg_mem_model()
151 if (xdp_rxq->reg_state != REG_STATE_REGISTERED) { in xdp_rxq_info_unreg_mem_model()
156 if (xdp_rxq->mem.type != MEM_TYPE_PAGE_POOL && in xdp_rxq_info_unreg_mem_model()
157 xdp_rxq->mem.type != MEM_TYPE_ZERO_COPY) { in xdp_rxq_info_unreg_mem_model()
188 void xdp_rxq_info_unreg(struct xdp_rxq_info *xdp_rxq) in xdp_rxq_info_unreg() argument
191 if (xdp_rxq->reg_state == REG_STATE_UNUSED) in xdp_rxq_info_unreg()
194 WARN(!(xdp_rxq->reg_state == REG_STATE_REGISTERED), "Driver BUG"); in xdp_rxq_info_unreg()
196 xdp_rxq_info_unreg_mem_model(xdp_rxq); in xdp_rxq_info_unreg()
198 xdp_rxq->reg_state = REG_STATE_UNREGISTERED; in xdp_rxq_info_unreg()
199 xdp_rxq->dev = NULL; in xdp_rxq_info_unreg()
202 xdp_rxq->mem.id = 0; in xdp_rxq_info_unreg()
203 xdp_rxq->mem.type = 0; in xdp_rxq_info_unreg()
207 static void xdp_rxq_info_init(struct xdp_rxq_info *xdp_rxq) in xdp_rxq_info_init() argument
209 memset(xdp_rxq, 0, sizeof(*xdp_rxq)); in xdp_rxq_info_init()
213 int xdp_rxq_info_reg(struct xdp_rxq_info *xdp_rxq, in xdp_rxq_info_reg() argument
216 if (xdp_rxq->reg_state == REG_STATE_UNUSED) { in xdp_rxq_info_reg()
221 if (xdp_rxq->reg_state == REG_STATE_REGISTERED) { in xdp_rxq_info_reg()
223 xdp_rxq_info_unreg(xdp_rxq); in xdp_rxq_info_reg()
232 xdp_rxq_info_init(xdp_rxq); in xdp_rxq_info_reg()
233 xdp_rxq->dev = dev; in xdp_rxq_info_reg()
234 xdp_rxq->queue_index = queue_index; in xdp_rxq_info_reg()
236 xdp_rxq->reg_state = REG_STATE_REGISTERED; in xdp_rxq_info_reg()
241 void xdp_rxq_info_unused(struct xdp_rxq_info *xdp_rxq) in xdp_rxq_info_unused() argument
243 xdp_rxq->reg_state = REG_STATE_UNUSED; in xdp_rxq_info_unused()
247 bool xdp_rxq_info_is_reg(struct xdp_rxq_info *xdp_rxq) in xdp_rxq_info_is_reg() argument
249 return (xdp_rxq->reg_state == REG_STATE_REGISTERED); in xdp_rxq_info_is_reg()
315 int xdp_rxq_info_reg_mem_model(struct xdp_rxq_info *xdp_rxq, in xdp_rxq_info_reg_mem_model() argument
323 if (xdp_rxq->reg_state != REG_STATE_REGISTERED) { in xdp_rxq_info_reg_mem_model()
331 xdp_rxq->mem.type = type; in xdp_rxq_info_reg_mem_model()
360 xdp_rxq->mem.id = id; in xdp_rxq_info_reg_mem_model()
361 xdp_alloc->mem = xdp_rxq->mem; in xdp_rxq_info_reg_mem_model()
367 ida_simple_remove(&mem_id_pool, xdp_rxq->mem.id); in xdp_rxq_info_reg_mem_model()
368 xdp_rxq->mem.id = 0; in xdp_rxq_info_reg_mem_model()
378 trace_mem_connect(xdp_alloc, xdp_rxq); in xdp_rxq_info_reg_mem_model()