2021-05-19 18:49:31

by Stephen Rothwell

[permalink] [raw]
Subject: linux-next: manual merge of the netfilter-next tree with the net tree

Hi all,

Today's linux-next merge of the netfilter-next tree got a conflict in:

net/netfilter/nft_set_pipapo.c

between commit:

f0b3d338064e ("netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version")

from the net tree and commit:

b1bc08f6474f ("netfilter: nf_tables: prefer direct calls for set lookups")

from the netfilter-next tree.

I fixed it up (I just used the latter) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging. You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2021-05-19 19:10:47

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: manual merge of the netfilter-next tree with the net tree

Hi all,

On Wed, 19 May 2021 09:56:27 +1000 Stephen Rothwell <[email protected]> wrote:
>
> Today's linux-next merge of the netfilter-next tree got a conflict in:
>
> net/netfilter/nft_set_pipapo.c
>
> between commit:
>
> f0b3d338064e ("netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version")
>
> from the net tree and commit:
>
> b1bc08f6474f ("netfilter: nf_tables: prefer direct calls for set lookups")
>
> from the netfilter-next tree.
>
> I fixed it up (I just used the latter) and can carry the fix as necessary. This
> is now fixed as far as linux-next is concerned, but any non trivial
> conflicts should be mentioned to your upstream maintainer when your tree
> is submitted for merging. You may also want to consider cooperating
> with the maintainer of the conflicting tree to minimise any particularly
> complex conflicts.

This merge also needs the following merge resolution patch:

From: Stephen Rothwell <[email protected]>
Date: Wed, 19 May 2021 13:48:22 +1000
Subject: [PATCH] fix up for merge involving nft_pipapo_lookup()

Signed-off-by: Stephen Rothwell <[email protected]>
---
net/netfilter/nft_set_pipapo.h | 2 --
1 file changed, 2 deletions(-)

diff --git a/net/netfilter/nft_set_pipapo.h b/net/netfilter/nft_set_pipapo.h
index d84afb8fa79a..25a75591583e 100644
--- a/net/netfilter/nft_set_pipapo.h
+++ b/net/netfilter/nft_set_pipapo.h
@@ -178,8 +178,6 @@ struct nft_pipapo_elem {

int pipapo_refill(unsigned long *map, int len, int rules, unsigned long *dst,
union nft_pipapo_map_bucket *mt, bool match_only);
-bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);

/**
* pipapo_and_field_buckets_4bit() - Intersect 4-bit buckets
--
2.30.2

--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2021-05-21 08:39:12

by Stephen Rothwell

[permalink] [raw]
Subject: Re: linux-next: manual merge of the netfilter-next tree with the net tree

Hi all,

On Wed, 19 May 2021 14:05:32 +1000 Stephen Rothwell <[email protected]> wrote:
>
> On Wed, 19 May 2021 09:56:27 +1000 Stephen Rothwell <[email protected]> wrote:
> >
> > Today's linux-next merge of the netfilter-next tree got a conflict in:
> >
> > net/netfilter/nft_set_pipapo.c
> >
> > between commit:
> >
> > f0b3d338064e ("netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version")
> >
> > from the net tree and commit:
> >
> > b1bc08f6474f ("netfilter: nf_tables: prefer direct calls for set lookups")
> >
> > from the netfilter-next tree.
> >
> > I fixed it up (I just used the latter) and can carry the fix as necessary. This
> > is now fixed as far as linux-next is concerned, but any non trivial
> > conflicts should be mentioned to your upstream maintainer when your tree
> > is submitted for merging. You may also want to consider cooperating
> > with the maintainer of the conflicting tree to minimise any particularly
> > complex conflicts.
>
> This merge also needs the following merge resolution patch:
>
> From: Stephen Rothwell <[email protected]>
> Date: Wed, 19 May 2021 13:48:22 +1000
> Subject: [PATCH] fix up for merge involving nft_pipapo_lookup()
>
> Signed-off-by: Stephen Rothwell <[email protected]>
> ---
> net/netfilter/nft_set_pipapo.h | 2 --
> 1 file changed, 2 deletions(-)
>
> diff --git a/net/netfilter/nft_set_pipapo.h b/net/netfilter/nft_set_pipapo.h
> index d84afb8fa79a..25a75591583e 100644
> --- a/net/netfilter/nft_set_pipapo.h
> +++ b/net/netfilter/nft_set_pipapo.h
> @@ -178,8 +178,6 @@ struct nft_pipapo_elem {
>
> int pipapo_refill(unsigned long *map, int len, int rules, unsigned long *dst,
> union nft_pipapo_map_bucket *mt, bool match_only);
> -bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
> - const u32 *key, const struct nft_set_ext **ext);
>
> /**
> * pipapo_and_field_buckets_4bit() - Intersect 4-bit buckets
> --
> 2.30.2

Actually it appears to also need this:

diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h
index 789e9eadd76d..8652b2514e57 100644
--- a/include/net/netfilter/nf_tables_core.h
+++ b/include/net/netfilter/nf_tables_core.h
@@ -89,6 +89,8 @@ extern const struct nft_set_type nft_set_bitmap_type;
extern const struct nft_set_type nft_set_pipapo_type;
extern const struct nft_set_type nft_set_pipapo_avx2_type;

+bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
+ const u32 *key, const struct nft_set_ext **ext);
#ifdef CONFIG_RETPOLINE
bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
const u32 *key, const struct nft_set_ext **ext);
@@ -101,8 +103,6 @@ bool nft_hash_lookup_fast(const struct net *net,
const u32 *key, const struct nft_set_ext **ext);
bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
const u32 *key, const struct nft_set_ext **ext);
-bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
- const u32 *key, const struct nft_set_ext **ext);
bool nft_set_do_lookup(const struct net *net, const struct nft_set *set,
const u32 *key, const struct nft_set_ext **ext);
#else
diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
index 9addc0b447f7..dce866d93fee 100644
--- a/net/netfilter/nft_set_pipapo.c
+++ b/net/netfilter/nft_set_pipapo.c
@@ -408,7 +408,6 @@ int pipapo_refill(unsigned long *map, int len, int rules, unsigned long *dst,
*
* Return: true on match, false otherwise.
*/
-INDIRECT_CALLABLE_SCOPE
bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
const u32 *key, const struct nft_set_ext **ext)
{


--
Cheers,
Stephen Rothwell


Attachments:
(No filename) (499.00 B)
OpenPGP digital signature

2021-05-21 20:04:00

by Stefano Brivio

[permalink] [raw]
Subject: Re: linux-next: manual merge of the netfilter-next tree with the net tree

Hi,

On Fri, 21 May 2021 09:12:22 +1000
Stephen Rothwell <[email protected]> wrote:

> Hi all,
>
> On Wed, 19 May 2021 14:05:32 +1000 Stephen Rothwell <[email protected]> wrote:
> >
> > On Wed, 19 May 2021 09:56:27 +1000 Stephen Rothwell <[email protected]> wrote:
> > >
> > > Today's linux-next merge of the netfilter-next tree got a conflict in:
> > >
> > > net/netfilter/nft_set_pipapo.c
> > >
> > > between commit:
> > >
> > > f0b3d338064e ("netfilter: nft_set_pipapo_avx2: Add irq_fpu_usable() check, fallback to non-AVX2 version")
> > >
> > > from the net tree and commit:
> > >
> > > b1bc08f6474f ("netfilter: nf_tables: prefer direct calls for set lookups")
> > >
> > > from the netfilter-next tree.
> > >
> > > I fixed it up (I just used the latter) and can carry the fix as necessary. This
> > > is now fixed as far as linux-next is concerned, but any non trivial
> > > conflicts should be mentioned to your upstream maintainer when your tree
> > > is submitted for merging. You may also want to consider cooperating
> > > with the maintainer of the conflicting tree to minimise any particularly
> > > complex conflicts.
> >
> > This merge also needs the following merge resolution patch:
> >
> > From: Stephen Rothwell <[email protected]>
> > Date: Wed, 19 May 2021 13:48:22 +1000
> > Subject: [PATCH] fix up for merge involving nft_pipapo_lookup()
> >
> > Signed-off-by: Stephen Rothwell <[email protected]>
> > ---
> > net/netfilter/nft_set_pipapo.h | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/net/netfilter/nft_set_pipapo.h b/net/netfilter/nft_set_pipapo.h
> > index d84afb8fa79a..25a75591583e 100644
> > --- a/net/netfilter/nft_set_pipapo.h
> > +++ b/net/netfilter/nft_set_pipapo.h
> > @@ -178,8 +178,6 @@ struct nft_pipapo_elem {
> >
> > int pipapo_refill(unsigned long *map, int len, int rules, unsigned long *dst,
> > union nft_pipapo_map_bucket *mt, bool match_only);
> > -bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
> > - const u32 *key, const struct nft_set_ext **ext);
> >
> > /**
> > * pipapo_and_field_buckets_4bit() - Intersect 4-bit buckets
> > --
> > 2.30.2
>
> Actually it appears to also need this:

Thanks for the fix, and sorry for the mess. To retain the effect of
b1bc08f6474f ("netfilter: nf_tables: prefer direct calls for set lookups")
from nf-next, though,

> diff --git a/include/net/netfilter/nf_tables_core.h b/include/net/netfilter/nf_tables_core.h
> index 789e9eadd76d..8652b2514e57 100644
> --- a/include/net/netfilter/nf_tables_core.h
> +++ b/include/net/netfilter/nf_tables_core.h
> @@ -89,6 +89,8 @@ extern const struct nft_set_type nft_set_bitmap_type;
> extern const struct nft_set_type nft_set_pipapo_type;
> extern const struct nft_set_type nft_set_pipapo_avx2_type;
>
> +bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
> + const u32 *key, const struct nft_set_ext **ext);

while this looks correct to me (b1bc08f6474f adds the prototype
conditionally for CONFIG_RETPOLINE, f0b3d338064e adds it
unconditionally),

> #ifdef CONFIG_RETPOLINE
> bool nft_rhash_lookup(const struct net *net, const struct nft_set *set,
> const u32 *key, const struct nft_set_ext **ext);
> @@ -101,8 +103,6 @@ bool nft_hash_lookup_fast(const struct net *net,
> const u32 *key, const struct nft_set_ext **ext);
> bool nft_hash_lookup(const struct net *net, const struct nft_set *set,
> const u32 *key, const struct nft_set_ext **ext);
> -bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
> - const u32 *key, const struct nft_set_ext **ext);
> bool nft_set_do_lookup(const struct net *net, const struct nft_set *set,
> const u32 *key, const struct nft_set_ext **ext);
> #else
> diff --git a/net/netfilter/nft_set_pipapo.c b/net/netfilter/nft_set_pipapo.c
> index 9addc0b447f7..dce866d93fee 100644
> --- a/net/netfilter/nft_set_pipapo.c
> +++ b/net/netfilter/nft_set_pipapo.c
> @@ -408,7 +408,6 @@ int pipapo_refill(unsigned long *map, int len, int rules, unsigned long *dst,
> *
> * Return: true on match, false otherwise.
> */
> -INDIRECT_CALLABLE_SCOPE

this shouldn't be removed.

> bool nft_pipapo_lookup(const struct net *net, const struct nft_set *set,
> const u32 *key, const struct nft_set_ext **ext)
> {
>
>

Let me know if I should rather send a patch for linux-next (but it
might take me a bit).

--
Stefano