diff options
-rw-r--r-- | arch/score/include/asm/elf.h | 18 | ||||
-rw-r--r-- | arch/score/include/asm/irqflags.h | 2 | ||||
-rw-r--r-- | arch/score/kernel/signal.c | 4 | ||||
-rw-r--r-- | arch/score/mm/init.c | 4 | ||||
-rw-r--r-- | arch/score/mm/pgtable.c | 10 |
5 files changed, 17 insertions, 21 deletions
diff --git a/arch/score/include/asm/elf.h b/arch/score/include/asm/elf.h index 8324363..43526d9 100644 --- a/arch/score/include/asm/elf.h +++ b/arch/score/include/asm/elf.h @@ -1,9 +1,8 @@ #ifndef _ASM_SCORE_ELF_H #define _ASM_SCORE_ELF_H -/* ELF register definitions */ -#define ELF_NGREG 45 -#define ELF_NFPREG 33 +#include <linux/ptrace.h> + #define EM_SCORE7 135 /* Relocation types. */ @@ -30,11 +29,15 @@ #define R_SCORE_IMM30 20 #define R_SCORE_IMM32 21 -typedef unsigned long elf_greg_t; -typedef elf_greg_t elf_gregset_t[ELF_NGREG]; +/* ELF register definitions */ +typedef unsigned long elf_greg_t; + +#define ELF_NGREG (sizeof(struct pt_regs) / sizeof(elf_greg_t)) +typedef elf_greg_t elf_gregset_t[ELF_NGREG]; -typedef double elf_fpreg_t; -typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG]; +/* Score does not have fp regs. */ +typedef double elf_fpreg_t; +typedef elf_fpreg_t elf_fpregset_t; #define elf_check_arch(x) ((x)->e_machine == EM_SCORE7) @@ -57,6 +60,7 @@ do { \ struct task_struct; struct pt_regs; +#define CORE_DUMP_USE_REGSET #define USE_ELF_CORE_DUMP #define ELF_EXEC_PAGESIZE PAGE_SIZE diff --git a/arch/score/include/asm/irqflags.h b/arch/score/include/asm/irqflags.h index 92eeb33..690a6ca 100644 --- a/arch/score/include/asm/irqflags.h +++ b/arch/score/include/asm/irqflags.h @@ -17,8 +17,6 @@ "nop;" \ "nop;" \ "nop;" \ - "ldi r9, 0x1;" \ - "and %0, %0, r9;" \ : "=r" (x) \ : \ : "r8", "r9" \ diff --git a/arch/score/kernel/signal.c b/arch/score/kernel/signal.c index 950f87c..aa57440 100644 --- a/arch/score/kernel/signal.c +++ b/arch/score/kernel/signal.c @@ -25,14 +25,14 @@ #include <linux/errno.h> #include <linux/signal.h> +#include <linux/ptrace.h> #include <linux/unistd.h> #include <linux/uaccess.h> +#include <asm/cacheflush.h> #include <asm/syscalls.h> #include <asm/ucontext.h> -#include <asm/cacheflush.h> - #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP))) struct rt_sigframe { diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c index d496e9f..4e3dcd0 100644 --- a/arch/score/mm/init.c +++ b/arch/score/mm/init.c @@ -144,7 +144,8 @@ void free_initrd_mem(unsigned long start, unsigned long end) void __init_refok free_initmem(void) { free_init_pages("unused kernel memory", - (unsigned long)__init_begin, (unsigned long)__init_end); + __pa(&__init_begin), + __pa(&__init_end)); } unsigned long pgd_current; @@ -156,4 +157,5 @@ unsigned long pgd_current; * are constants. So we use the variants from asm-offset.h until that gcc * will officially be retired. */ +pgd_t swapper_pg_dir[PTRS_PER_PGD] __page_aligned(PTE_ORDER); pte_t invalid_pte_table[PTRS_PER_PTE] __page_aligned(PTE_ORDER); diff --git a/arch/score/mm/pgtable.c b/arch/score/mm/pgtable.c index 10b0962..6408bb7 100644 --- a/arch/score/mm/pgtable.c +++ b/arch/score/mm/pgtable.c @@ -47,14 +47,6 @@ void pgd_init(unsigned long page) void __init pagetable_init(void) { - unsigned long vaddr; - pgd_t *pgd_base; - /* Initialize the entire pgd. */ - pgd_init((unsigned long) swapper_pg_dir); - pgd_init((unsigned long) swapper_pg_dir - + sizeof(pgd_t) * USER_PTRS_PER_PGD); - - pgd_base = swapper_pg_dir; - vaddr = __fix_to_virt(__end_of_fixed_addresses - 1) & PMD_MASK; + pgd_init((unsigned long)swapper_pg_dir); } |