In many cases, it's not easily possible for user space to know, which devices properly support hardware offload. Even if a device supports hardware flow offload, it is not guaranteed that it will actually be able to handle the flows for which hardware offload is requested. Ignoring errors on the FLOW_BLOCK_BIND makes it a lot easier to set up configurations that use hardware offload where possible and gracefully fall back to software offload for everything else. Cc: Jo-Philipp Wich <jo@xxxxxxx> Signed-off-by: Felix Fietkau <nbd@xxxxxxxx> --- net/netfilter/nf_tables_api.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/net/netfilter/nf_tables_api.c b/net/netfilter/nf_tables_api.c index 16c3a39689f4..9d4528f0aa12 100644 --- a/net/netfilter/nf_tables_api.c +++ b/net/netfilter/nf_tables_api.c @@ -7323,11 +7323,9 @@ static int nft_register_flowtable_net_hooks(struct net *net, } } - err = flowtable->data.type->setup(&flowtable->data, - hook->ops.dev, - FLOW_BLOCK_BIND); - if (err < 0) - goto err_unregister_net_hooks; + flowtable->data.type->setup(&flowtable->data, + hook->ops.dev, + FLOW_BLOCK_BIND); err = nf_register_net_hook(net, &hook->ops); if (err < 0) { -- 2.36.1