[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20200611110537.GA6047@salvia>
Date: Thu, 11 Jun 2020 13:05:37 +0200
From: Pablo Neira Ayuso <pablo@...filter.org>
To: wenxu@...oud.cn
Cc: netdev@...r.kernel.org, davem@...emloft.net
Subject: Re: [PATCH net v2] flow_offload: fix incorrect cleanup for indirect
flow_blocks
On Thu, Jun 11, 2020 at 06:03:17PM +0800, wenxu@...oud.cn wrote:
[...]
> diff --git a/net/core/flow_offload.c b/net/core/flow_offload.c
> index 0cfc35e..40eaf64 100644
> --- a/net/core/flow_offload.c
> +++ b/net/core/flow_offload.c
> @@ -372,14 +372,13 @@ int flow_indr_dev_register(flow_indr_block_bind_cb_t *cb, void *cb_priv)
> }
> EXPORT_SYMBOL(flow_indr_dev_register);
>
> -static void __flow_block_indr_cleanup(flow_setup_cb_t *setup_cb, void *cb_priv,
> +static void __flow_block_indr_cleanup(void (*release)(void *cb_priv),
> struct list_head *cleanup_list)
> {
> struct flow_block_cb *this, *next;
>
> list_for_each_entry_safe(this, next, &flow_block_indr_list, indr.list) {
> - if (this->cb == setup_cb &&
> - this->cb_priv == cb_priv) {
> + if (this->release == release) {
Are you sure this is correct?
This will remove _all_ existing representors in this driver.
This will not work if only one representor is gone?
Please, describe what scenario you are trying to fix.
Thank you.
Powered by blists - more mailing lists