Hi all,
Today's linux-next build (powerpc ppc64_defconfig) failed like this:
ERROR: ".__ipv6_addr_type" [drivers/infiniband/core/rdma_cm.ko] undefined!
I have used the version of the infiniband tree from next-20091119 for
today.
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/
> Today's linux-next build (powerpc ppc64_defconfig) failed like this:
>
> ERROR: ".__ipv6_addr_type" [drivers/infiniband/core/rdma_cm.ko] undefined!
>
> I have used the version of the infiniband tree from next-20091119 for
> today.
Sorry, will track it down. Sean this probably came from your patches,
any idea off the top of your head?
>Sorry, will track it down. Sean this probably came from your patches,
>any idea off the top of your head?
Off the top of my head, I'll guess that maybe we need to add something like
#if defined(CONFIG_IPv6) || defined(CONFIG_IPV6_MODULE)
to cma_check_linklocal() in cma.c. Does this build failure occur when IPv6 is
excluded?
- Sean
Hi Roland, Sean,
On Thu, 19 Nov 2009 16:19:29 -0800 Roland Dreier <[email protected]> wrote:
>
>
> > Today's linux-next build (powerpc ppc64_defconfig) failed like this:
> >
> > ERROR: ".__ipv6_addr_type" [drivers/infiniband/core/rdma_cm.ko] undefined!
> >
> > I have used the version of the infiniband tree from next-20091119 for
> > today.
>
> Sorry, will track it down. Sean this probably came from your patches,
> any idea off the top of your head?
Big hint: IPV6 is not enabled in this config.
--
Cheers,
Stephen Rothwell [email protected]
http://www.canb.auug.org.au/~sfr/
> Off the top of my head, I'll guess that maybe we need to add something like
> #if defined(CONFIG_IPv6) || defined(CONFIG_IPV6_MODULE)
Yes, makes sense, I'll throw that in.
- R.
OK, so I threw this into the ipv6 patch, I think it's right:
diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
index 71e616a..fbdd731 100644
--- a/drivers/infiniband/core/cma.c
+++ b/drivers/infiniband/core/cma.c
@@ -2083,6 +2083,7 @@ static int cma_get_port(struct rdma_id_private *id_priv)
static int cma_check_linklocal(struct rdma_dev_addr *dev_addr,
struct sockaddr *addr)
{
+#if defined(CONFIG_IPv6) || defined(CONFIG_IPV6_MODULE)
struct sockaddr_in6 *sin6;
if (addr->sa_family != AF_INET6)
@@ -2094,6 +2095,7 @@ static int cma_check_linklocal(struct rdma_dev_addr *dev_addr,
return -EINVAL;
dev_addr->bound_dev_if = sin6->sin6_scope_id;
+#endif
return 0;
}
>OK, so I threw this into the ipv6 patch, I think it's right:
Looks correct - thanks.
>diff --git a/drivers/infiniband/core/cma.c b/drivers/infiniband/core/cma.c
>index 71e616a..fbdd731 100644
>--- a/drivers/infiniband/core/cma.c
>+++ b/drivers/infiniband/core/cma.c
>@@ -2083,6 +2083,7 @@ static int cma_get_port(struct rdma_id_private *id_priv)
> static int cma_check_linklocal(struct rdma_dev_addr *dev_addr,
> struct sockaddr *addr)
> {
>+#if defined(CONFIG_IPv6) || defined(CONFIG_IPV6_MODULE)
> struct sockaddr_in6 *sin6;
>
> if (addr->sa_family != AF_INET6)
>@@ -2094,6 +2095,7 @@ static int cma_check_linklocal(struct rdma_dev_addr
>*dev_addr,
> return -EINVAL;
>
> dev_addr->bound_dev_if = sin6->sin6_scope_id;
>+#endif
> return 0;
> }
>