summaryrefslogtreecommitdiffstats
path: root/net/bridge
diff options
context:
space:
mode:
authorHoratiu Vultur <horatiu.vultur@microchip.com>2021-06-04 12:37:47 +0200
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2021-07-19 09:44:46 +0200
commita4a86400c68c5228ebcd4d255063d4599d4243e4 (patch)
treed21d5f915287a8d05d64b2aa514e2cef7dc55dd0 /net/bridge
parentcc4f0a9d5aa1b5abffb2366a0b37c37806362fe8 (diff)
downloadlinux-stable-a4a86400c68c5228ebcd4d255063d4599d4243e4.tar.gz
linux-stable-a4a86400c68c5228ebcd4d255063d4599d4243e4.tar.bz2
linux-stable-a4a86400c68c5228ebcd4d255063d4599d4243e4.zip
net: bridge: mrp: Update ring transitions.
[ Upstream commit fcb34635854a5a5814227628867ea914a9805384 ] According to the standard IEC 62439-2, the number of transitions needs to be counted for each transition 'between' ring state open and ring state closed and not from open state to closed state. Therefore fix this for both ring and interconnect ring. Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'net/bridge')
-rw-r--r--net/bridge/br_mrp.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/net/bridge/br_mrp.c b/net/bridge/br_mrp.c
index d1336a7ad7ff..3259f5480127 100644
--- a/net/bridge/br_mrp.c
+++ b/net/bridge/br_mrp.c
@@ -607,8 +607,7 @@ int br_mrp_set_ring_state(struct net_bridge *br,
if (!mrp)
return -EINVAL;
- if (mrp->ring_state == BR_MRP_RING_STATE_CLOSED &&
- state->ring_state != BR_MRP_RING_STATE_CLOSED)
+ if (mrp->ring_state != state->ring_state)
mrp->ring_transitions++;
mrp->ring_state = state->ring_state;
@@ -690,8 +689,7 @@ int br_mrp_set_in_state(struct net_bridge *br, struct br_mrp_in_state *state)
if (!mrp)
return -EINVAL;
- if (mrp->in_state == BR_MRP_IN_STATE_CLOSED &&
- state->in_state != BR_MRP_IN_STATE_CLOSED)
+ if (mrp->in_state != state->in_state)
mrp->in_transitions++;
mrp->in_state = state->in_state;