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"

Reply via email to