diff options
author | Horatiu Vultur <horatiu.vultur@microchip.com> | 2021-06-04 12:37:47 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2021-06-04 23:41:28 +0200 |
commit | fcb34635854a5a5814227628867ea914a9805384 (patch) | |
tree | 981f6f2d8f81282cf69bcf31b077e532e0499a95 /net/bridge/br_mrp.c | |
parent | net: enetc: use get/put_unaligned helpers for MAC address handling (diff) | |
download | linux-fcb34635854a5a5814227628867ea914a9805384.tar.xz linux-fcb34635854a5a5814227628867ea914a9805384.zip |
net: bridge: mrp: Update ring transitions.
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>
Diffstat (limited to 'net/bridge/br_mrp.c')
-rw-r--r-- | net/bridge/br_mrp.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/net/bridge/br_mrp.c b/net/bridge/br_mrp.c index cd2b1e424e54..f7012b7d7ce4 100644 --- a/net/bridge/br_mrp.c +++ b/net/bridge/br_mrp.c @@ -627,8 +627,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; @@ -715,8 +714,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; |