Lines Matching refs:req_info

88 int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,  in ethnl_parse_header_dev_get()  argument
144 req_info->dev = dev; in ethnl_parse_header_dev_get()
146 netdev_tracker_alloc(dev, &req_info->dev_tracker, GFP_KERNEL); in ethnl_parse_header_dev_get()
147 req_info->flags = flags; in ethnl_parse_header_dev_get()
262 struct ethnl_req_info *req_info; member
311 static int ethnl_default_parse(struct ethnl_req_info *req_info, in ethnl_default_parse() argument
318 ret = ethnl_parse_header_dev_get(req_info, tb[request_ops->hdr_attr], in ethnl_default_parse()
324 ret = request_ops->parse_request(req_info, tb, extack); in ethnl_default_parse()
354 struct ethnl_req_info *req_info = NULL; in ethnl_default_doit() local
368 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_doit()
369 if (!req_info) in ethnl_default_doit()
373 kfree(req_info); in ethnl_default_doit()
377 ret = ethnl_default_parse(req_info, info->attrs, genl_info_net(info), in ethnl_default_doit()
381 ethnl_init_reply_data(reply_data, ops, req_info->dev); in ethnl_default_doit()
384 ret = ops->prepare_data(req_info, reply_data, info); in ethnl_default_doit()
388 ret = ops->reply_size(req_info, reply_data); in ethnl_default_doit()
394 req_info->dev, ops->reply_cmd, in ethnl_default_doit()
399 ret = ops->fill_reply(rskb, req_info, reply_data); in ethnl_default_doit()
409 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_doit()
411 kfree(req_info); in ethnl_default_doit()
421 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_doit()
423 kfree(req_info); in ethnl_default_doit()
442 ret = ctx->ops->prepare_data(ctx->req_info, ctx->reply_data, NULL); in ethnl_default_dump_one()
449 ret = ctx->ops->fill_reply(skb, ctx->req_info, ctx->reply_data); in ethnl_default_dump_one()
531 struct ethnl_req_info *req_info; in ethnl_default_start() local
541 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_start()
542 if (!req_info) in ethnl_default_start()
550 ret = ethnl_default_parse(req_info, info->attrs, sock_net(cb->skb->sk), in ethnl_default_start()
552 if (req_info->dev) { in ethnl_default_start()
557 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_start()
558 req_info->dev = NULL; in ethnl_default_start()
564 ctx->req_info = req_info; in ethnl_default_start()
574 kfree(req_info); in ethnl_default_start()
585 kfree(ctx->req_info); in ethnl_default_done()
613 struct ethnl_req_info *req_info; in ethnl_default_notify() local
624 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_notify()
625 if (!req_info) in ethnl_default_notify()
629 kfree(req_info); in ethnl_default_notify()
633 req_info->dev = dev; in ethnl_default_notify()
634 req_info->flags |= ETHTOOL_FLAG_COMPACT_BITSETS; in ethnl_default_notify()
637 ret = ops->prepare_data(req_info, reply_data, NULL); in ethnl_default_notify()
640 ret = ops->reply_size(req_info, reply_data); in ethnl_default_notify()
653 ret = ops->fill_reply(skb, req_info, reply_data); in ethnl_default_notify()
661 kfree(req_info); in ethnl_default_notify()
675 kfree(req_info); in ethnl_default_notify()