Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 30852ad0 authored by Alex Smith's avatar Alex Smith Committed by Ralf Baechle
Browse files

MIPS: Remove old core dump functions



Since the core dumper now uses regsets, the old core dump functions are
now unused. Remove them.

Signed-off-by: default avatarAlex Smith <alex@alex-smith.me.uk>
Cc: linux-mips@linux-mips.org
Patchwork: https://patchwork.linux-mips.org/patch/7456/


Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
parent a79ebea6
Loading
Loading
Loading
Loading
+0 −17
Original line number Diff line number Diff line
@@ -339,23 +339,6 @@ do { \

#endif /* CONFIG_64BIT */

struct pt_regs;
struct task_struct;

extern void elf_dump_regs(elf_greg_t *, struct pt_regs *regs);
extern int dump_task_regs(struct task_struct *, elf_gregset_t *);
extern int dump_task_fpu(struct task_struct *, elf_fpregset_t *);

#ifndef ELF_CORE_COPY_REGS
#define ELF_CORE_COPY_REGS(elf_regs, regs)			\
	elf_dump_regs((elf_greg_t *)&(elf_regs), regs);
#endif
#ifndef ELF_CORE_COPY_TASK_REGS
#define ELF_CORE_COPY_TASK_REGS(tsk, elf_regs) dump_task_regs(tsk, elf_regs)
#endif
#define ELF_CORE_COPY_FPREGS(tsk, elf_fpregs)			\
	dump_task_fpu(tsk, elf_fpregs)

#define CORE_DUMP_USE_REGSET
#define ELF_EXEC_PAGESIZE	PAGE_SIZE

+0 −32
Original line number Diff line number Diff line
@@ -72,16 +72,6 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];

#include <asm/processor.h>

/* These MUST be defined before elf.h gets included */
extern void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs);
#define ELF_CORE_COPY_REGS(_dest, _regs) elf32_core_copy_regs(_dest, _regs);
#define ELF_CORE_COPY_TASK_REGS(_tsk, _dest)				\
({									\
	int __res = 1;							\
	elf32_core_copy_regs(*(_dest), task_pt_regs(_tsk));		\
	__res;								\
})

#include <linux/module.h>
#include <linux/elfcore.h>
#include <linux/compat.h>
@@ -139,28 +129,6 @@ jiffies_to_compat_timeval(unsigned long jiffies, struct compat_timeval *value)
	value->tv_usec = rem / NSEC_PER_USEC;
}

void elf32_core_copy_regs(elf_gregset_t grp, struct pt_regs *regs)
{
	int i;

	for (i = 0; i < MIPS32_EF_R0; i++)
		grp[i] = 0;
	grp[MIPS32_EF_R0] = 0;
	for (i = 1; i <= 31; i++)
		grp[MIPS32_EF_R0 + i] = (elf_greg_t) regs->regs[i];
	grp[MIPS32_EF_R26] = 0;
	grp[MIPS32_EF_R27] = 0;
	grp[MIPS32_EF_LO] = (elf_greg_t) regs->lo;
	grp[MIPS32_EF_HI] = (elf_greg_t) regs->hi;
	grp[MIPS32_EF_CP0_EPC] = (elf_greg_t) regs->cp0_epc;
	grp[MIPS32_EF_CP0_BADVADDR] = (elf_greg_t) regs->cp0_badvaddr;
	grp[MIPS32_EF_CP0_STATUS] = (elf_greg_t) regs->cp0_status;
	grp[MIPS32_EF_CP0_CAUSE] = (elf_greg_t) regs->cp0_cause;
#ifdef MIPS32_EF_UNUSED0
	grp[MIPS32_EF_UNUSED0] = 0;
#endif
}

MODULE_DESCRIPTION("Binary format loader for compatibility with o32 Linux/MIPS binaries");
MODULE_AUTHOR("Ralf Baechle (ralf@linux-mips.org)");

+0 −55
Original line number Diff line number Diff line
@@ -152,61 +152,6 @@ int copy_thread(unsigned long clone_flags, unsigned long usp,
	return 0;
}

/* Fill in the fpu structure for a core dump.. */
int dump_fpu(struct pt_regs *regs, elf_fpregset_t *r)
{
	int i;

	for (i = 0; i < NUM_FPU_REGS; i++)
		memcpy(&r[i], &current->thread.fpu.fpr[i], sizeof(*r));

	memcpy(&r[NUM_FPU_REGS], &current->thread.fpu.fcr31,
	       sizeof(current->thread.fpu.fcr31));

	return 1;
}

void elf_dump_regs(elf_greg_t *gp, struct pt_regs *regs)
{
	int i;

	for (i = 0; i < EF_R0; i++)
		gp[i] = 0;
	gp[EF_R0] = 0;
	for (i = 1; i <= 31; i++)
		gp[EF_R0 + i] = regs->regs[i];
	gp[EF_R26] = 0;
	gp[EF_R27] = 0;
	gp[EF_LO] = regs->lo;
	gp[EF_HI] = regs->hi;
	gp[EF_CP0_EPC] = regs->cp0_epc;
	gp[EF_CP0_BADVADDR] = regs->cp0_badvaddr;
	gp[EF_CP0_STATUS] = regs->cp0_status;
	gp[EF_CP0_CAUSE] = regs->cp0_cause;
#ifdef EF_UNUSED0
	gp[EF_UNUSED0] = 0;
#endif
}

int dump_task_regs(struct task_struct *tsk, elf_gregset_t *regs)
{
	elf_dump_regs(*regs, task_pt_regs(tsk));
	return 1;
}

int dump_task_fpu(struct task_struct *t, elf_fpregset_t *fpr)
{
	int i;

	for (i = 0; i < NUM_FPU_REGS; i++)
		memcpy(&fpr[i], &t->thread.fpu.fpr[i], sizeof(*fpr));

	memcpy(&fpr[NUM_FPU_REGS], &t->thread.fpu.fcr31,
	       sizeof(t->thread.fpu.fcr31));

	return 1;
}

#ifdef CONFIG_CC_STACKPROTECTOR
#include <linux/stackprotector.h>
unsigned long __stack_chk_guard __read_mostly;