kill elf_fpxregs_t
all uses are conditional upon ELF_CORE_COPY_XFPREGS, which has not been defined on any architecture since 2010 Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -179,8 +179,6 @@ extern void ia64_init_addr_space (void);
|
|||||||
#define ELF_AR_SSD_OFFSET (56 * sizeof(elf_greg_t))
|
#define ELF_AR_SSD_OFFSET (56 * sizeof(elf_greg_t))
|
||||||
#define ELF_AR_END_OFFSET (57 * sizeof(elf_greg_t))
|
#define ELF_AR_END_OFFSET (57 * sizeof(elf_greg_t))
|
||||||
|
|
||||||
typedef unsigned long elf_fpxregset_t;
|
|
||||||
|
|
||||||
typedef unsigned long elf_greg_t;
|
typedef unsigned long elf_greg_t;
|
||||||
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
|
typedef elf_greg_t elf_gregset_t[ELF_NGREG];
|
||||||
|
|
||||||
|
@@ -53,8 +53,6 @@ static inline void ppc_elf_core_copy_regs(elf_gregset_t elf_regs,
|
|||||||
}
|
}
|
||||||
#define ELF_CORE_COPY_REGS(gregs, regs) ppc_elf_core_copy_regs(gregs, regs);
|
#define ELF_CORE_COPY_REGS(gregs, regs) ppc_elf_core_copy_regs(gregs, regs);
|
||||||
|
|
||||||
typedef elf_vrregset_t elf_fpxregset_t;
|
|
||||||
|
|
||||||
/* ELF_HWCAP yields a mask that user programs can use to figure out what
|
/* ELF_HWCAP yields a mask that user programs can use to figure out what
|
||||||
instruction set this cpu supports. This could be done in userspace,
|
instruction set this cpu supports. This could be done in userspace,
|
||||||
but it's not easy, and we've already done it here. */
|
but it's not easy, and we've already done it here. */
|
||||||
|
@@ -21,8 +21,6 @@ typedef struct user_i387_struct elf_fpregset_t;
|
|||||||
|
|
||||||
#ifdef __i386__
|
#ifdef __i386__
|
||||||
|
|
||||||
typedef struct user_fxsr_struct elf_fpxregset_t;
|
|
||||||
|
|
||||||
#define R_386_NONE 0
|
#define R_386_NONE 0
|
||||||
#define R_386_32 1
|
#define R_386_32 1
|
||||||
#define R_386_PC32 2
|
#define R_386_PC32 2
|
||||||
|
@@ -2038,9 +2038,6 @@ struct elf_thread_status
|
|||||||
struct elf_prstatus prstatus; /* NT_PRSTATUS */
|
struct elf_prstatus prstatus; /* NT_PRSTATUS */
|
||||||
elf_fpregset_t fpu; /* NT_PRFPREG */
|
elf_fpregset_t fpu; /* NT_PRFPREG */
|
||||||
struct task_struct *thread;
|
struct task_struct *thread;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
elf_fpxregset_t xfpu; /* ELF_CORE_XFPREG_TYPE */
|
|
||||||
#endif
|
|
||||||
struct memelfnote notes[3];
|
struct memelfnote notes[3];
|
||||||
int num_notes;
|
int num_notes;
|
||||||
};
|
};
|
||||||
@@ -2071,15 +2068,6 @@ static int elf_dump_thread_status(long signr, struct elf_thread_status *t)
|
|||||||
t->num_notes++;
|
t->num_notes++;
|
||||||
sz += notesize(&t->notes[1]);
|
sz += notesize(&t->notes[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
if (elf_core_copy_task_xfpregs(p, &t->xfpu)) {
|
|
||||||
fill_note(&t->notes[2], "LINUX", ELF_CORE_XFPREG_TYPE,
|
|
||||||
sizeof(t->xfpu), &t->xfpu);
|
|
||||||
t->num_notes++;
|
|
||||||
sz += notesize(&t->notes[2]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2090,9 +2078,6 @@ struct elf_note_info {
|
|||||||
struct elf_prpsinfo *psinfo; /* NT_PRPSINFO */
|
struct elf_prpsinfo *psinfo; /* NT_PRPSINFO */
|
||||||
struct list_head thread_list;
|
struct list_head thread_list;
|
||||||
elf_fpregset_t *fpu;
|
elf_fpregset_t *fpu;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
elf_fpxregset_t *xfpu;
|
|
||||||
#endif
|
|
||||||
user_siginfo_t csigdata;
|
user_siginfo_t csigdata;
|
||||||
int thread_status_size;
|
int thread_status_size;
|
||||||
int numnote;
|
int numnote;
|
||||||
@@ -2116,11 +2101,6 @@ static int elf_note_info_init(struct elf_note_info *info)
|
|||||||
info->fpu = kmalloc(sizeof(*info->fpu), GFP_KERNEL);
|
info->fpu = kmalloc(sizeof(*info->fpu), GFP_KERNEL);
|
||||||
if (!info->fpu)
|
if (!info->fpu)
|
||||||
return 0;
|
return 0;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
info->xfpu = kmalloc(sizeof(*info->xfpu), GFP_KERNEL);
|
|
||||||
if (!info->xfpu)
|
|
||||||
return 0;
|
|
||||||
#endif
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2184,13 +2164,6 @@ static int fill_note_info(struct elfhdr *elf, int phdrs,
|
|||||||
if (info->prstatus->pr_fpvalid)
|
if (info->prstatus->pr_fpvalid)
|
||||||
fill_note(info->notes + info->numnote++,
|
fill_note(info->notes + info->numnote++,
|
||||||
"CORE", NT_PRFPREG, sizeof(*info->fpu), info->fpu);
|
"CORE", NT_PRFPREG, sizeof(*info->fpu), info->fpu);
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
if (elf_core_copy_task_xfpregs(current, info->xfpu))
|
|
||||||
fill_note(info->notes + info->numnote++,
|
|
||||||
"LINUX", ELF_CORE_XFPREG_TYPE,
|
|
||||||
sizeof(*info->xfpu), info->xfpu);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2243,9 +2216,6 @@ static void free_note_info(struct elf_note_info *info)
|
|||||||
kfree(info->psinfo);
|
kfree(info->psinfo);
|
||||||
kfree(info->notes);
|
kfree(info->notes);
|
||||||
kfree(info->fpu);
|
kfree(info->fpu);
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
kfree(info->xfpu);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@@ -1457,9 +1457,6 @@ struct elf_thread_status
|
|||||||
struct elf_prstatus_fdpic prstatus; /* NT_PRSTATUS */
|
struct elf_prstatus_fdpic prstatus; /* NT_PRSTATUS */
|
||||||
elf_fpregset_t fpu; /* NT_PRFPREG */
|
elf_fpregset_t fpu; /* NT_PRFPREG */
|
||||||
struct task_struct *thread;
|
struct task_struct *thread;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
elf_fpxregset_t xfpu; /* ELF_CORE_XFPREG_TYPE */
|
|
||||||
#endif
|
|
||||||
struct memelfnote notes[3];
|
struct memelfnote notes[3];
|
||||||
int num_notes;
|
int num_notes;
|
||||||
};
|
};
|
||||||
@@ -1491,15 +1488,6 @@ static int elf_dump_thread_status(long signr, struct elf_thread_status *t)
|
|||||||
t->num_notes++;
|
t->num_notes++;
|
||||||
sz += notesize(&t->notes[1]);
|
sz += notesize(&t->notes[1]);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
if (elf_core_copy_task_xfpregs(p, &t->xfpu)) {
|
|
||||||
fill_note(&t->notes[2], "LINUX", ELF_CORE_XFPREG_TYPE,
|
|
||||||
sizeof(t->xfpu), &t->xfpu);
|
|
||||||
t->num_notes++;
|
|
||||||
sz += notesize(&t->notes[2]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
return sz;
|
return sz;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1593,9 +1581,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
|
|||||||
LIST_HEAD(thread_list);
|
LIST_HEAD(thread_list);
|
||||||
struct list_head *t;
|
struct list_head *t;
|
||||||
elf_fpregset_t *fpu = NULL;
|
elf_fpregset_t *fpu = NULL;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
elf_fpxregset_t *xfpu = NULL;
|
|
||||||
#endif
|
|
||||||
int thread_status_size = 0;
|
int thread_status_size = 0;
|
||||||
elf_addr_t *auxv;
|
elf_addr_t *auxv;
|
||||||
struct elf_phdr *phdr4note = NULL;
|
struct elf_phdr *phdr4note = NULL;
|
||||||
@@ -1634,11 +1619,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
|
|||||||
fpu = kmalloc(sizeof(*fpu), GFP_KERNEL);
|
fpu = kmalloc(sizeof(*fpu), GFP_KERNEL);
|
||||||
if (!fpu)
|
if (!fpu)
|
||||||
goto end_coredump;
|
goto end_coredump;
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
xfpu = kmalloc(sizeof(*xfpu), GFP_KERNEL);
|
|
||||||
if (!xfpu)
|
|
||||||
goto end_coredump;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
for (ct = current->mm->core_state->dumper.next;
|
for (ct = current->mm->core_state->dumper.next;
|
||||||
ct; ct = ct->next) {
|
ct; ct = ct->next) {
|
||||||
@@ -1703,11 +1683,6 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
|
|||||||
elf_core_copy_task_fpregs(current, cprm->regs, fpu)))
|
elf_core_copy_task_fpregs(current, cprm->regs, fpu)))
|
||||||
fill_note(notes + numnote++,
|
fill_note(notes + numnote++,
|
||||||
"CORE", NT_PRFPREG, sizeof(*fpu), fpu);
|
"CORE", NT_PRFPREG, sizeof(*fpu), fpu);
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
if (elf_core_copy_task_xfpregs(current, xfpu))
|
|
||||||
fill_note(notes + numnote++,
|
|
||||||
"LINUX", ELF_CORE_XFPREG_TYPE, sizeof(*xfpu), xfpu);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
offset += sizeof(*elf); /* Elf header */
|
offset += sizeof(*elf); /* Elf header */
|
||||||
offset += segs * sizeof(struct elf_phdr); /* Program headers */
|
offset += segs * sizeof(struct elf_phdr); /* Program headers */
|
||||||
@@ -1828,9 +1803,6 @@ end_coredump:
|
|||||||
kfree(notes);
|
kfree(notes);
|
||||||
kfree(fpu);
|
kfree(fpu);
|
||||||
kfree(shdr4extnum);
|
kfree(shdr4extnum);
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
kfree(xfpu);
|
|
||||||
#endif
|
|
||||||
return has_dumped;
|
return has_dumped;
|
||||||
#undef NUM_NOTES
|
#undef NUM_NOTES
|
||||||
}
|
}
|
||||||
|
@@ -104,13 +104,6 @@ static inline int elf_core_copy_task_fpregs(struct task_struct *t, struct pt_reg
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef ELF_CORE_COPY_XFPREGS
|
|
||||||
static inline int elf_core_copy_task_xfpregs(struct task_struct *t, elf_fpxregset_t *xfpu)
|
|
||||||
{
|
|
||||||
return ELF_CORE_COPY_XFPREGS(t, xfpu);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
|
* These functions parameterize elf_core_dump in fs/binfmt_elf.c to write out
|
||||||
* extra segments containing the gate DSO contents. Dumping its
|
* extra segments containing the gate DSO contents. Dumping its
|
||||||
|
Reference in New Issue
Block a user