diff options
author | Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com> | 2018-09-25 15:56:57 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2018-09-25 23:48:56 -0400 |
commit | 94b6ddce71780575fbbf9d2c36afc8440e61a281 (patch) | |
tree | 30b302300b0ddf583a6b1d0a517bcdca866bb5fb | |
parent | 92ef12b32feab8f277b69e9fb89ede2796777f4d (diff) |
tipc: reset bearer if device carrier not ok
If we detect that under lying carrier detects errors and goes down,
we reset the bearer.
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Signed-off-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/tipc/bearer.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 418f03d0be90..645c16052052 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c | |||
@@ -609,16 +609,18 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt, | |||
609 | 609 | ||
610 | switch (evt) { | 610 | switch (evt) { |
611 | case NETDEV_CHANGE: | 611 | case NETDEV_CHANGE: |
612 | if (netif_carrier_ok(dev)) | 612 | if (netif_carrier_ok(dev) && netif_oper_up(dev)) { |
613 | test_and_set_bit_lock(0, &b->up); | ||
613 | break; | 614 | break; |
614 | /* else: fall through */ | 615 | } |
615 | case NETDEV_UP: | 616 | /* fall through */ |
616 | test_and_set_bit_lock(0, &b->up); | ||
617 | break; | ||
618 | case NETDEV_GOING_DOWN: | 617 | case NETDEV_GOING_DOWN: |
619 | clear_bit_unlock(0, &b->up); | 618 | clear_bit_unlock(0, &b->up); |
620 | tipc_reset_bearer(net, b); | 619 | tipc_reset_bearer(net, b); |
621 | break; | 620 | break; |
621 | case NETDEV_UP: | ||
622 | test_and_set_bit_lock(0, &b->up); | ||
623 | break; | ||
622 | case NETDEV_CHANGEMTU: | 624 | case NETDEV_CHANGEMTU: |
623 | if (tipc_mtu_bad(dev, 0)) { | 625 | if (tipc_mtu_bad(dev, 0)) { |
624 | bearer_disable(net, b); | 626 | bearer_disable(net, b); |