mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
net: bridge: switchdev: differentiate new VLANs from changed ones
br_switchdev_port_vlan_add() currently emits a SWITCHDEV_PORT_OBJ_ADD event with a SWITCHDEV_OBJ_ID_PORT_VLAN for 2 distinct cases: - a struct net_bridge_vlan got created - an existing struct net_bridge_vlan was modified This makes it impossible for switchdev drivers to properly balance PORT_OBJ_ADD with PORT_OBJ_DEL events, so if we want to allow that to happen, we must provide a way for drivers to distinguish between a VLAN with changed flags and a new one. Annotate struct switchdev_obj_port_vlan with a "bool changed" that distinguishes the 2 cases above. Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
27c5f74c7b
commit
8d23a54f5b
@@ -81,6 +81,13 @@ struct switchdev_obj_port_vlan {
|
||||
struct switchdev_obj obj;
|
||||
u16 flags;
|
||||
u16 vid;
|
||||
/* If set, the notifier signifies a change of one of the following
|
||||
* flags for a VLAN that already exists:
|
||||
* - BRIDGE_VLAN_INFO_PVID
|
||||
* - BRIDGE_VLAN_INFO_UNTAGGED
|
||||
* Entries with BRIDGE_VLAN_INFO_BRENTRY unset are not notified at all.
|
||||
*/
|
||||
bool changed;
|
||||
};
|
||||
|
||||
#define SWITCHDEV_OBJ_PORT_VLAN(OBJ) \
|
||||
|
Reference in New Issue
Block a user