nfnl_err
struct nfnl_err *nfnl_err;
nfnl_err = kmalloc_obj(struct nfnl_err);
if (nfnl_err == NULL)
nfnl_err->nlh = nlh;
nfnl_err->err = err;
nfnl_err->extack = *extack;
list_add_tail(&nfnl_err->head, list);
static void nfnl_err_del(struct nfnl_err *nfnl_err)
list_del(&nfnl_err->head);
kfree(nfnl_err);
struct nfnl_err *nfnl_err, *next;
list_for_each_entry_safe(nfnl_err, next, err_list, head)
nfnl_err_del(nfnl_err);
struct nfnl_err *nfnl_err, *next;
list_for_each_entry_safe(nfnl_err, next, err_list, head) {
netlink_ack(skb, nfnl_err->nlh, nfnl_err->err,
&nfnl_err->extack);
nfnl_err_del(nfnl_err);