lkml.org 
[lkml]   [2022]   [Apr]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.17 0691/1126] netfilter: conntrack: Add and use nf_ct_set_auto_assign_helper_warned()
    Date
    From: Phil Sutter <phil@nwl.cc>

    [ Upstream commit 31d0bb9763efad30377505f3467f958d1ebe1e3d ]

    The function sets the pernet boolean to avoid the spurious warning from
    nf_ct_lookup_helper() when assigning conntrack helpers via nftables.

    Fixes: 1a64edf54f55 ("netfilter: nft_ct: add helper set support")
    Signed-off-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/net/netfilter/nf_conntrack_helper.h | 1 +
    net/netfilter/nf_conntrack_helper.c | 6 ++++++
    net/netfilter/nft_ct.c | 3 +++
    3 files changed, 10 insertions(+)

    diff --git a/include/net/netfilter/nf_conntrack_helper.h b/include/net/netfilter/nf_conntrack_helper.h
    index 37f0fbefb060..9939c366f720 100644
    --- a/include/net/netfilter/nf_conntrack_helper.h
    +++ b/include/net/netfilter/nf_conntrack_helper.h
    @@ -177,4 +177,5 @@ void nf_nat_helper_unregister(struct nf_conntrack_nat_helper *nat);
    int nf_nat_helper_try_module_get(const char *name, u16 l3num,
    u8 protonum);
    void nf_nat_helper_put(struct nf_conntrack_helper *helper);
    +void nf_ct_set_auto_assign_helper_warned(struct net *net);
    #endif /*_NF_CONNTRACK_HELPER_H*/
    diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
    index ae4488a13c70..ceb38a7b37cb 100644
    --- a/net/netfilter/nf_conntrack_helper.c
    +++ b/net/netfilter/nf_conntrack_helper.c
    @@ -556,6 +556,12 @@ static const struct nf_ct_ext_type helper_extend = {
    .id = NF_CT_EXT_HELPER,
    };

    +void nf_ct_set_auto_assign_helper_warned(struct net *net)
    +{
    + nf_ct_pernet(net)->auto_assign_helper_warned = true;
    +}
    +EXPORT_SYMBOL_GPL(nf_ct_set_auto_assign_helper_warned);
    +
    void nf_conntrack_helper_pernet_init(struct net *net)
    {
    struct nf_conntrack_net *cnet = nf_ct_pernet(net);
    diff --git a/net/netfilter/nft_ct.c b/net/netfilter/nft_ct.c
    index 5adf8bb628a8..9c7472af9e4a 100644
    --- a/net/netfilter/nft_ct.c
    +++ b/net/netfilter/nft_ct.c
    @@ -1041,6 +1041,9 @@ static int nft_ct_helper_obj_init(const struct nft_ctx *ctx,
    if (err < 0)
    goto err_put_helper;

    + /* Avoid the bogus warning, helper will be assigned after CT init */
    + nf_ct_set_auto_assign_helper_warned(ctx->net);
    +
    return 0;

    err_put_helper:
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-04-05 14:27    [W:4.183 / U:0.044 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site