On Fri, Sep 6, 2013 at 7:37 AM, Gleb Smirnoff <gleb...@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. > _______________________________________________ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"