mirror of
https://gitee.com/bianbu-linux/linux-6.6
synced 2025-04-24 14:07:52 -04: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:
parent
27c5f74c7b
commit
8d23a54f5b
4 changed files with 17 additions and 9 deletions
|
@ -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) \
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue