All of lore.kernel.org
 help / color / mirror / Atom feed
From: roopa <roopa@cumulusnetworks.com>
To: Hannes Frederic Sowa <hannes@stressinduktion.org>
Cc: David Miller <davem@davemloft.net>,
	tgraf@suug.ch, rshearma@brocade.com, stephen@networkplumber.org,
	kuznet@ms2.inr.ac.ru, jon.maloy@ericsson.com,
	netdev@vger.kernel.org
Subject: Re: [PATCH net-next v5 0/2] af_mpls: fix undefined reference to ip6_route_output with CONFIG_IPV6=n
Date: Thu, 30 Jul 2015 13:38:14 -0700	[thread overview]
Message-ID: <55BA8B36.9030402@cumulusnetworks.com> (raw)
In-Reply-To: <1438268245.17421.5.camel@stressinduktion.org>

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 <roopa@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.

  reply	other threads:[~2015-07-30 20:38 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-07-28 22:27 [PATCH net-next v5 0/2] af_mpls: fix undefined reference to ip6_route_output with CONFIG_IPV6=n Roopa Prabhu
2015-07-30  5:42 ` David Miller
2015-07-30 13:22   ` roopa
2015-07-30 14:57     ` Hannes Frederic Sowa
2015-07-30 20:38       ` roopa [this message]
2015-07-30 21:02         ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=55BA8B36.9030402@cumulusnetworks.com \
    --to=roopa@cumulusnetworks.com \
    --cc=davem@davemloft.net \
    --cc=hannes@stressinduktion.org \
    --cc=jon.maloy@ericsson.com \
    --cc=kuznet@ms2.inr.ac.ru \
    --cc=netdev@vger.kernel.org \
    --cc=rshearma@brocade.com \
    --cc=stephen@networkplumber.org \
    --cc=tgraf@suug.ch \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.