On Mon, Nov 16, 2020 at 6:00 AM Martin Schiller <ms@xxxxxxxxxx> wrote: > > This makes it possible to handle carrier lost and detection. > In case of carrier lost, we shutdown layer 3 and flush all sessions. > > @@ -275,6 +275,19 @@ static int x25_device_event(struct notifier_block *this, unsigned long event, > dev->name); > x25_link_device_remove(dev); > break; > + case NETDEV_CHANGE: > + pr_debug("X.25: got event NETDEV_CHANGE for device: %s\n", > + dev->name); > + if (!netif_carrier_ok(dev)) { > + pr_debug("X.25: Carrier lost -> set link state down: %s\n", > + dev->name); > + nb = x25_get_neigh(dev); > + if (nb) { > + x25_link_terminated(nb); > + x25_neigh_put(nb); > + } > + } > + break; > } > } I think L2 will notify L3 if the L2 connection is terminated. Is this patch necessary?