Lines Matching refs:req_info
74 * @req_info: structure to put results into
81 * the structure pointed to by @req_info. Extack from @info is used for error
82 * reporting. If req_info->dev is not null on return, reference to it has
83 * been taken. If error is returned, *req_info is null initialized and no
88 int ethnl_parse_header_dev_get(struct ethnl_req_info *req_info,
118 dev = netdev_get_by_index(net, ifindex, &req_info->dev_tracker,
129 netdev_put(dev, &req_info->dev_tracker);
136 &req_info->dev_tracker, GFP_KERNEL);
148 req_info->dev = dev;
149 req_info->flags = flags;
253 * @req_info: parsed request header of processed request
263 struct ethnl_req_info *req_info;
318 * @req_info: pointer to structure to put data into
328 static int ethnl_default_parse(struct ethnl_req_info *req_info,
336 ret = ethnl_parse_header_dev_get(req_info, tb[request_ops->hdr_attr],
343 ret = request_ops->parse_request(req_info, tb, info->extack);
373 struct ethnl_req_info *req_info = NULL;
387 req_info = kzalloc(ops->req_info_size, GFP_KERNEL);
388 if (!req_info)
392 kfree(req_info);
396 ret = ethnl_default_parse(req_info, info, ops, !ops->allow_nodev_do);
399 ethnl_init_reply_data(reply_data, ops, req_info->dev);
402 ret = ops->prepare_data(req_info, reply_data, info);
406 ret = ops->reply_size(req_info, reply_data);
412 req_info->dev, ops->reply_cmd,
417 ret = ops->fill_reply(rskb, req_info, reply_data);
427 netdev_put(req_info->dev, &req_info->dev_tracker);
429 kfree(req_info);
439 netdev_put(req_info->dev, &req_info->dev_tracker);
441 kfree(req_info);
460 ret = ctx->ops->prepare_data(ctx->req_info, ctx->reply_data, info);
467 ret = ctx->ops->fill_reply(skb, ctx->req_info, ctx->reply_data);
522 struct ethnl_req_info *req_info;
532 req_info = kzalloc(ops->req_info_size, GFP_KERNEL);
533 if (!req_info)
541 ret = ethnl_default_parse(req_info, &info->info, ops, false);
542 if (req_info->dev) {
547 netdev_put(req_info->dev, &req_info->dev_tracker);
548 req_info->dev = NULL;
554 ctx->req_info = req_info;
563 kfree(req_info);
574 kfree(ctx->req_info);
582 struct ethnl_req_info req_info = {};
592 ret = ethnl_parse_header_dev_get(&req_info, info->attrs[ops->hdr_attr],
599 ret = ops->set_validate(&req_info, info);
606 ret = ethnl_ops_begin(req_info.dev);
610 ret = ops->set(&req_info, info);
613 ethtool_notify(req_info.dev, ops->set_ntf_cmd, NULL);
617 ethnl_ops_complete(req_info.dev);
621 ethnl_parse_header_dev_put(&req_info);
650 struct ethnl_req_info *req_info;
664 req_info = kzalloc(ops->req_info_size, GFP_KERNEL);
665 if (!req_info)
669 kfree(req_info);
673 req_info->dev = dev;
674 req_info->flags |= ETHTOOL_FLAG_COMPACT_BITSETS;
677 ret = ops->prepare_data(req_info, reply_data, &info);
680 ret = ops->reply_size(req_info, reply_data);
693 ret = ops->fill_reply(skb, req_info, reply_data);
701 kfree(req_info);
715 kfree(req_info);