svn commit: r215138 - in head/sys: net sys
Andriy Gapon
avg at freebsd.org
Thu Nov 11 19:29:06 UTC 2010
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
More information about the svn-src-head
mailing list