aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/process.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2017-07-08 15:17:25 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2017-07-08 15:17:25 -0400
commit09b56d5a418b7ced4ca427c7cf8faf11df72364c (patch)
tree88ad1fe20f8fd7df89131cef5c7f8ef96f15406d /arch/arm/kernel/process.c
parentfe1b518075d86976db3a93e7e8b640d24d477519 (diff)
parent98becb781e3e27d74efe5f3653b948d39f694cfb (diff)
Merge branch 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
Pull ARM updates from Russell King: - add support for ftrace-with-registers, which is needed for kgraft and other ftrace tools - support for mremap() for the sigpage/vDSO so that checkpoint/restore can work - add timestamps to each line of the register dump output - remove the unused KTHREAD_SIZE from nommu - align the ARM bitops APIs with the generic API (using unsigned long pointers rather than void pointers) - make the configuration of userspace Thumb support an expert option so that we can default it on, and avoid some hard to debug userspace crashes * 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm: ARM: 8684/1: NOMMU: Remove unused KTHREAD_SIZE definition ARM: 8683/1: ARM32: Support mremap() for sigpage/vDSO ARM: 8679/1: bitops: Align prototypes to generic API ARM: 8678/1: ftrace: Adds support for CONFIG_DYNAMIC_FTRACE_WITH_REGS ARM: make configuration of userspace Thumb support an expert option ARM: 8673/1: Fix __show_regs output timestamps
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r--arch/arm/kernel/process.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
index 939e8b58c59d..d96714e1858c 100644
--- a/arch/arm/kernel/process.c
+++ b/arch/arm/kernel/process.c
@@ -123,10 +123,10 @@ void __show_regs(struct pt_regs *regs)
123 123
124 print_symbol("PC is at %s\n", instruction_pointer(regs)); 124 print_symbol("PC is at %s\n", instruction_pointer(regs));
125 print_symbol("LR is at %s\n", regs->ARM_lr); 125 print_symbol("LR is at %s\n", regs->ARM_lr);
126 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n" 126 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n",
127 "sp : %08lx ip : %08lx fp : %08lx\n", 127 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr);
128 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr, 128 printk("sp : %08lx ip : %08lx fp : %08lx\n",
129 regs->ARM_sp, regs->ARM_ip, regs->ARM_fp); 129 regs->ARM_sp, regs->ARM_ip, regs->ARM_fp);
130 printk("r10: %08lx r9 : %08lx r8 : %08lx\n", 130 printk("r10: %08lx r9 : %08lx r8 : %08lx\n",
131 regs->ARM_r10, regs->ARM_r9, 131 regs->ARM_r10, regs->ARM_r9,
132 regs->ARM_r8); 132 regs->ARM_r8);
@@ -404,9 +404,17 @@ static unsigned long sigpage_addr(const struct mm_struct *mm,
404static struct page *signal_page; 404static struct page *signal_page;
405extern struct page *get_signal_page(void); 405extern struct page *get_signal_page(void);
406 406
407static int sigpage_mremap(const struct vm_special_mapping *sm,
408 struct vm_area_struct *new_vma)
409{
410 current->mm->context.sigpage = new_vma->vm_start;
411 return 0;
412}
413
407static const struct vm_special_mapping sigpage_mapping = { 414static const struct vm_special_mapping sigpage_mapping = {
408 .name = "[sigpage]", 415 .name = "[sigpage]",
409 .pages = &signal_page, 416 .pages = &signal_page,
417 .mremap = sigpage_mremap,
410}; 418};
411 419
412int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) 420int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)