If we detect that under lying carrier detects errors and goes down, we reset the bearer immediately.
Signed-off-by: Parthasarathy Bhuvaragan <[email protected]> --- net/tipc/bearer.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/net/tipc/bearer.c b/net/tipc/bearer.c index 33a5bdfbef76..fa233d2c6987 100644 --- a/net/tipc/bearer.c +++ b/net/tipc/bearer.c @@ -629,15 +629,18 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt, switch (evt) { case NETDEV_CHANGE: - if (netif_carrier_ok(dev)) + if (netif_carrier_ok(dev)) { + test_and_set_bit_lock(0, &b->up); break; - case NETDEV_UP: - test_and_set_bit_lock(0, &b->up); - break; + } + /* fall thru' */ case NETDEV_GOING_DOWN: clear_bit_unlock(0, &b->up); tipc_reset_bearer(net, b); break; + case NETDEV_UP: + test_and_set_bit_lock(0, &b->up); + break; case NETDEV_CHANGEMTU: if (tipc_mtu_bad(dev, 0)) { bearer_disable(net, b); -- 2.1.4 ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, Slashdot.org! http://sdm.link/slashdot _______________________________________________ tipc-discussion mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/tipc-discussion
