Re: [PATCH v3 net-next 2/4] net: dsa: Link aggregation support
From: Tobias Waldekranz <tobias@waldekranz.com>
Date: 2020-12-02 21:30:40
On Wed, Dec 02, 2020 at 10:58, Jakub Kicinski [off-list ref] wrote:
On Wed, 2 Dec 2020 10:13:54 +0100 Tobias Waldekranz wrote:quoted
Monitor the following events and notify the driver when: - A DSA port joins/leaves a LAG. - A LAG, made up of DSA ports, joins/leaves a bridge. - A DSA port in a LAG is enabled/disabled (enabled meaning "distributing" in 802.3ad LACP terms). Each LAG interface to which a DSA port is attached is represented by a `struct dsa_lag` which is globally reachable from the switch tree and from each associated port. When a LAG joins a bridge, the DSA subsystem will treat that as each individual port joining the bridge. The driver may look at the port's LAG pointer to see if it is associated with any LAG, if that is required. This is analogue to how switchdev events are replicated out to all lower devices when reaching e.g. a LAG. Signed-off-by: Tobias Waldekranz <tobias@waldekranz.com>Any idea where this is coming from? net/dsa/slave.c: note: in included file: net/dsa/dsa_priv.h:194:31: error: incompatible types in comparison expression (different address spaces): net/dsa/dsa_priv.h:194:31: struct net_device [noderef] __rcu * net/dsa/dsa_priv.h:194:31: struct net_device *
Sorry about this. I missed an rtnl_dereference in the refactor between v2->v3. I have now integrated sparse into my workflow so at least this should not happen again.