Re: [PATCH RFC v6 2/6] dpll: Add DPLL framework base functions

Jiri Pirko
2023-03-17T16:22:04Z

Sun, Mar 12, 2023 at 03:28:03AM CET, vadfed@meta.com wrote:

[...]

>+int dpll_nl_device_get_dumpit(struct sk_buff *skb, struct netlink_callback *cb)
>+{
>+ struct nlattr *hdr, *nest;
>+ struct dpll_device *dpll;
>+ unsigned long i;
>+ int ret;
>+
>+ hdr = genlmsg_put(skb, NETLINK_CB(cb->skb).portid, cb->nlh->nlmsg_seq,
>+ &dpll_nl_family, 0, DPLL_CMD_DEVICE_GET);
>+ if (!hdr)
>+ return -EMSGSIZE;
>+
>+ xa_for_each_marked(&dpll_device_xa, i, dpll, DPLL_REGISTERED) {
>+ nest = nla_nest_start(skb, DPLL_A_DEVICE);
>+ ret = dpll_msg_add_dev_handle(skb, dpll);
>+ if (ret) {
>+ nla_nest_cancel(skb, nest);
>+ break;
>+ }

Please fillup the attrs for the object. The format should be exactly the
same as for doit.

>+ nla_nest_end(skb, nest);
>+ }
>+ if (ret)
>+ genlmsg_cancel(skb, hdr);
>+ else
>+ genlmsg_end(skb, hdr);
>+
>+ return ret;
>+}
>+ …