svn commit: r255289 - in head/sys: amd64/amd64 amd64/include ia64/ia64 ia64/include mips/include mips/mips
Luigi Rizzo
rizzo at iet.unipi.it
Fri Sep 6 17:08:37 UTC 2013
On Fri, Sep 6, 2013 at 7:37 AM, Gleb Smirnoff <glebius at 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.
>
More information about the svn-src-all
mailing list