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

Commit ed26dbe5 authored by Jeremy Fitzhardinge's avatar Jeremy Fitzhardinge Committed by Ingo Molnar
Browse files

x86: pre-initialize boot_cpu_data.x86_phys_bits to avoid system_state tests



Impact: cleanup, micro-optimization

Pre-initialize boot_cpu_data.x86_phys_bits to a reasonable default
to remove the use of system_state tests in __virt_addr_valid()
and __phys_addr().

Signed-off-by: default avatarJeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent dc16ecf7
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -202,7 +202,9 @@ struct ist_info ist_info;
#endif

#else
struct cpuinfo_x86 boot_cpu_data __read_mostly;
struct cpuinfo_x86 boot_cpu_data __read_mostly = {
	.x86_phys_bits = MAX_PHYSMEM_BITS,
};
EXPORT_SYMBOL(boot_cpu_data);
#endif

+2 −5
Original line number Diff line number Diff line
@@ -38,8 +38,7 @@ unsigned long __phys_addr(unsigned long x)
	} else {
		VIRTUAL_BUG_ON(x < PAGE_OFFSET);
		x -= PAGE_OFFSET;
		VIRTUAL_BUG_ON(system_state == SYSTEM_BOOTING ? x > MAXMEM :
					!phys_addr_valid(x));
		VIRTUAL_BUG_ON(!phys_addr_valid(x));
	}
	return x;
}
@@ -56,11 +55,9 @@ bool __virt_addr_valid(unsigned long x)
		if (x < PAGE_OFFSET)
			return false;
		x -= PAGE_OFFSET;
		if (system_state == SYSTEM_BOOTING ?
				x > MAXMEM : !phys_addr_valid(x)) {
		if (!phys_addr_valid(x))
			return false;
	}
	}

	return pfn_valid(x >> PAGE_SHIFT);
}