diff options
Diffstat (limited to 'arch/powerpc/kernel/vdso.c')
| -rw-r--r-- | arch/powerpc/kernel/vdso.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c index 65639a43e644..ad06d5c75b15 100644 --- a/arch/powerpc/kernel/vdso.c +++ b/arch/powerpc/kernel/vdso.c | |||
| @@ -184,8 +184,7 @@ static void dump_vdso_pages(struct vm_area_struct * vma) | |||
| 184 | * This is called from binfmt_elf, we create the special vma for the | 184 | * This is called from binfmt_elf, we create the special vma for the |
| 185 | * vDSO and insert it into the mm struct tree | 185 | * vDSO and insert it into the mm struct tree |
| 186 | */ | 186 | */ |
| 187 | int arch_setup_additional_pages(struct linux_binprm *bprm, | 187 | int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp) |
| 188 | int executable_stack) | ||
| 189 | { | 188 | { |
| 190 | struct mm_struct *mm = current->mm; | 189 | struct mm_struct *mm = current->mm; |
| 191 | struct page **vdso_pagelist; | 190 | struct page **vdso_pagelist; |
| @@ -567,6 +566,11 @@ static __init int vdso_fixup_features(struct lib32_elfinfo *v32, | |||
| 567 | do_feature_fixups(cur_cpu_spec->cpu_features, | 566 | do_feature_fixups(cur_cpu_spec->cpu_features, |
| 568 | start64, start64 + size64); | 567 | start64, start64 + size64); |
| 569 | 568 | ||
| 569 | start64 = find_section64(v64->hdr, "__mmu_ftr_fixup", &size64); | ||
| 570 | if (start64) | ||
| 571 | do_feature_fixups(cur_cpu_spec->mmu_features, | ||
| 572 | start64, start64 + size64); | ||
| 573 | |||
| 570 | start64 = find_section64(v64->hdr, "__fw_ftr_fixup", &size64); | 574 | start64 = find_section64(v64->hdr, "__fw_ftr_fixup", &size64); |
| 571 | if (start64) | 575 | if (start64) |
| 572 | do_feature_fixups(powerpc_firmware_features, | 576 | do_feature_fixups(powerpc_firmware_features, |
| @@ -583,6 +587,11 @@ static __init int vdso_fixup_features(struct lib32_elfinfo *v32, | |||
| 583 | do_feature_fixups(cur_cpu_spec->cpu_features, | 587 | do_feature_fixups(cur_cpu_spec->cpu_features, |
| 584 | start32, start32 + size32); | 588 | start32, start32 + size32); |
| 585 | 589 | ||
| 590 | start32 = find_section32(v32->hdr, "__mmu_ftr_fixup", &size32); | ||
| 591 | if (start32) | ||
| 592 | do_feature_fixups(cur_cpu_spec->mmu_features, | ||
| 593 | start32, start32 + size32); | ||
| 594 | |||
| 586 | #ifdef CONFIG_PPC64 | 595 | #ifdef CONFIG_PPC64 |
| 587 | start32 = find_section32(v32->hdr, "__fw_ftr_fixup", &size32); | 596 | start32 = find_section32(v32->hdr, "__fw_ftr_fixup", &size32); |
| 588 | if (start32) | 597 | if (start32) |
