On 7/30/15, 7:57 AM, Hannes Frederic Sowa wrote:
On Thu, 2015-07-30 at 06:22 -0700, roopa wrote:
On 7/29/15, 10:42 PM, David Miller wrote:
From: Roopa Prabhu <ro...@cumulusnetworks.com>
Date: Tue, 28 Jul 2015 15:27:39 -0700
v4 - v5: Use ipv6_stub_impl.ipv6_dst_lookup as suggested by Hannes
I think this might not work.
The ipv6_stub pointer is NULL until the ipv6 module is loaded.
VXLAN can safely call through ipv6_stub->foo() because it _knows_
the
ipv6 module has been loaded, and will not go away, because it is
working with an ipv6 socket.
You don't have that set of preconditions here, and thus it is pretty
easy to generate a scenerio where ipv6_stub will be NULL at your
call
sites.
v4 seems to be a better/safe option in that case. I can resubmit v4 if
that is acceptable.
This is starting to get really messy, to be honest. And we've been
harboring this build failure for several days now.
please revert the commit that introduced the IPV6 dependency. I will
resubmit if needed.
I don't feel good about the build failure either.
Thanks and apologies.
Of course you have to guard the NULL pointer dereference. Something simple like
that will do:
--- a/net/ipv6/addrconf_core.c
+++ b/net/ipv6/addrconf_core.c
@@ -107,7 +107,15 @@ int inet6addr_notifier_call_chain(unsigned long val, void
*v)
}
EXPORT_SYMBOL(inet6addr_notifier_call_chain);
-const struct ipv6_stub *ipv6_stub __read_mostly;
+static int eafnosupport_ipv6_dst_lookup(struct sock *u1, struct dst_entry **u2,
+ struct flowi6 *u3)
+{
+ return -EAFNOSUPPORT;
+}
+
+const struct ipv6_stub *ipv6_stub __read_mostly = &(struct ipv6_stub){
+ .ipv6_dst_lookup = eafnosupport_ipv6_dst_lookup,
+};
EXPORT_SYMBOL_GPL(ipv6_stub);
/* IPv6 Wildcard Address and Loopback Address defined by RFC2553 */
I have submitted a v6 with this. I had a NULL check in my v5 for
ipv6_stub and i had thought
that should suffice...but was only concerned about ipv6 module unload.
If v6 is no good, i plan to re-post my v4 patch as v7.
thanks.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majord...@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html