On Sat, Aug 5, 2017 at 1:48 AM, Xin Long <lucien....@gmail.com> wrote:
> -static int __tcf_ipt_init(struct tc_action_net *tn, struct nlattr *nla,
> +static int __tcf_ipt_init(struct net *net, struct nlattr *nla,
>                           struct nlattr *est, struct tc_action **a,
>                           const struct tc_action_ops *ops, int ovr, int bind)
>  {
> +       struct tc_action_net *tn = net_generic(net, xt_net_id);

...

> @@ -193,18 +195,14 @@ static int tcf_ipt_init(struct net *net, struct nlattr 
> *nla,
>                         struct nlattr *est, struct tc_action **a, int ovr,
>                         int bind)
>  {
> -       struct tc_action_net *tn = net_generic(net, ipt_net_id);
> -
> -       return __tcf_ipt_init(tn, nla, est, a, &act_ipt_ops, ovr, bind);
> +       return __tcf_ipt_init(net, nla, est, a, &act_ipt_ops, ovr, bind);
>  }
>
>  static int tcf_xt_init(struct net *net, struct nlattr *nla,
>                        struct nlattr *est, struct tc_action **a, int ovr,
>                        int bind)
>  {
> -       struct tc_action_net *tn = net_generic(net, xt_net_id);
> -
> -       return __tcf_ipt_init(tn, nla, est, a, &act_xt_ops, ovr, bind);
> +       return __tcf_ipt_init(net, nla, est, a, &act_xt_ops, ovr, bind);

This is not correct.

You miss ipt_net_id != xt_net_id.

Reply via email to