net: break include loop netdevice.h, dsa.h, devlink.h
There is an include loop between netdevice.h, dsa.h, devlink.h because of NETDEV_ALIGN, making it impossible to use devlink structures in dsa.h. Break this loop by taking dsa.h out of netdevice.h, add a forward declaration of dsa_switch_tree and netdev_set_default_ethtool_ops() function, which is what netdevice.h requires. No longer having dsa.h in netdevice.h means the includes in dsa.h no longer get included. This breaks a few other files which depend on these includes. Add these directly in the affected file. Signed-off-by: Andrew Lunn <andrew@lunn.ch> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:

committed by
David S. Miller

parent
0e42c72195
commit
c6e970a04b
@@ -468,6 +468,15 @@ static inline bool dsa_uses_tagged_protocol(struct dsa_switch_tree *dst)
|
||||
return dst->rcv != NULL;
|
||||
}
|
||||
|
||||
static inline bool netdev_uses_dsa(struct net_device *dev)
|
||||
{
|
||||
#if IS_ENABLED(CONFIG_NET_DSA)
|
||||
if (dev->dsa_ptr != NULL)
|
||||
return dsa_uses_tagged_protocol(dev->dsa_ptr);
|
||||
#endif
|
||||
return false;
|
||||
}
|
||||
|
||||
struct dsa_switch *dsa_switch_alloc(struct device *dev, size_t n);
|
||||
void dsa_unregister_switch(struct dsa_switch *ds);
|
||||
int dsa_register_switch(struct dsa_switch *ds, struct device *dev);
|
||||
|
Reference in New Issue
Block a user