On Tue, Oct 10, 2017 at 2:19 PM, Jiri Pirko <j...@resnulli.us> wrote: > Tue, Oct 10, 2017 at 07:44:53PM CEST, xiyou.wangc...@gmail.com wrote: >>On Tue, Oct 10, 2017 at 12:30 AM, Jiri Pirko <j...@resnulli.us> wrote: >>> -static int tcf_mirred_device(const struct tc_action *a, struct net *net, >>> - struct net_device **mirred_dev) >>> +static struct net_device *tcf_mirred_get_dev(const struct tc_action *a) >>> { >>> - int ifindex = tcf_mirred_ifindex(a); >>> + struct tcf_mirred *m = to_mirred(a); >>> >>> - *mirred_dev = __dev_get_by_index(net, ifindex); >>> - if (!*mirred_dev) >>> - return -EINVAL; >>> - return 0; >>> + return __dev_get_by_index(m->net, m->tcfm_ifindex); >> >>Hmm, why not just return m->tcfm_dev? > > I just follow the existing code. The change you suggest should be a > separate follow-up patch.
Why? Your goal is "make tc_action_ops->get_dev return dev and avoid passing net", using m->tcfm_dev is simpler and could save you from adding a net pointer to struct tcf_mirred too.