diff mbox series

[SRU,J:linux-bluefield,v1,3/9] xfrm: Flush xfrm state synchronously on netdev close or unregister

Message ID 1703485231-27098-4-git-send-email-yifeid@nvidia.com
State New
Headers show
Series Kernel panic in restart driver after configuring IPsec full offload | expand

Commit Message

Tony Duan Dec. 25, 2023, 6:20 a.m. UTC
From: Jianbo Liu <jianbol@nvidia.com>

BugLink: https://bugs.launchpad.net/bugs/2044427

When NETDEV_DOWN or NETDEV_UNREGISTER is received, netdev is being
closed or unregistered, and all xfrm_states are being flushed.
It's better to bypass GC and destroy them directly, so the hardware
resources for those offloaded xfrm_state can be safely freed.

Fixes: d77e38e612a0 ("xfrm: Add an IPsec hardware offloading API")
Signed-off-by: Jianbo Liu <jianbol@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
(cherry picked from commit ebf036124a1df1eed16ab752212854495cbb8264)
Signed-off-by: Tony Duan <yifeid@nvidia.com>
---
 net/xfrm/xfrm_state.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff mbox series

Patch

diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
index 05686ac..950761a 100644
--- a/net/xfrm/xfrm_state.c
+++ b/net/xfrm/xfrm_state.c
@@ -870,7 +870,7 @@  int xfrm_dev_state_flush(struct net *net, struct net_device *dev, bool task_vali
 				err = xfrm_state_delete(x);
 				xfrm_audit_state_delete(x, err ? 0 : 1,
 							task_valid);
-				xfrm_state_put(x);
+				xfrm_state_put_sync(x);
 				if (!err)
 					cnt++;