[OEM-5.6][SRU][PATCHv2 0/1] l2tp: remove skb_dst_set() from l2tp_xmit_skb()

Po-Hsu Lin po-hsu.lin at canonical.com
Thu Mar 25 07:39:27 UTC 2021


v2: update bug link and patch title

[Impact]
While debugging bug 1880631, I found that this l2tp.sh test from
kselftest/net will cause the dmesg output on Focal OEM 5.6 kernel
flooded with:
"unregister_netdevice: waiting for eth0 to become free. Usage count = 1"
for about every 10 seconds.

Test log:
$ sudo ./l2tp.sh
TEST: IPv4 basic L2TP tunnel [ OK ]
TEST: IPv4 route through L2TP tunnel [ OK ]
TEST: IPv6 basic L2TP tunnel [ OK ]
TEST: IPv6 route through L2TP tunnel [ OK ]
TEST: IPv4 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 basic L2TP tunnel [ OK ]
TEST: IPv4 route through L2TP tunnel [ OK ]
TEST: IPv6 basic L2TP tunnel - with IPsec [ OK ]
TEST: IPv6 route through L2TP tunnel - with IPsec [ OK ]
TEST: IPv4 basic L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv4 route through L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv6 basic L2TP tunnel - after IPsec teardown [ OK ]
TEST: IPv6 route through L2TP tunnel - after IPsec teardown [ OK ]

Tests passed: 16
Tests failed: 0

dmesg output:
$ dmesg
[ 708.560589] eth1: renamed from tmp
[ 708.587396] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 708.587472] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 708.616950] eth2: renamed from tmp
[ 708.643341] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
[ 708.687057] l2tp_core: L2TP core driver, V2.0
[ 708.689380] l2tp_netlink: L2TP netlink interface
[ 708.695479] l2tp_ip: L2TP IP encapsulation support (L2TPv3)
[ 708.700061] l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
[ 708.726295] l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
[ 708.788973] Initializing XFRM netlink socket
[ 719.448364] unregister_netdevice: waiting for eth0 to become free. Usage count = 1
[ 729.528359] unregister_netdevice: waiting for eth0 to become free. Usage count = 1
[ 739.608359] unregister_netdevice: waiting for eth0 to become free. Usage count = 1

[Fix]
* 27d53323664c54 ("l2tp: remove skb_dst_set() from l2tp_xmit_skb()")

We have this patch in all of our generic kernels and OEM-5.10, thus
for now I can see just OEM-5.6 is affected. For which this patch can
be cherry-picked.

[Test Case]
This can tested with the l2tp.sh script in the kernel tree:
# sh ./tools/testing/selftests/net/l2tp.sh

With the patched kernel, it won't get flooded with that
unregister_netdevice message anymore.

Also, I have it tested with ubuntu_stress_smoke_tests as well, to
ensure the sctp stressor won't trigger any issue like in bug 1854968.

A test kernel can be found here:
https://people.canonical.com/~phlin/kernel/lp-1919277-l2tp/

[Where problems could occur]
This change is testable. A quick search didn't show any know issue
regarding this patch. And with the same fix running in different
generic kernel for a while I think the regression potential can be
considered as low.

Xin Long (1):
  l2tp: remove skb_dst_set() from l2tp_xmit_skb()

 net/l2tp/l2tp_core.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

-- 
2.7.4




More information about the kernel-team mailing list