net: dsa: export dsa_slave_dev_check
authorVladimir Oltean <vladimir.oltean@nxp.com>
Thu, 7 Jan 2021 01:24:01 +0000 (03:24 +0200)
committerJakub Kicinski <kuba@kernel.org>
Thu, 7 Jan 2021 23:42:07 +0000 (15:42 -0800)
Using the NETDEV_CHANGEUPPER notifications, drivers can be aware when
they are enslaved to e.g. a bridge by calling netif_is_bridge_master().

Export this helper from DSA to get the equivalent functionality of
determining whether the upper interface of a CHANGEUPPER notifier is a
DSA switch interface or not.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Acked-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
include/net/dsa.h
net/dsa/dsa_priv.h
net/dsa/slave.c

index e92a09c77f9675cda890d41601614435a3dd57ff..e218eca128d1219fbe56956419d3be011f32c876 100644 (file)
@@ -860,6 +860,7 @@ int register_dsa_notifier(struct notifier_block *nb);
 int unregister_dsa_notifier(struct notifier_block *nb);
 int call_dsa_notifiers(unsigned long val, struct net_device *dev,
                       struct dsa_notifier_info *info);
+bool dsa_slave_dev_check(const struct net_device *dev);
 #else
 static inline int register_dsa_notifier(struct notifier_block *nb)
 {
@@ -876,6 +877,11 @@ static inline int call_dsa_notifiers(unsigned long val, struct net_device *dev,
 {
        return NOTIFY_DONE;
 }
+
+static inline bool dsa_slave_dev_check(const struct net_device *dev)
+{
+       return false;
+}
 #endif
 
 netdev_tx_t dsa_enqueue_skb(struct sk_buff *skb, struct net_device *dev);
index c04225f74929b7c0c79c7aef45d643675f9e8d90..4f1bbaab72f27acea6fb2b41a1b5e80e1d653d48 100644 (file)
@@ -184,7 +184,6 @@ extern const struct dsa_device_ops notag_netdev_ops;
 void dsa_slave_mii_bus_init(struct dsa_switch *ds);
 int dsa_slave_create(struct dsa_port *dp);
 void dsa_slave_destroy(struct net_device *slave_dev);
-bool dsa_slave_dev_check(const struct net_device *dev);
 int dsa_slave_suspend(struct net_device *slave_dev);
 int dsa_slave_resume(struct net_device *slave_dev);
 int dsa_slave_register_notifier(void);
index 456576f75a50781f3e0bfeadc759fb52bf54cd42..d7f9fbb93589fc5d37e898f5ccba7f8b2952ef5b 100644 (file)
@@ -1924,6 +1924,7 @@ bool dsa_slave_dev_check(const struct net_device *dev)
 {
        return dev->netdev_ops == &dsa_slave_netdev_ops;
 }
+EXPORT_SYMBOL_GPL(dsa_slave_dev_check);
 
 static int dsa_slave_changeupper(struct net_device *dev,
                                 struct netdev_notifier_changeupper_info *info)