Commit f7fb92ac authored by David S. Miller's avatar David S. Miller

Merge branch 'bridge-mrp-Update-MRP_PORT_ROLE'

Horatiu Vultur says:

====================
bridge: mrp: Update MRP_PORT_ROLE

This patch series does the following:
- fixes the enum br_mrp_port_role_type. It removes the port role none(0x2)
  because this is in conflict with the standard. The standard defines the
  interconnect port role as value 0x2.
- adds checks regarding current defined port roles: primary(0x0) and
  secondary(0x1).

v2:
 - add the validation code when setting the port role.
====================
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parents 26ac10be 7882c895
...@@ -36,7 +36,6 @@ enum br_mrp_port_state_type { ...@@ -36,7 +36,6 @@ enum br_mrp_port_state_type {
enum br_mrp_port_role_type { enum br_mrp_port_role_type {
BR_MRP_PORT_ROLE_PRIMARY, BR_MRP_PORT_ROLE_PRIMARY,
BR_MRP_PORT_ROLE_SECONDARY, BR_MRP_PORT_ROLE_SECONDARY,
BR_MRP_PORT_ROLE_NONE,
}; };
enum br_mrp_tlv_header_type { enum br_mrp_tlv_header_type {
......
...@@ -411,10 +411,16 @@ int br_mrp_set_port_role(struct net_bridge_port *p, ...@@ -411,10 +411,16 @@ int br_mrp_set_port_role(struct net_bridge_port *p,
if (!mrp) if (!mrp)
return -EINVAL; return -EINVAL;
if (role == BR_MRP_PORT_ROLE_PRIMARY) switch (role) {
case BR_MRP_PORT_ROLE_PRIMARY:
rcu_assign_pointer(mrp->p_port, p); rcu_assign_pointer(mrp->p_port, p);
else break;
case BR_MRP_PORT_ROLE_SECONDARY:
rcu_assign_pointer(mrp->s_port, p); rcu_assign_pointer(mrp->s_port, p);
break;
default:
return -EINVAL;
}
br_mrp_port_switchdev_set_role(p, role); br_mrp_port_switchdev_set_role(p, role);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment