on 11/11/2010 21:18 Dimitry Andric said the following:
> Author: dim
> Date: Thu Nov 11 19:18:52 2010
> New Revision: 215138
> URL: http://svn.freebsd.org/changeset/base/215138
> 
> Log:
>   Use the same treatment as in linker_set.h for the __start and __stop
>   symbols of the set_vnet and set_pcpu sections, so those symbols will
>   always be emitted in kernel modules, if they use vnet.h or pcpu.h.

Do I understand it correctly that set_pcpu section itself would not be produced 
if
DPCPU_DEFINE() is not actually used?

>   Also, for pcpu.h, make the __(start|stop)_set_pcpu declarations, and
>   associated macros invisible to userland, to prevent it picking up these
>   symbols.
>   
>   Reviewed by:        kib
> 
> Modified:
>   head/sys/net/vnet.h
>   head/sys/sys/pcpu.h
> 
> Modified: head/sys/net/vnet.h
> ==============================================================================
> --- head/sys/net/vnet.h       Thu Nov 11 19:17:59 2010        (r215137)
> +++ head/sys/net/vnet.h       Thu Nov 11 19:18:52 2010        (r215138)
> @@ -95,7 +95,9 @@ struct vnet {
>   * Location of the kernel's 'set_vnet' linker set.
>   */
>  extern uintptr_t     *__start_set_vnet;
> +__GLOBL(__start_set_vnet);
>  extern uintptr_t     *__stop_set_vnet;
> +__GLOBL(__stop_set_vnet);
>  
>  #define      VNET_START      (uintptr_t)&__start_set_vnet
>  #define      VNET_STOP       (uintptr_t)&__stop_set_vnet
> 
> Modified: head/sys/sys/pcpu.h
> ==============================================================================
> --- head/sys/sys/pcpu.h       Thu Nov 11 19:17:59 2010        (r215137)
> +++ head/sys/sys/pcpu.h       Thu Nov 11 19:18:52 2010        (r215138)
> @@ -42,11 +42,15 @@
>  #include <sys/resource.h>
>  #include <machine/pcpu.h>
>  
> +#ifdef _KERNEL
> +
>  /*
>   * Define a set for pcpu data.
>   */
>  extern uintptr_t *__start_set_pcpu;
> +__GLOBL(__start_set_pcpu);
>  extern uintptr_t *__stop_set_pcpu;
> +__GLOBL(__stop_set_pcpu);
>  
>  /*
>   * Array of dynamic pcpu base offsets.  Indexed by id.
> @@ -127,6 +131,8 @@ extern uintptr_t dpcpu_off[];
>       }                                                               \
>  } while(0)
>  
> +#endif /* _KERNEL */
> +
>  /* 
>   * XXXUPS remove as soon as we have per cpu variable
>   * linker sets and can define rm_queue in _rm_lock.h


-- 
Andriy Gapon
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to