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
118 dev = netdev_get_by_index(net, ifindex, &req_info->dev_tracker, in ethnl_parse_header_dev_get()
129 netdev_put(dev, &req_info->dev_tracker); in ethnl_parse_header_dev_get()
136 &req_info->dev_tracker, GFP_KERNEL); in ethnl_parse_header_dev_get()
148 req_info->dev = dev; in ethnl_parse_header_dev_get()
149 req_info->flags = flags; in ethnl_parse_header_dev_get()
263 struct ethnl_req_info *req_info; member
328 static int ethnl_default_parse(struct ethnl_req_info *req_info, in ethnl_default_parse() argument
336 ret = ethnl_parse_header_dev_get(req_info, tb[request_ops->hdr_attr], in ethnl_default_parse()
343 ret = request_ops->parse_request(req_info, tb, info->extack); in ethnl_default_parse()
373 struct ethnl_req_info *req_info = NULL; in ethnl_default_doit() local
387 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_doit()
388 if (!req_info) in ethnl_default_doit()
392 kfree(req_info); in ethnl_default_doit()
396 ret = ethnl_default_parse(req_info, info, ops, !ops->allow_nodev_do); in ethnl_default_doit()
399 ethnl_init_reply_data(reply_data, ops, req_info->dev); in ethnl_default_doit()
402 ret = ops->prepare_data(req_info, reply_data, info); in ethnl_default_doit()
406 ret = ops->reply_size(req_info, reply_data); in ethnl_default_doit()
412 req_info->dev, ops->reply_cmd, in ethnl_default_doit()
417 ret = ops->fill_reply(rskb, req_info, reply_data); in ethnl_default_doit()
427 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_doit()
429 kfree(req_info); in ethnl_default_doit()
439 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_doit()
441 kfree(req_info); in ethnl_default_doit()
460 ret = ctx->ops->prepare_data(ctx->req_info, ctx->reply_data, info); in ethnl_default_dump_one()
467 ret = ctx->ops->fill_reply(skb, ctx->req_info, ctx->reply_data); in ethnl_default_dump_one()
521 struct ethnl_req_info *req_info; in ethnl_default_start() local
531 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_start()
532 if (!req_info) in ethnl_default_start()
540 ret = ethnl_default_parse(req_info, &info->info, ops, false); in ethnl_default_start()
541 if (req_info->dev) { in ethnl_default_start()
546 netdev_put(req_info->dev, &req_info->dev_tracker); in ethnl_default_start()
547 req_info->dev = NULL; in ethnl_default_start()
553 ctx->req_info = req_info; in ethnl_default_start()
562 kfree(req_info); in ethnl_default_start()
573 kfree(ctx->req_info); in ethnl_default_done()
581 struct ethnl_req_info req_info = {}; in ethnl_default_set_doit() local
591 ret = ethnl_parse_header_dev_get(&req_info, info->attrs[ops->hdr_attr], in ethnl_default_set_doit()
598 ret = ops->set_validate(&req_info, info); in ethnl_default_set_doit()
605 ret = ethnl_ops_begin(req_info.dev); in ethnl_default_set_doit()
609 ret = ops->set(&req_info, info); in ethnl_default_set_doit()
612 ethtool_notify(req_info.dev, ops->set_ntf_cmd, NULL); in ethnl_default_set_doit()
616 ethnl_ops_complete(req_info.dev); in ethnl_default_set_doit()
620 ethnl_parse_header_dev_put(&req_info); in ethnl_default_set_doit()
649 struct ethnl_req_info *req_info; in ethnl_default_notify() local
663 req_info = kzalloc(ops->req_info_size, GFP_KERNEL); in ethnl_default_notify()
664 if (!req_info) in ethnl_default_notify()
668 kfree(req_info); in ethnl_default_notify()
672 req_info->dev = dev; in ethnl_default_notify()
673 req_info->flags |= ETHTOOL_FLAG_COMPACT_BITSETS; in ethnl_default_notify()
676 ret = ops->prepare_data(req_info, reply_data, &info); in ethnl_default_notify()
679 ret = ops->reply_size(req_info, reply_data); in ethnl_default_notify()
692 ret = ops->fill_reply(skb, req_info, reply_data); in ethnl_default_notify()
700 kfree(req_info); in ethnl_default_notify()
714 kfree(req_info); in ethnl_default_notify()