Date: Fri, 6 Sep 2013 19:08:34 +0200 From: Luigi Rizzo <rizzo@iet.unipi.it> To: Gleb Smirnoff <glebius@freebsd.org> Cc: svn-src-head@freebsd.org, svn-src-all@freebsd.org, src-committers@freebsd.org Subject: Re: svn commit: r255289 - in head/sys: amd64/amd64 amd64/include ia64/ia64 ia64/include mips/include mips/mips Message-ID: <CA%2BhQ2%2BgdNd4wnX2%2Bfsd5Xq=FBYtbV3saQ%2B0oHC-CombEX1LWRA@mail.gmail.com> In-Reply-To: <201309060537.r865boJN013504@svn.freebsd.org> References: <201309060537.r865boJN013504@svn.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Sep 6, 2013 at 7:37 AM, Gleb Smirnoff <glebius@freebsd.org> wrote: > Author: glebius > Date: Fri Sep 6 05:37:49 2013 > New Revision: 255289 > URL: http://svnweb.freebsd.org/changeset/base/255289 > > Log: > On those machines, where sf_bufs do not represent any real object, make > sf_buf_alloc()/sf_buf_free() inlines, to save two calls to an absolutely > empty functions. > this seems to break the build WITHOUT_CLANG: cc1: warnings being treated as errors In file included from /usr/home/luigi/FreeBSD/head/sys/dev/md/md.c:87: /usr/home/luigi/FreeBSD/head/sys/sys/sf_buf.h:69: warning: redundant redeclaration of 'sf_buf_alloc' ./machine/sf_buf.h:46: warning: previous definition of 'sf_buf_alloc' was here /usr/home/luigi/FreeBSD/head/sys/sys/sf_buf.h:70: warning: redundant redeclaration of 'sf_buf_free' ./machine/sf_buf.h:53: warning: previous definition of 'sf_buf_free' was here *** [md.o] Error code 1 I don't know what could be a good way to handle this, maybe make sf_buf_alloc/sf_buf_free/sf_buf_mext prototypes mandatory in machine/sf_buf.h, and use the prototypes here only in the !_KERNEL case ? (and btw do we need sf_buf_mext() in that case ?) cheers luigi I >> do >> here > > *** [md.o] Error code 1 > > > Reviewed by: alc, kib, scottl > Sponsored by: Nginx, Inc. > Sponsored by: Netflix > > Modified: > head/sys/amd64/amd64/vm_machdep.c > head/sys/amd64/include/sf_buf.h > head/sys/ia64/ia64/vm_machdep.c > head/sys/ia64/include/sf_buf.h > head/sys/mips/include/sf_buf.h > head/sys/mips/mips/vm_machdep.c > > Modified: head/sys/amd64/amd64/vm_machdep.c > > ============================================================================== > --- head/sys/amd64/amd64/vm_machdep.c Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/amd64/amd64/vm_machdep.c Fri Sep 6 05:37:49 2013 > (r255289) > @@ -59,7 +59,6 @@ __FBSDID("$FreeBSD$"); > #include <sys/mutex.h> > #include <sys/pioctl.h> > #include <sys/proc.h> > -#include <sys/sf_buf.h> > #include <sys/smp.h> > #include <sys/sysctl.h> > #include <sys/sysent.h> > @@ -695,27 +694,6 @@ cpu_reset_real() > } > > /* > - * Allocate an sf_buf for the given vm_page. On this machine, however, > there > - * is no sf_buf object. Instead, an opaque pointer to the given vm_page > is > - * returned. > - */ > -struct sf_buf * > -sf_buf_alloc(struct vm_page *m, int pri) > -{ > - > - return ((struct sf_buf *)m); > -} > - > -/* > - * Free the sf_buf. In fact, do nothing because there are no resources > - * associated with the sf_buf. > - */ > -void > -sf_buf_free(struct sf_buf *sf) > -{ > -} > - > -/* > * Software interrupt handler for queued VM system processing. > */ > void > > Modified: head/sys/amd64/include/sf_buf.h > > ============================================================================== > --- head/sys/amd64/include/sf_buf.h Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/amd64/include/sf_buf.h Fri Sep 6 05:37:49 2013 > (r255289) > @@ -41,6 +41,18 @@ > */ > struct sf_buf; > > +static inline struct sf_buf * > +sf_buf_alloc(struct vm_page *m, int pri) > +{ > + > + return ((struct sf_buf *)m); > +} > + > +static inline void > +sf_buf_free(struct sf_buf *sf) > +{ > +} > + > static __inline vm_offset_t > sf_buf_kva(struct sf_buf *sf) > { > > Modified: head/sys/ia64/ia64/vm_machdep.c > > ============================================================================== > --- head/sys/ia64/ia64/vm_machdep.c Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/ia64/ia64/vm_machdep.c Fri Sep 6 05:37:49 2013 > (r255289) > @@ -79,7 +79,6 @@ > #include <sys/vmmeter.h> > #include <sys/kernel.h> > #include <sys/mbuf.h> > -#include <sys/sf_buf.h> > #include <sys/sysctl.h> > #include <sys/unistd.h> > > @@ -353,27 +352,6 @@ cpu_exit(struct thread *td) > } > > /* > - * Allocate an sf_buf for the given vm_page. On this machine, however, > there > - * is no sf_buf object. Instead, an opaque pointer to the given vm_page > is > - * returned. > - */ > -struct sf_buf * > -sf_buf_alloc(struct vm_page *m, int pri) > -{ > - > - return ((struct sf_buf *)m); > -} > - > -/* > - * Free the sf_buf. In fact, do nothing because there are no resources > - * associated with the sf_buf. > - */ > -void > -sf_buf_free(struct sf_buf *sf) > -{ > -} > - > -/* > * Software interrupt handler for queued VM system processing. > */ > void > > Modified: head/sys/ia64/include/sf_buf.h > > ============================================================================== > --- head/sys/ia64/include/sf_buf.h Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/ia64/include/sf_buf.h Fri Sep 6 05:37:49 2013 > (r255289) > @@ -41,6 +41,18 @@ > */ > struct sf_buf; > > +static inline struct sf_buf * > +sf_buf_alloc(struct vm_page *m, int pri) > +{ > + > + return ((struct sf_buf *)m); > +} > + > +static inline void > +sf_buf_free(struct sf_buf *sf) > +{ > +} > + > static __inline vm_page_t > sf_buf_page(struct sf_buf *sf) > { > > Modified: head/sys/mips/include/sf_buf.h > > ============================================================================== > --- head/sys/mips/include/sf_buf.h Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/mips/include/sf_buf.h Fri Sep 6 05:37:49 2013 > (r255289) > @@ -41,6 +41,18 @@ > /* In 64 bit the whole memory is directly mapped */ > struct sf_buf; > > +static inline struct sf_buf * > +sf_buf_alloc(struct vm_page *m, int pri) > +{ > + > + return ((struct sf_buf *)m); > +} > + > +static inline void > +sf_buf_free(struct sf_buf *sf) > +{ > +} > + > static __inline vm_offset_t > sf_buf_kva(struct sf_buf *sf) > { > > Modified: head/sys/mips/mips/vm_machdep.c > > ============================================================================== > --- head/sys/mips/mips/vm_machdep.c Fri Sep 6 05:20:11 2013 > (r255288) > +++ head/sys/mips/mips/vm_machdep.c Fri Sep 6 05:37:49 2013 > (r255289) > @@ -76,7 +76,9 @@ __FBSDID("$FreeBSD$"); > > #include <sys/user.h> > #include <sys/mbuf.h> > +#ifndef __mips_n64 > #include <sys/sf_buf.h> > +#endif > > #ifndef NSFBUFS > #define NSFBUFS (512 + maxusers * 16) > @@ -523,7 +525,6 @@ sf_buf_init(void *arg) > } > sf_buf_alloc_want = 0; > } > -#endif > > /* > * Get an sf_buf from the freelist. Will block if none are available. > @@ -531,7 +532,6 @@ sf_buf_init(void *arg) > struct sf_buf * > sf_buf_alloc(struct vm_page *m, int flags) > { > -#ifndef __mips_n64 > struct sf_buf *sf; > int error; > > @@ -560,9 +560,6 @@ sf_buf_alloc(struct vm_page *m, int flag > } > mtx_unlock(&sf_freelist.sf_lock); > return (sf); > -#else > - return ((struct sf_buf *)m); > -#endif > } > > /* > @@ -571,7 +568,6 @@ sf_buf_alloc(struct vm_page *m, int flag > void > sf_buf_free(struct sf_buf *sf) > { > -#ifndef __mips_n64 > pmap_qremove(sf->kva, 1); > mtx_lock(&sf_freelist.sf_lock); > SLIST_INSERT_HEAD(&sf_freelist.sf_head, sf, free_list); > @@ -579,8 +575,8 @@ sf_buf_free(struct sf_buf *sf) > if (sf_buf_alloc_want > 0) > wakeup(&sf_freelist); > mtx_unlock(&sf_freelist.sf_lock); > -#endif > } > +#endif /* !__mips_n64 */ > > /* > * Software interrupt handler for queued VM system processing. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2BhQ2%2BgdNd4wnX2%2Bfsd5Xq=FBYtbV3saQ%2B0oHC-CombEX1LWRA>