diff options
Diffstat (limited to 'arch/score')
-rw-r--r-- | arch/score/Kconfig | 22 | ||||
-rw-r--r-- | arch/score/include/asm/io.h | 1 | ||||
-rw-r--r-- | arch/score/include/asm/pgalloc.h | 2 | ||||
-rw-r--r-- | arch/score/kernel/entry.S | 4 | ||||
-rw-r--r-- | arch/score/kernel/init_task.c | 1 | ||||
-rw-r--r-- | arch/score/kernel/module.c | 29 | ||||
-rw-r--r-- | arch/score/kernel/vmlinux.lds.S | 1 | ||||
-rw-r--r-- | arch/score/mm/fault.c | 2 | ||||
-rw-r--r-- | arch/score/mm/init.c | 1 |
9 files changed, 14 insertions, 49 deletions
diff --git a/arch/score/Kconfig b/arch/score/Kconfig index 288add8..beb9f21 100644 --- a/arch/score/Kconfig +++ b/arch/score/Kconfig @@ -52,16 +52,6 @@ config GENERIC_CALIBRATE_DELAY config GENERIC_CLOCKEVENTS def_bool y -config SCHED_NO_NO_OMIT_FRAME_POINTER - def_bool y - -config GENERIC_SYSCALL_TABLE - def_bool y - -config SCORE_L1_CACHE_SHIFT - int - default "4" - menu "Kernel type" config 32BIT @@ -96,15 +86,6 @@ config STACKTRACE_SUPPORT source "init/Kconfig" -config PROBE_INITRD_HEADER - bool "Probe initrd header created by addinitrd" - depends on BLK_DEV_INITRD - help - Probe initrd header at the last page of kernel image. - Say Y here if you are using arch/score/boot/addinitrd.c to - add initrd or initramfs image to the kernel image. - Otherwise, say N. - config MMU def_bool y @@ -127,3 +108,6 @@ source "security/Kconfig" source "crypto/Kconfig" source "lib/Kconfig" + +config NO_IOMEM + def_bool y diff --git a/arch/score/include/asm/io.h b/arch/score/include/asm/io.h index fbbfd71..574c882 100644 --- a/arch/score/include/asm/io.h +++ b/arch/score/include/asm/io.h @@ -5,5 +5,4 @@ #define virt_to_bus virt_to_phys #define bus_to_virt phys_to_virt - #endif /* _ASM_SCORE_IO_H */ diff --git a/arch/score/include/asm/pgalloc.h b/arch/score/include/asm/pgalloc.h index 059a61b..716b3fd 100644 --- a/arch/score/include/asm/pgalloc.h +++ b/arch/score/include/asm/pgalloc.h @@ -2,7 +2,7 @@ #define _ASM_SCORE_PGALLOC_H #include <linux/mm.h> - +#include <linux/highmem.h> static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd, pte_t *pte) { diff --git a/arch/score/kernel/entry.S b/arch/score/kernel/entry.S index 83bb960..89702ac 100644 --- a/arch/score/kernel/entry.S +++ b/arch/score/kernel/entry.S @@ -264,7 +264,7 @@ resume_kernel: disable_irq lw r8, [r28, TI_PRE_COUNT] cmpz.c r8 - bne r8, restore_all + bne restore_all need_resched: lw r8, [r28, TI_FLAGS] andri.c r9, r8, _TIF_NEED_RESCHED @@ -408,7 +408,7 @@ ENTRY(handle_sys) sw r9, [r0, PT_EPC] cmpi.c r27, __NR_syscalls # check syscall number - bgeu illegal_syscall + bcs illegal_syscall slli r8, r27, 2 # get syscall routine la r11, sys_call_table diff --git a/arch/score/kernel/init_task.c b/arch/score/kernel/init_task.c index baa03ee..753a9f1 100644 --- a/arch/score/kernel/init_task.c +++ b/arch/score/kernel/init_task.c @@ -23,6 +23,7 @@ #include <linux/init_task.h> #include <linux/mqueue.h> +#include <linux/export.h> static struct signal_struct init_signals = INIT_SIGNALS(init_signals); static struct sighand_struct init_sighand = INIT_SIGHAND(init_sighand); diff --git a/arch/score/kernel/module.c b/arch/score/kernel/module.c index 4de8d47..469e3b6 100644 --- a/arch/score/kernel/module.c +++ b/arch/score/kernel/module.c @@ -27,23 +27,6 @@ #include <linux/module.h> #include <linux/vmalloc.h> -void *module_alloc(unsigned long size) -{ - return size ? vmalloc(size) : NULL; -} - -/* Free memory returned from module_alloc */ -void module_free(struct module *mod, void *module_region) -{ - vfree(module_region); -} - -int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs, - char *secstrings, struct module *mod) -{ - return 0; -} - int apply_relocate(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relindex, struct module *me) @@ -146,6 +129,9 @@ int apply_relocate_add(Elf_Shdr *sechdrs, const char *strtab, unsigned int symindex, unsigned int relsec, struct module *me) { + /* Non-standard return value... most other arch's return -ENOEXEC + * for an unsupported relocation variant + */ return 0; } @@ -154,12 +140,3 @@ const struct exception_table_entry *search_module_dbetables(unsigned long addr) { return NULL; } - -/* Put in dbe list if necessary. */ -int module_finalize(const Elf_Ehdr *hdr, const Elf_Shdr *sechdrs, - struct module *me) -{ - return 0; -} - -void module_arch_cleanup(struct module *mod) {} diff --git a/arch/score/kernel/vmlinux.lds.S b/arch/score/kernel/vmlinux.lds.S index eebcbaa..7274b5c 100644 --- a/arch/score/kernel/vmlinux.lds.S +++ b/arch/score/kernel/vmlinux.lds.S @@ -49,6 +49,7 @@ SECTIONS } . = ALIGN(16); + _sdata = .; /* Start of data section */ RODATA EXCEPTION_TABLE(16) diff --git a/arch/score/mm/fault.c b/arch/score/mm/fault.c index 47b600e..b3744ca 100644 --- a/arch/score/mm/fault.c +++ b/arch/score/mm/fault.c @@ -110,6 +110,8 @@ survive: if (unlikely(fault & VM_FAULT_ERROR)) { if (fault & VM_FAULT_OOM) goto out_of_memory; + else if (fault & VM_FAULT_SIGSEGV) + goto bad_area; else if (fault & VM_FAULT_SIGBUS) goto do_sigbus; BUG(); diff --git a/arch/score/mm/init.c b/arch/score/mm/init.c index cee6bce..150a3e6 100644 --- a/arch/score/mm/init.c +++ b/arch/score/mm/init.c @@ -34,6 +34,7 @@ #include <linux/proc_fs.h> #include <linux/sched.h> #include <linux/initrd.h> +#include <linux/export.h> #include <asm/sections.h> #include <asm/tlb.h> |