x86: Move find_smp_config() earlier and avoid bootmem usage
Move the find_smp_config() call to before bootmem is initialized. Use reserve_early() instead of reserve_bootmem() in it. This simplifies the code, we only need to call find_smp_config() once and can remove the now unneeded reserve parameter from x86_init_mpparse::find_smp_config. We thus also reduce x86's dependency on bootmem allocations. Signed-off-by: Yinghai Lu <yinghai@kernel.org> LKML-Reference: <4B0BB9F2.70907@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
@@ -71,12 +71,7 @@ static inline void early_get_smp_config(void)
|
||||
|
||||
static inline void find_smp_config(void)
|
||||
{
|
||||
x86_init.mpparse.find_smp_config(1);
|
||||
}
|
||||
|
||||
static inline void early_find_smp_config(void)
|
||||
{
|
||||
x86_init.mpparse.find_smp_config(0);
|
||||
x86_init.mpparse.find_smp_config();
|
||||
}
|
||||
|
||||
#ifdef CONFIG_X86_MPPARSE
|
||||
@@ -89,7 +84,7 @@ extern void default_mpc_oem_bus_info(struct mpc_bus *m, char *str);
|
||||
# else
|
||||
# define default_mpc_oem_bus_info NULL
|
||||
# endif
|
||||
extern void default_find_smp_config(unsigned int reserve);
|
||||
extern void default_find_smp_config(void);
|
||||
extern void default_get_smp_config(unsigned int early);
|
||||
#else
|
||||
static inline void early_reserve_e820_mpc_new(void) { }
|
||||
@@ -97,7 +92,7 @@ static inline void early_reserve_e820_mpc_new(void) { }
|
||||
#define default_mpc_apic_id NULL
|
||||
#define default_smp_read_mpc_oem NULL
|
||||
#define default_mpc_oem_bus_info NULL
|
||||
#define default_find_smp_config x86_init_uint_noop
|
||||
#define default_find_smp_config x86_init_noop
|
||||
#define default_get_smp_config x86_init_uint_noop
|
||||
#endif
|
||||
|
||||
|
Reference in New Issue
Block a user