net: lapbether: Close the LAPB device before its underlying Ethernet device closes
authorXie He <xie.he.0141@gmail.com>
Thu, 18 Mar 2021 19:07:47 +0000 (12:07 -0700)
committerDavid S. Miller <davem@davemloft.net>
Fri, 19 Mar 2021 02:13:42 +0000 (19:13 -0700)
When a virtual LAPB device's underlying Ethernet device closes, the LAPB
device is also closed.

However, currently the LAPB device is closed after the Ethernet device
closes. It would be better to close it before the Ethernet device closes.
This would allow the LAPB device to transmit a last frame to notify the
other side that it is disconnecting.

Signed-off-by: Xie He <xie.he.0141@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wan/lapbether.c

index 8fda044..45d7428 100644 (file)
@@ -421,8 +421,8 @@ static int lapbeth_device_event(struct notifier_block *this,
                if (lapbeth_get_x25_dev(dev) == NULL)
                        lapbeth_new_device(dev);
                break;
-       case NETDEV_DOWN:       
-               /* ethernet device closed -> close LAPB interface */
+       case NETDEV_GOING_DOWN:
+               /* ethernet device closes -> close LAPB interface */
                lapbeth = lapbeth_get_x25_dev(dev);
                if (lapbeth) 
                        dev_close(lapbeth->axdev);