diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-08-03 10:49:38 +0100 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2013-08-03 10:49:38 +0100 |
commit | e35ac62d2202e31307c0f9b278a61e484c4727f2 (patch) | |
tree | 53b86d6fbe1738df3a2cc7e6a892ff8861164e3a /arch/arm/kernel/process.c | |
parent | 24195cad3e00557da166d629c8b0fd2f984f2170 (diff) | |
parent | 8c0cc8a5d90bc7373a7a9e7f7a40eb41f51e03fc (diff) | |
download | talos-obmc-linux-e35ac62d2202e31307c0f9b278a61e484c4727f2.tar.gz talos-obmc-linux-e35ac62d2202e31307c0f9b278a61e484c4727f2.zip |
Merge branch 'security-fixes' into fixes
Diffstat (limited to 'arch/arm/kernel/process.c')
-rw-r--r-- | arch/arm/kernel/process.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c index 16ed3f7c4980..536c85fe72a8 100644 --- a/arch/arm/kernel/process.c +++ b/arch/arm/kernel/process.c @@ -474,17 +474,18 @@ const char *arch_vma_name(struct vm_area_struct *vma) "[sigpage]" : NULL; } +static struct page *signal_page; extern struct page *get_signal_page(void); int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) { struct mm_struct *mm = current->mm; - struct page *page; unsigned long addr; int ret; - page = get_signal_page(); - if (!page) + if (!signal_page) + signal_page = get_signal_page(); + if (!signal_page) return -ENOMEM; down_write(&mm->mmap_sem); @@ -496,7 +497,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) ret = install_special_mapping(mm, addr, PAGE_SIZE, VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC, - &page); + &signal_page); if (ret == 0) mm->context.sigpage = addr; |