Skip to content

Commit

Permalink
x86-64: Move the "user" vsyscall segment out of the data segment.
Browse files Browse the repository at this point in the history
The kernel's loader doesn't seem to care, but gold complains.

Signed-off-by: Andy Lutomirski <luto@mit.edu>
Link: http://lkml.kernel.org/r/f0716870c297242a841b949953d80c0d87bf3d3f.1312378163.git.luto@mit.edu
Reported-by: Arkadiusz Miskiewicz <a.miskiewicz@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
  • Loading branch information
Andy Lutomirski authored and H. Peter Anvin committed Aug 4, 2011
1 parent 1bdfac1 commit 9c40818
Showing 1 changed file with 18 additions and 18 deletions.
36 changes: 18 additions & 18 deletions arch/x86/kernel/vmlinux.lds.S
Original file line number Diff line number Diff line change
Expand Up @@ -154,6 +154,24 @@ SECTIONS

#ifdef CONFIG_X86_64

. = ALIGN(PAGE_SIZE);
__vvar_page = .;

.vvar : AT(ADDR(.vvar) - LOAD_OFFSET) {

/* Place all vvars at the offsets in asm/vvar.h. */
#define EMIT_VVAR(name, offset) \
. = offset; \
*(.vvar_ ## name)
#define __VVAR_KERNEL_LDS
#include <asm/vvar.h>
#undef __VVAR_KERNEL_LDS
#undef EMIT_VVAR

} :data

. = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);

#define VSYSCALL_ADDR (-10*1024*1024)

#define VLOAD_OFFSET (VSYSCALL_ADDR - __vsyscall_0 + LOAD_OFFSET)
Expand All @@ -162,7 +180,6 @@ SECTIONS
#define VVIRT_OFFSET (VSYSCALL_ADDR - __vsyscall_0)
#define VVIRT(x) (ADDR(x) - VVIRT_OFFSET)

. = ALIGN(4096);
__vsyscall_0 = .;

. = VSYSCALL_ADDR;
Expand All @@ -185,23 +202,6 @@ SECTIONS
#undef VVIRT_OFFSET
#undef VVIRT

__vvar_page = .;

.vvar : AT(ADDR(.vvar) - LOAD_OFFSET) {

/* Place all vvars at the offsets in asm/vvar.h. */
#define EMIT_VVAR(name, offset) \
. = offset; \
*(.vvar_ ## name)
#define __VVAR_KERNEL_LDS
#include <asm/vvar.h>
#undef __VVAR_KERNEL_LDS
#undef EMIT_VVAR

} :data

. = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);

#endif /* CONFIG_X86_64 */

/* Init code and data - will be freed after init */
Expand Down

0 comments on commit 9c40818

Please sign in to comment.