Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 70695
b: refs/heads/master
c: 4f9a58d
h: refs/heads/master
i:
  70693: 781d196
  70691: f92d65e
  70687: 4fb2f7d
v: v3
  • Loading branch information
Olaf Hering authored and Linus Torvalds committed Oct 17, 2007
1 parent b2db247 commit 8bc116f
Show file tree
Hide file tree
Showing 15 changed files with 24 additions and 4 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f77e34987070a20e4b3e06b868cb39eb73670467
refs/heads/master: 4f9a58d75bfe82ab2b8ba5b8506dfb190a267834
3 changes: 3 additions & 0 deletions trunk/fs/binfmt_elf.c
Original file line number Diff line number Diff line change
Expand Up @@ -175,6 +175,7 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,

/* Create the ELF interpreter info */
elf_info = (elf_addr_t *)current->mm->saved_auxv;
/* update AT_VECTOR_SIZE_BASE if the number of NEW_AUX_ENT() changes */
#define NEW_AUX_ENT(id, val) \
do { \
elf_info[ei_index++] = id; \
Expand All @@ -185,6 +186,8 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
/*
* ARCH_DLINFO must come first so PPC can do its special alignment of
* AUXV.
* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT() in
* ARCH_DLINFO changes
*/
ARCH_DLINFO;
#endif
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-alpha/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -155,6 +155,7 @@ extern int alpha_l1d_cacheshape;
extern int alpha_l2_cacheshape;
extern int alpha_l3_cacheshape;

/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do { \
NEW_AUX_ENT(AT_L1I_CACHESHAPE, alpha_l1i_cacheshape); \
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-alpha/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@

#ifndef __ASSEMBLY__
#include <linux/kernel.h>
#define AT_VECTOR_SIZE_ARCH 4 /* entries in ARCH_DLINFO */

/*
* This is the logout header that should be common to all platforms
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-ia64/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,7 @@ extern int dump_task_fpu (struct task_struct *, elf_fpregset_t *);

#define GATE_EHDR ((const struct elfhdr *) GATE_ADDR)

/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do { \
extern char __kernel_syscall_via_epc[]; \
Expand Down
2 changes: 2 additions & 0 deletions trunk/include/asm-ia64/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,8 @@
#include <linux/kernel.h>
#include <linux/types.h>

#define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */

struct pci_vector_struct {
__u16 segment; /* PCI Segment number */
__u16 bus; /* PCI Bus number */
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-powerpc/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -291,6 +291,7 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,
* AT_IGNOREPPC is used for that.
* - for compatibility with glibc ARCH_DLINFO must always be defined on PPC,
* even if DLINFO_ARCH_ITEMS goes to zero or is undefined.
* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes
*/
#define ARCH_DLINFO \
do { \
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-powerpc/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
#define set_mb(var, value) do { var = value; mb(); } while (0)

#ifdef __KERNEL__
#define AT_VECTOR_SIZE_ARCH 6 /* entries in ARCH_DLINFO */
#ifdef CONFIG_SMP
#define smp_mb() mb()
#define smp_rmb() rmb()
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-sh/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ extern void __kernel_vsyscall;
#define VDSO_BASE ((unsigned long)current->mm->context.vdso)
#define VDSO_SYM(x) (VDSO_BASE + (unsigned long)(x))

/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do { \
if (vdso_enabled) \
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-sh/system.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
struct task_struct *__switch_to(struct task_struct *prev,
struct task_struct *next);

#define AT_VECTOR_SIZE_ARCH 1 /* entries in ARCH_DLINFO */
/*
* switch_to() should switch tasks to task nr n, first
*/
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-x86/elf_32.h
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,7 @@ extern int arch_setup_additional_pages(struct linux_binprm *bprm,

extern unsigned int vdso_enabled;

/* update AT_VECTOR_SIZE_ARCH if the number of NEW_AUX_ENT entries changes */
#define ARCH_DLINFO \
do if (vdso_enabled) { \
NEW_AUX_ENT(AT_SYSINFO, VDSO_ENTRY); \
Expand Down
1 change: 1 addition & 0 deletions trunk/include/asm-x86/system_32.h
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <asm/cmpxchg.h>

#ifdef __KERNEL__
#define AT_VECTOR_SIZE_ARCH 2 /* entries in ARCH_DLINFO */

struct task_struct; /* one of the stranger aspects of C forward declarations.. */
extern struct task_struct * FASTCALL(__switch_to(struct task_struct *prev, struct task_struct *next));
Expand Down
4 changes: 3 additions & 1 deletion trunk/include/linux/auxvec.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@

#define AT_SECURE 23 /* secure mode boolean */

#define AT_VECTOR_SIZE 44 /* Size of auxiliary table. */
#ifdef __KERNEL__
#define AT_VECTOR_SIZE_BASE (14 + 2) /* NEW_AUX_ENT entries in auxiliary table */
#endif

#endif /* _LINUX_AUXVEC_H */
1 change: 0 additions & 1 deletion trunk/include/linux/elf.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#define _LINUX_ELF_H

#include <linux/types.h>
#include <linux/auxvec.h>
#include <linux/elf-em.h>
#include <asm/elf.h>

Expand Down
7 changes: 6 additions & 1 deletion trunk/include/linux/mm_types.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef _LINUX_MM_TYPES_H
#define _LINUX_MM_TYPES_H

#include <linux/auxvec.h> /* For AT_VECTOR_SIZE */
#include <linux/auxvec.h>
#include <linux/types.h>
#include <linux/threads.h>
#include <linux/list.h>
Expand All @@ -13,6 +13,11 @@
#include <asm/page.h>
#include <asm/mmu.h>

#ifndef AT_VECTOR_SIZE_ARCH
#define AT_VECTOR_SIZE_ARCH 0
#endif
#define AT_VECTOR_SIZE (2*(AT_VECTOR_SIZE_ARCH + AT_VECTOR_SIZE_BASE + 1))

struct address_space;

#if NR_CPUS >= CONFIG_SPLIT_PTLOCK_CPUS
Expand Down

0 comments on commit 8bc116f

Please sign in to comment.