Re: [PATCH 3.12 42/88] netfilter: x_tables: do compat validation via translate_table

From: Michal Kubecek
Date: Tue Jul 19 2016 - 05:45:30 EST


On Tue, Jul 19, 2016 at 11:13:12AM +0200, Florian Westphal wrote:
> Florian Westphal <fw@xxxxxxxxx> wrote:
> > Michal Kubecek <mkubecek@xxxxxxx> wrote:
> > > > - /* And one copy for every other CPU */
> > > > - for_each_possible_cpu(i)
> > > > - if (newinfo->entries[i] && newinfo->entries[i] != entry1)
> > > > - memcpy(newinfo->entries[i], entry1, newinfo->size);
> > >
> > > These four lines should be preserved, IMHO, as 3.12 doesn't have commit
> > > 482cfc318559 ("netfilter: xtables: avoid percpu ruleset duplication")
> > > (introduced in 4.2) which removed the need for per-cpu copies.
> > >
> > > The same applies to the other two instances of translate_compat_table()
> > > in net/ipv4/netfilter/ip_tables.c and net/ipv6/netfilter/ip6_tables.c
> > >
> > > Florian, do you agree?
> >
> > Sorry, I have to look at this in more detail.
> > The patches change the compat translation version into a preprocessing
> > step rather than a 1:1 replacement of translate_table.
> >
> > From first glance the removal is thus ok.
>
> Removal is correct, the expanded ruleset is passed to
> translate_table() which will do the percpu duplication as last step.
>
> [ I looked at 3.14.y tree which also dropped these lines in the backport ]

You are right, I didn't notice that. Thanks for the clarification.
I'll send v2 of the patch for 4.1 stable in a moment.

Michal Kubecek