> SIT currently uses ip_tunnel_get_iflink() which reads tunnel->parms.link. > In order to decouple SIT parameter handling from ip_tunnel, implement > its own ndo_get_iflink callback. > > Signed-off-by: Eric Dumazet Acked-by: Lorenzo Bianconi > --- > net/ipv6/sit.c | 9 ++++++++- > 1 file changed, 8 insertions(+), 1 deletion(-) > > diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c > index 7cabcd3afbc4f06d9a08374e6d8df2fb1bfb9676..35c6695909014a2c335f1de7afb48f07b7c91c39 100644 > --- a/net/ipv6/sit.c > +++ b/net/ipv6/sit.c > @@ -1444,12 +1444,19 @@ ipip6_tunnel_siocdevprivate(struct net_device *dev, struct ifreq *ifr, > } > } > > +static int ipip6_get_iflink(const struct net_device *dev) > +{ > + struct ip_tunnel *tunnel = netdev_priv(dev); > + > + return READ_ONCE(tunnel->parms.link); > +} > + > static const struct net_device_ops ipip6_netdev_ops = { > .ndo_init = ipip6_tunnel_init, > .ndo_uninit = ipip6_tunnel_uninit, > .ndo_start_xmit = sit_tunnel_xmit, > .ndo_siocdevprivate = ipip6_tunnel_siocdevprivate, > - .ndo_get_iflink = ip_tunnel_get_iflink, > + .ndo_get_iflink = ipip6_get_iflink, > .ndo_tunnel_ctl = ipip6_tunnel_ctl, > }; > > -- > 2.55.0.979.g7e5102b832-goog >