From: Randy Dunlap <randy.dunlap@oracle•com>
To: Trond Myklebust <trond.myklebust@fys•uio.no>
Cc: chuck.lever@oracle•com, Stephen Rothwell <sfr@canb•auug.org.au>,
linux-next@vger•kernel.org
Subject: Re: linux-next: nfs build failure
Date: Wed, 18 Jun 2008 14:19:25 -0700 [thread overview]
Message-ID: <20080618141925.e1e7a90a.randy.dunlap@oracle.com> (raw)
In-Reply-To: <1213823713.25182.35.camel@localhost>
On Wed, 18 Jun 2008 17:15:13 -0400 Trond Myklebust wrote:
> On Wed, 2008-06-18 at 16:37 -0400, Chuck Lever wrote:
> > Trond Myklebust wrote:
> > > On Wed, 2008-06-18 at 12:52 +1000, Stephen Rothwell wrote:
> > >> Hi Trond,
> > >>
> > >> Today's linux-next build (powerpc ppc64_defconfig) failed like this:
> > >>
> > >> fs/built-in.o: In function `.nfs_parse_ip_address':
> > >> super.c:(.text+0xe2f08): undefined reference to `.__ipv6_addr_type'
> > >>
> > >> Some CONFIG_IPV6 protections are needed ...
> > >>
> > >> I reverted commit 09491a874d4f9a8676567bc58bce9dec9539740d ("NFS: handle
> > >> interface identifiers in incoming IPv6 addresses").
> > >
> > > I suggest something like the attached patch. Comments Chuck?
> > >
> > > Trond
> > >
> > >
> > >
> > >
> > > ------------------------------------------------------------------------
> > >
> > > Subject:
> > > NFS: Don't allow IPv6 addresses if CONFIG_IPv6 isn't set
> > > From:
> > > Trond Myklebust <Trond.Myklebust@netapp•com>
> > > Date:
> > > Wed, 18 Jun 2008 16:04:22 -0400
> > >
> > >
> > > Fixes a compile failure in fs/nfs/super.c
> > >
> > > Also fix the compiler warnings:
> > > fs/nfs/super.c:721: warning: field width should have type ‘int’, but
> > > argument 2 has type ‘size_t’
> >
> > I just saw this warning yesterday, and was about to send a fix for it.
> > Sorry for the delay, but I had a power supply go south on me today.
> >
> > > fs/nfs/super.c:809:3: warning: returning void-valued expression
> > > fs/nfs/super.c:811:3: warning: returning void-valued expression
> >
> > But I've never seen that one. Very strange how the warnings vary
> > depending on what platform you compile to.
> >
> > > Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp•com>
> > > ---
> > >
> > > fs/nfs/super.c | 19 ++++++++++++++-----
> > > 1 files changed, 14 insertions(+), 5 deletions(-)
> > >
> > > diff --git a/fs/nfs/super.c b/fs/nfs/super.c
> > > index e62820c..6a47bc3 100644
> > > --- a/fs/nfs/super.c
> > > +++ b/fs/nfs/super.c
> > > @@ -718,10 +718,10 @@ static void nfs_parse_ipv4_address(char *string, size_t str_len,
> > > struct sockaddr_in *sin = (struct sockaddr_in *)sap;
> > > u8 *addr = (u8 *)&sin->sin_addr.s_addr;
> > >
> > > - dfprintk(MOUNT, "NFS: parsing IPv4 address %*s\n",
> > > - str_len, string);
> > > -
> > > if (str_len <= INET_ADDRSTRLEN) {
> > > + dfprintk(MOUNT, "NFS: parsing IPv4 address %*s\n",
> > > + (int)str_len, string);
> > > +
> >
> > You need the same fix in nfs_parse_ipv6_address().
>
> There is no such printk in nfs_parse_ipv6_address().
There is such a 'dfprintk()' in that function in today's linux-next tree,
with the same warning.
> > > sin->sin_family = AF_INET;
> > > *addr_len = sizeof(*sin);
> > > if (in4_pton(string, str_len, addr, '\0', NULL))
> > > @@ -732,6 +732,7 @@ static void nfs_parse_ipv4_address(char *string, size_t str_len,
> > > *addr_len = 0;
> > > }
> > >
> > > +#ifdef CONFIG_IPV6
> > > static void nfs_parse_ipv6_scope_id(const char *string, const size_t str_len,
> > > const char *delim,
> > > struct sockaddr_in6 *sin6)
> > > @@ -787,6 +788,14 @@ static void nfs_parse_ipv6_address(char *string, size_t str_len,
> > > sap->sa_family = AF_UNSPEC;
> > > *addr_len = 0;
> > > }
> > > +#else
> > > +static void nfs_parse_ipv6_address(char *string, size_t str_len,
> > > + struct sockaddr *sap, size_t *addr_len)
> > > +{
> > > + sap->sa_family = AF_UNSPEC;
> > > + *addr_len = 0;
> > > +}
> > > +#endif
> >
> > Instead of creating a separate function, you could just wrap everything
> > in nfs_parse_ipv6_address() but these two lines with #ifdef CONFIG_IPV6
> > / #endif.
>
> Getting rid of those #ifdef eyesores inside function definitions is
> worth the extra few lines.
---
~Randy
Linux Plumbers Conference, 17-19 September 2008, Portland, Oregon USA
http://linuxplumbersconf.org/
--
To unsubscribe from this list: send the line "unsubscribe linux-next" in
the body of a message to majordomo@vger•kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-06-18 21:19 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-06-18 2:52 linux-next: nfs build failure Stephen Rothwell
2008-06-18 20:14 ` Trond Myklebust
2008-06-18 20:37 ` Chuck Lever
2008-06-18 21:15 ` Trond Myklebust
2008-06-18 21:19 ` Randy Dunlap [this message]
2008-06-18 22:18 ` Trond Myklebust
-- strict thread matches above, loose matches on Subject: below --
2008-06-17 9:26 Stephen Rothwell
2008-06-17 20:19 ` Trond Myklebust
2008-06-17 20:37 ` Jeff Layton
2008-06-18 0:49 ` Stephen Rothwell
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=20080618141925.e1e7a90a.randy.dunlap@oracle.com \
--to=randy.dunlap@oracle$(echo .)com \
--cc=chuck.lever@oracle$(echo .)com \
--cc=linux-next@vger$(echo .)kernel.org \
--cc=sfr@canb$(echo .)auug.org.au \
--cc=trond.myklebust@fys$(echo .)uio.no \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox