wlan-ap-Telecominfraproject/feeds/qca-wifi-7/ipq53xx/patches-6.1/0257-linux-Delete-fdb-entry-using-netdev.patch
John Crispin 68cf54d9f7 qca-wifi-7: update to ath12.5.5
Signed-off-by: John Crispin <john@phrozen.org>
2025-02-27 12:45:52 +01:00

56 lines
1.8 KiB
Diff

From 4ea51dc9cc41cc22e7dbb0d41c68fc133c924adb Mon Sep 17 00:00:00 2001
From: Subhranil Choudhury <subhrani@codeaurora.org>
Date: Mon, 6 Apr 2020 01:22:29 +0530
Subject: [PATCH 257/281] linux: Delete fdb entry using netdev
Added and exported a new API to delete a bridge FDB entry
using net device.
Change-Id: Icc7c7f8608083edf02248cd25ee6a88cad81dd76
Signed-off-by: Subhranil Choudhury <subhrani@codeaurora.org>
---
include/linux/if_bridge.h | 2 ++
net/bridge/br_fdb.c | 13 +++++++++++++
2 files changed, 15 insertions(+)
diff --git a/include/linux/if_bridge.h b/include/linux/if_bridge.h
index 41c7a7b5a7c4..a2fafbd5b6af 100644
--- a/include/linux/if_bridge.h
+++ b/include/linux/if_bridge.h
@@ -253,6 +253,8 @@ struct br_fdb_event {
extern void br_fdb_register_notify(struct notifier_block *nb);
extern void br_fdb_unregister_notify(struct notifier_block *nb);
extern struct net_device *br_fdb_bridge_dev_get_and_hold(struct net_bridge *br);
+extern int br_fdb_delete_by_netdev(struct net_device *dev,
+ const unsigned char *addr, u16 vid);
typedef struct net_bridge_port *br_get_dst_hook_t(
const struct net_bridge_port *src,
diff --git a/net/bridge/br_fdb.c b/net/bridge/br_fdb.c
index 95a038a20c03..6c9ee0d28194 100644
--- a/net/bridge/br_fdb.c
+++ b/net/bridge/br_fdb.c
@@ -1365,6 +1365,19 @@ static int __br_fdb_delete(struct net_bridge *br,
return err;
}
+int br_fdb_delete_by_netdev(struct net_device *dev,
+ const unsigned char *addr, u16 vid)
+{
+ int err;
+
+ rtnl_lock();
+ err = br_fdb_delete(NULL, NULL, dev, addr, vid);
+ rtnl_unlock();
+
+ return err;
+}
+EXPORT_SYMBOL_GPL(br_fdb_delete_by_netdev);
+
/* Remove neighbor entry with RTM_DELNEIGH */
int br_fdb_delete(struct ndmsg *ndm, struct nlattr *tb[],
struct net_device *dev,
--
2.17.1