Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e85f2051 authored by Thomas Gleixner's avatar Thomas Gleixner Committed by Ingo Molnar
Browse files

x86: EFI: fix use of unitialized variable and the cache logic



Andi Kleen pointed out that the cache attribute logic is reverse in
efi_enter_virtual_mode(). This problem alone is harmless as we do not
(yet) do cache attribute conflict resolution. (This bug was not present
in the original EFI submission - I introduced it while fixing up rejects.)

While reviewing this code I noticed a second, worse problem: the use of
uninitialized md->virt_addr.

Fix both problems.

Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 5d3c8b21
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -428,9 +428,6 @@ void __init efi_enter_virtual_mode(void)
		else
			va = efi_ioremap(md->phys_addr, size);

		if (md->attribute & EFI_MEMORY_WB)
			set_memory_uc(md->virt_addr, size);

		md->virt_addr = (u64) (unsigned long) va;

		if (!va) {
@@ -439,6 +436,9 @@ void __init efi_enter_virtual_mode(void)
			continue;
		}

		if (!(md->attribute & EFI_MEMORY_WB))
			set_memory_uc(md->virt_addr, size);

		systab = (u64) (unsigned long) efi_phys.systab;
		if (md->phys_addr <= systab && systab < end) {
			systab += md->virt_addr - md->phys_addr;