On Thu, 2019-10-17 at 11:40 +0200, Florian Westphal wrote:
Paolo Abeni <pabeni(a)redhat.com> wrote:
> > -static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
> > +void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
> > {
> > struct dst_entry *dst = skb_dst(skb);
> >
> > @@ -111,6 +111,7 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const
struct sk_buff *skb)
> > tcp_inet6_sk(sk)->rx_dst_cookie = rt6_get_cookie(rt);
> > }
> > }
> > +EXPORT_SYMBOL(inet6_sk_rx_dst_set);
>
> I think this is not needed, as we don't build mptcp as a module.
> Dropping the 'static' scope should suffice. This should apply also to
> tcp_request_sock_ipv6_ops, tcp_v6_syn_recv_sock and ipv6_specific
> below.
Yes, but ipv6 can be built as a module, i.e. mptcp cannot call any ipv6
related symbol directly.
whoops, I always forgot about that :(
On the plus side, we don't actually need to touch the scope of
tcp_v6_syn_recv_sock and inet6_sk_rx_dst_set, as we can access them via
'ipv6_specific', which we need to access no-matter-what.
On the flip side, hooking mptcpv6_init() in the next patch looks even
more messy :(
What if we make MPTCP IPv6 support depending on IPV6 = y ?
Cheers,
Paolo