lkml.org 
[lkml]   [2022]   [Aug]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 154/779] netfilter: nf_tables: add rescheduling points during loop detection walks
    Date
    From: Florian Westphal <fw@strlen.de>

    [ Upstream commit 81ea010667417ef3f218dfd99b69769fe66c2b67 ]

    Add explicit rescheduling points during ruleset walk.

    Switching to a faster algorithm is possible but this is a much
    smaller change, suitable for nf tree.

    Link: https://bugzilla.netfilter.org/show_bug.cgi?id=1460
    Signed-off-by: Florian Westphal <fw@strlen.de>
    Acked-by: Pablo Neira Ayuso <pablo@netfilter.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    net/netfilter/nf_tables_api.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c
    index 13d14fcc2371..3d52a08bd560 100644
    --- a/net/netfilter/nf_tables_api.c
    +++ b/net/netfilter/nf_tables_api.c
    @@ -3248,6 +3248,8 @@ int nft_chain_validate(const struct nft_ctx *ctx, const struct nft_chain *chain)
    if (err < 0)
    return err;
    }
    +
    + cond_resched();
    }

    return 0;
    @@ -9225,9 +9227,13 @@ static int nf_tables_check_loops(const struct nft_ctx *ctx,
    break;
    }
    }
    +
    + cond_resched();
    }

    list_for_each_entry(set, &ctx->table->sets, list) {
    + cond_resched();
    +
    if (!nft_is_active_next(ctx->net, set))
    continue;
    if (!(set->flags & NFT_SET_MAP) ||
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-08-15 20:33    [W:3.782 / U:0.476 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site