net: dsa: export dsa_slave_dev_check
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>
This commit is contained in:
committed by
Jakub Kicinski
parent
f46b9b8ee8
commit
a5e3c9ba92
@@ -860,6 +860,7 @@ int register_dsa_notifier(struct notifier_block *nb);
|
|||||||
int unregister_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,
|
int call_dsa_notifiers(unsigned long val, struct net_device *dev,
|
||||||
struct dsa_notifier_info *info);
|
struct dsa_notifier_info *info);
|
||||||
|
bool dsa_slave_dev_check(const struct net_device *dev);
|
||||||
#else
|
#else
|
||||||
static inline int register_dsa_notifier(struct notifier_block *nb)
|
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;
|
return NOTIFY_DONE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool dsa_slave_dev_check(const struct net_device *dev)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
netdev_tx_t dsa_enqueue_skb(struct sk_buff *skb, struct net_device *dev);
|
netdev_tx_t dsa_enqueue_skb(struct sk_buff *skb, struct net_device *dev);
|
||||||
|
|||||||
@@ -184,7 +184,6 @@ extern const struct dsa_device_ops notag_netdev_ops;
|
|||||||
void dsa_slave_mii_bus_init(struct dsa_switch *ds);
|
void dsa_slave_mii_bus_init(struct dsa_switch *ds);
|
||||||
int dsa_slave_create(struct dsa_port *dp);
|
int dsa_slave_create(struct dsa_port *dp);
|
||||||
void dsa_slave_destroy(struct net_device *slave_dev);
|
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_suspend(struct net_device *slave_dev);
|
||||||
int dsa_slave_resume(struct net_device *slave_dev);
|
int dsa_slave_resume(struct net_device *slave_dev);
|
||||||
int dsa_slave_register_notifier(void);
|
int dsa_slave_register_notifier(void);
|
||||||
|
|||||||
@@ -1924,6 +1924,7 @@ bool dsa_slave_dev_check(const struct net_device *dev)
|
|||||||
{
|
{
|
||||||
return dev->netdev_ops == &dsa_slave_netdev_ops;
|
return dev->netdev_ops == &dsa_slave_netdev_ops;
|
||||||
}
|
}
|
||||||
|
EXPORT_SYMBOL_GPL(dsa_slave_dev_check);
|
||||||
|
|
||||||
static int dsa_slave_changeupper(struct net_device *dev,
|
static int dsa_slave_changeupper(struct net_device *dev,
|
||||||
struct netdev_notifier_changeupper_info *info)
|
struct netdev_notifier_changeupper_info *info)
|
||||||
|
|||||||
Reference in New Issue
Block a user