flow_offload: add reoffload process to update hw_count
Add reoffload process to update hw_count when driver is inserted or removed. We will delete the action if it is with skip_sw flag and not offloaded to any hardware in reoffload process. When reoffloading actions, we still offload the actions that are added independent of filters. Signed-off-by: Baowen Zheng <baowen.zheng@corigine.com> Signed-off-by: Louis Peens <louis.peens@corigine.com> Signed-off-by: Simon Horman <simon.horman@corigine.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
e8cb5bcf6e
commit
13926d19a1
@@ -1,6 +1,7 @@
|
||||
/* SPDX-License-Identifier: GPL-2.0 */
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/slab.h>
|
||||
#include <net/act_api.h>
|
||||
#include <net/flow_offload.h>
|
||||
#include <linux/rtnetlink.h>
|
||||
#include <linux/mutex.h>
|
||||
@@ -417,6 +418,8 @@ int flow_indr_dev_register(flow_indr_block_bind_cb_t *cb, void *cb_priv)
|
||||
existing_qdiscs_register(cb, cb_priv);
|
||||
mutex_unlock(&flow_indr_block_lock);
|
||||
|
||||
tcf_action_reoffload_cb(cb, cb_priv, true);
|
||||
|
||||
return 0;
|
||||
}
|
||||
EXPORT_SYMBOL(flow_indr_dev_register);
|
||||
@@ -469,6 +472,7 @@ void flow_indr_dev_unregister(flow_indr_block_bind_cb_t *cb, void *cb_priv,
|
||||
__flow_block_indr_cleanup(release, cb_priv, &cleanup_list);
|
||||
mutex_unlock(&flow_indr_block_lock);
|
||||
|
||||
tcf_action_reoffload_cb(cb, cb_priv, false);
|
||||
flow_block_indr_notify(&cleanup_list);
|
||||
kfree(indr_dev);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user