On 3/4/26 4:38 AM, Jiayuan Chen wrote: > From: Jiayuan Chen <[email protected]> > > Add a regression test for a kernel panic that occurs when an IPv4 route > references an IPv6 nexthop object created on the loopback device. > > The test creates an IPv6 nexthop on lo, binds an IPv4 route to it, then > triggers a route lookup via ping to verify the kernel does not crash. > > ./fib_nexthops.sh > Tests passed: 249 > Tests failed: 0 > > Reviewed-by: Ido Schimmel <[email protected]> > Signed-off-by: Jiayuan Chen <[email protected]> > --- > tools/testing/selftests/net/fib_nexthops.sh | 11 +++++++++++ > 1 file changed, 11 insertions(+) > > diff --git a/tools/testing/selftests/net/fib_nexthops.sh > b/tools/testing/selftests/net/fib_nexthops.sh > index 21026b667667..6eb7f95e70e1 100755 > --- a/tools/testing/selftests/net/fib_nexthops.sh > +++ b/tools/testing/selftests/net/fib_nexthops.sh > @@ -1672,6 +1672,17 @@ ipv4_withv6_fcnal() > > run_cmd "$IP ro replace 172.16.101.1/32 via inet6 2001:db8:50::1 dev > veth1" > log_test $? 2 "IPv4 route with invalid IPv6 gateway" > + > + # Test IPv4 route with loopback IPv6 nexthop > + # Regression test: loopback IPv6 nexthop was misclassified as reject > + # route, skipping nhc_pcpu_rth_output allocation, causing panic when > + # an IPv4 route references it and triggers __mkroute_output(). > + run_cmd "$IP -6 nexthop add id 20 dev lo" > + run_cmd "$IP ro add 172.20.20.0/24 nhid 20" > + run_cmd "ip netns exec $me ping -c1 -W1 172.20.20.1" > + log_test $? 1 "IPv4 route with loopback IPv6 nexthop (no crash)" > + run_cmd "$IP ro del 172.20.20.0/24" > + run_cmd "$IP nexthop del id 20" > } > > ipv4_fcnal_runtime()
Reviewed-by: David Ahern <[email protected]>

