[][kernel][common][hnat][Fix the problem that deleting wifi subinterface fails]
[Description]
Fix the problem that deleting wifi subinterface fails.
Fix duplication of adding the same subinterface to whnat_interface.
The previous code will fail when encountering the following situations:
1:Add subinterface to whnat_interface and then delete it,
finally, delete the subinterface failed.
2:Add wifi subinterface(eg:rax0.200) to whnat_interface, then rax0 down,
add the same wifi subinterface to whnat_interface through echo command.
there are two identical wifi subinrefaces in whnat_interface.
The patch fix these.
[Release-log]
N/A
Change-Id: I6ae98fbfc12522cfd6528df81509e5bc30a87e76
Reviewed-on: https://gerrit.mediatek.inc/c/openwrt/feeds/mtk_openwrt_feeds/+/6873054
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
index 7c08cfd..9c0d691 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_debugfs.c
@@ -1313,6 +1313,7 @@
mtk_ppe_dev_unregister_hook(dev);
pr_info("unregister wifi extern if = %s\n", dev->name);
}
+ dev_put(dev);
} else {
pr_info("no such device!\n");
}
diff --git a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
index 4b11373..9c68a54 100644
--- a/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
+++ b/target/linux/mediatek/files-5.4/drivers/net/ethernet/mediatek/mtk_hnat/hnat_nf_hook.c
@@ -1968,6 +1968,9 @@
__func__, dev->name, i);
return;
}
+ }
+
+ for (i = 1; i < MAX_IF_NUM; i++) {
if (!hnat_priv->wifi_hook_if[i]) {
if (find_extif_from_devname(dev->name)) {
extif_set_dev(dev);