Commit 7882c895 authored by Horatiu Vultur's avatar Horatiu Vultur Committed by David S. Miller
Browse files

bridge: mrp: Validate when setting the port role



This patch adds specific checks for primary(0x0) and secondary(0x1) when
setting the port role. For any other value the function
'br_mrp_set_port_role' will return -EINVAL.

Fixes: 20f6a05e ("bridge: mrp: Rework the MRP netlink interface")
Signed-off-by: default avatarHoratiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 2464bc7c
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -411,10 +411,16 @@ int br_mrp_set_port_role(struct net_bridge_port *p,
	if (!mrp)
		return -EINVAL;

	if (role == BR_MRP_PORT_ROLE_PRIMARY)
	switch (role) {
	case BR_MRP_PORT_ROLE_PRIMARY:
		rcu_assign_pointer(mrp->p_port, p);
	else
		break;
	case BR_MRP_PORT_ROLE_SECONDARY:
		rcu_assign_pointer(mrp->s_port, p);
		break;
	default:
		return -EINVAL;
	}

	br_mrp_port_switchdev_set_role(p, role);