Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit68d3fa2

Browse files
committed
Merge tag 'efi-urgent-for-v5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull EFI fixes from Borislav Petkov: "Forwarded EFI fixes from Ard Biesheuvel: - fix memory leak in efivarfs driver - fix HYP mode issue in 32-bit ARM version of the EFI stub when built in Thumb2 mode - avoid leaking EFI pgd pages on allocation failure"* tag 'efi-urgent-for-v5.10-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: efi/x86: Free efi_pgd with free_pages() efivarfs: fix memory leak in efivarfs_create() efi/arm: set HSCTLR Thumb2 bit correctly for HVC calls from HYP
2 parents7d53be5 +c2fe61d commit68d3fa2

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

‎arch/arm/boot/compressed/head.S‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1472,6 +1472,9 @@ ENTRY(efi_enter_kernel)
14721472
@ issued from HYP mode take us to the correct handler code. We
14731473
@ will disable the MMU before jumping to the kernel proper.
14741474
@
1475+
ARM(bicr1, r1, #(1 <<30)) @ clear HSCTLR.TE
1476+
THUMB(orrr1, r1, #(1 <<30)) @ set HSCTLR.TE
1477+
mcrp15,4, r1, c1, c0,0
14751478
adrr0, __hyp_reentry_vectors
14761479
mcrp15,4, r0, c12, c0,0@ set HYP vector base (HVBAR)
14771480
isb

‎arch/x86/platform/efi/efi_64.c‎

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -78,28 +78,30 @@ int __init efi_alloc_page_tables(void)
7878
gfp_mask=GFP_KERNEL |__GFP_ZERO;
7979
efi_pgd= (pgd_t*)__get_free_pages(gfp_mask,PGD_ALLOCATION_ORDER);
8080
if (!efi_pgd)
81-
return-ENOMEM;
81+
gotofail;
8282

8383
pgd=efi_pgd+pgd_index(EFI_VA_END);
8484
p4d=p4d_alloc(&init_mm,pgd,EFI_VA_END);
85-
if (!p4d) {
86-
free_page((unsigned long)efi_pgd);
87-
return-ENOMEM;
88-
}
85+
if (!p4d)
86+
gotofree_pgd;
8987

9088
pud=pud_alloc(&init_mm,p4d,EFI_VA_END);
91-
if (!pud) {
92-
if (pgtable_l5_enabled())
93-
free_page((unsigned long)pgd_page_vaddr(*pgd));
94-
free_pages((unsigned long)efi_pgd,PGD_ALLOCATION_ORDER);
95-
return-ENOMEM;
96-
}
89+
if (!pud)
90+
gotofree_p4d;
9791

9892
efi_mm.pgd=efi_pgd;
9993
mm_init_cpumask(&efi_mm);
10094
init_new_context(NULL,&efi_mm);
10195

10296
return0;
97+
98+
free_p4d:
99+
if (pgtable_l5_enabled())
100+
free_page((unsigned long)pgd_page_vaddr(*pgd));
101+
free_pgd:
102+
free_pages((unsigned long)efi_pgd,PGD_ALLOCATION_ORDER);
103+
fail:
104+
return-ENOMEM;
103105
}
104106

105107
/*

‎fs/efivarfs/super.c‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ LIST_HEAD(efivarfs_list);
2121
staticvoidefivarfs_evict_inode(structinode*inode)
2222
{
2323
clear_inode(inode);
24+
kfree(inode->i_private);
2425
}
2526

2627
staticconststructsuper_operationsefivarfs_ops= {

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp