From: Jiri Pirko <jiri@resnulli.us>
To: Cong Wang <xiyou.wangcong@gmail.com>
Cc: netdev@vger.kernel.org, jhs@mojatatu.com
Subject: Re: [Patch net-next v2 2/4] net_sched: introduce tclass_del_notify()
Date: Fri, 25 Aug 2017 10:54:38 +0200 [thread overview]
Message-ID: <20170825085438.GC2023@nanopsycho> (raw)
In-Reply-To: <20170824235130.28503-3-xiyou.wangcong@gmail.com>
Fri, Aug 25, 2017 at 01:51:28AM CEST, xiyou.wangcong@gmail.com wrote:
>Like for TC actions, ->delete() is a special case,
>we have to prepare and fill the notification before delete
>otherwise would get use-after-free after we remove the
>reference count.
>
>Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com>
>---
[...]
>+static int tclass_del_notify(struct net *net,
>+ const struct Qdisc_class_ops *cops,
>+ struct sk_buff *oskb, struct nlmsghdr *n,
>+ struct Qdisc *q, unsigned long cl)
>+{
>+ u32 portid = oskb ? NETLINK_CB(oskb).portid : 0;
>+ struct sk_buff *skb;
>+ int err = 0;
>+
>+ if (!cops->delete)
>+ return -EOPNOTSUPP;
>+
>+ skb = alloc_skb(NLMSG_GOODSIZE, GFP_KERNEL);
>+ if (!skb)
>+ return -ENOBUFS;
>+
>+ if (tc_fill_tclass(skb, q, cl, portid, n->nlmsg_seq, 0,
>+ RTM_DELTCLASS) < 0) {
>+ kfree_skb(skb);
>+ return -EINVAL;
>+ }
>+
>+ err = cops->delete(q, cl);
>+ if (err) {
>+ kfree_skb(skb);
>+ return err;
>+ }
>+
>+ return rtnetlink_send(skb, net, portid, RTNLGRP_TC,
>+ n->nlmsg_flags & NLM_F_ECHO);
There is a lot of code duplication with tclass_notify function. Don't
you rather want to split tclass_notify into tclass_notify_prepare and
tclass_notify_send and use these 2 from both tclass_notify and
tclass_del_notify?
next prev parent reply other threads:[~2017-08-25 8:54 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-24 23:51 [Patch net-next v2 0/4] net_sched: clean up tc classes and u32 filter Cong Wang
2017-08-24 23:51 ` [Patch net-next v2 1/4] net_sched: get rid of more forward declarations Cong Wang
2017-08-25 8:45 ` Jiri Pirko
2017-08-25 11:51 ` Jamal Hadi Salim
2017-08-24 23:51 ` [Patch net-next v2 2/4] net_sched: introduce tclass_del_notify() Cong Wang
2017-08-25 8:54 ` Jiri Pirko [this message]
2017-08-25 11:51 ` Jamal Hadi Salim
2017-08-24 23:51 ` [Patch net-next v2 3/4] net_sched: remove tc class reference counting Cong Wang
2017-08-25 9:00 ` Jiri Pirko
2017-08-25 9:18 ` Florian Westphal
2017-08-25 9:36 ` Jiri Pirko
2017-08-25 9:41 ` Jiri Pirko
2017-08-25 12:28 ` Jamal Hadi Salim
2017-08-24 23:51 ` [Patch net-next v2 4/4] net_sched: kill u32_node pointer in Qdisc Cong Wang
2017-08-25 9:06 ` Jiri Pirko
2017-08-25 12:29 ` Jamal Hadi Salim
2017-08-25 12:37 ` Jiri Pirko
2017-08-26 0:20 ` [Patch net-next v2 0/4] net_sched: clean up tc classes and u32 filter David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170825085438.GC2023@nanopsycho \
--to=jiri@resnulli.us \
--cc=jhs@mojatatu.com \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.