|
@@ -95,7 +95,8 @@ int aarch32_setup_vectors_page(struct linux_binprm *bprm, int uses_interp)
|
|
|
};
|
|
|
void *ret;
|
|
|
|
|
|
- down_write(&mm->mmap_sem);
|
|
|
+ if (down_write_killable(&mm->mmap_sem))
|
|
|
+ return -EINTR;
|
|
|
current->mm->context.vdso = (void *)addr;
|
|
|
|
|
|
/* Map vectors page at the high address. */
|
|
@@ -163,7 +164,8 @@ int arch_setup_additional_pages(struct linux_binprm *bprm,
|
|
|
/* Be sure to map the data page */
|
|
|
vdso_mapping_len = vdso_text_len + PAGE_SIZE;
|
|
|
|
|
|
- down_write(&mm->mmap_sem);
|
|
|
+ if (down_write_killable(&mm->mmap_sem))
|
|
|
+ return -EINTR;
|
|
|
vdso_base = get_unmapped_area(NULL, 0, vdso_mapping_len, 0, 0);
|
|
|
if (IS_ERR_VALUE(vdso_base)) {
|
|
|
ret = ERR_PTR(vdso_base);
|