From mboxrd@z Thu Jan 1 00:00:00 1970 From: Cong Wang Subject: [Patch net-next] act_mirred: use tcfm_dev in tcf_mirred_get_dev() Date: Thu, 30 Nov 2017 14:53:32 -0800 Message-ID: <20171130225335.6957-1-xiyou.wangcong@gmail.com> Cc: Cong Wang , Jiri Pirko , Jamal Hadi Salim To: netdev@vger.kernel.org Return-path: Received: from mail-pf0-f196.google.com ([209.85.192.196]:35811 "EHLO mail-pf0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750747AbdK3Wxv (ORCPT ); Thu, 30 Nov 2017 17:53:51 -0500 Received: by mail-pf0-f196.google.com with SMTP id j124so3768715pfc.2 for ; Thu, 30 Nov 2017 14:53:51 -0800 (PST) Sender: netdev-owner@vger.kernel.org List-ID: tcfm_dev always points to the correct netdev and we already hold a refcnt, so no need to use ifindex to lookup again. If we would support moving target netdev across netns, using pointer would be better than ifindex. Cc: Jiri Pirko Cc: Jamal Hadi Salim Signed-off-by: Cong Wang --- include/net/tc_act/tc_mirred.h | 1 - net/sched/act_mirred.c | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/include/net/tc_act/tc_mirred.h b/include/net/tc_act/tc_mirred.h index 21d253c9a8c6..b2dbbfaefd22 100644 --- a/include/net/tc_act/tc_mirred.h +++ b/include/net/tc_act/tc_mirred.h @@ -11,7 +11,6 @@ struct tcf_mirred { int tcfm_ifindex; bool tcfm_mac_header_xmit; struct net_device __rcu *tcfm_dev; - struct net *net; struct list_head tcfm_list; }; #define to_mirred(a) ((struct tcf_mirred *)a) diff --git a/net/sched/act_mirred.c b/net/sched/act_mirred.c index 8b3e59388480..fe6489f9c3cf 100644 --- a/net/sched/act_mirred.c +++ b/net/sched/act_mirred.c @@ -140,7 +140,6 @@ static int tcf_mirred_init(struct net *net, struct nlattr *nla, m->tcfm_eaction = parm->eaction; if (dev != NULL) { m->tcfm_ifindex = parm->ifindex; - m->net = net; if (ret != ACT_P_CREATED) dev_put(rcu_dereference_protected(m->tcfm_dev, 1)); dev_hold(dev); @@ -318,7 +317,7 @@ static struct net_device *tcf_mirred_get_dev(const struct tc_action *a) { struct tcf_mirred *m = to_mirred(a); - return __dev_get_by_index(m->net, m->tcfm_ifindex); + return rtnl_dereference(m->tcfm_dev); } static struct tc_action_ops act_mirred_ops = { -- 2.13.0