Commit 94b6ddce authored by Parthasarathy Bhuvaragan's avatar Parthasarathy Bhuvaragan Committed by David S. Miller

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: default avatarParthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Signed-off-by: default avatarJon Maloy <jon.maloy@ericsson.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 92ef12b3
...@@ -609,16 +609,18 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt, ...@@ -609,16 +609,18 @@ static int tipc_l2_device_event(struct notifier_block *nb, unsigned long evt,
switch (evt) { switch (evt) {
case NETDEV_CHANGE: case NETDEV_CHANGE:
if (netif_carrier_ok(dev)) if (netif_carrier_ok(dev) && netif_oper_up(dev)) {
test_and_set_bit_lock(0, &b->up);
break; break;
/* else: fall through */ }
case NETDEV_UP: /* fall through */
test_and_set_bit_lock(0, &b->up);
break;
case NETDEV_GOING_DOWN: case NETDEV_GOING_DOWN:
clear_bit_unlock(0, &b->up); clear_bit_unlock(0, &b->up);
tipc_reset_bearer(net, b); tipc_reset_bearer(net, b);
break; break;
case NETDEV_UP:
test_and_set_bit_lock(0, &b->up);
break;
case NETDEV_CHANGEMTU: case NETDEV_CHANGEMTU:
if (tipc_mtu_bad(dev, 0)) { if (tipc_mtu_bad(dev, 0)) {
bearer_disable(net, b); bearer_disable(net, b);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment