Defer calling lapic_init() until we've completed the 'MPTable: <...>'

printf.  Otherwise, printfs inside of lapic_init() (such as during a
verbose boot) can uglify the output.
This commit is contained in:
John Baldwin 2007-03-09 15:49:57 +00:00
parent 087d64de6f
commit 07bb813626
2 changed files with 8 additions and 4 deletions

View File

@ -316,18 +316,20 @@ mptable_probe_cpus(void)
static int static int
mptable_setup_local(void) mptable_setup_local(void)
{ {
vm_paddr_t addr;
/* Is this a pre-defined config? */ /* Is this a pre-defined config? */
printf("MPTable: <"); printf("MPTable: <");
if (mpfps->config_type != 0) { if (mpfps->config_type != 0) {
lapic_init(DEFAULT_APIC_BASE); addr = DEFAULT_APIC_BASE;
printf("Default Configuration %d", mpfps->config_type); printf("Default Configuration %d", mpfps->config_type);
} else { } else {
lapic_init(mpct->apic_address); addr = mpct->apic_address;
printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id, printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id,
(int)sizeof(mpct->product_id), mpct->product_id); (int)sizeof(mpct->product_id), mpct->product_id);
} }
printf(">\n"); printf(">\n");
lapic_init(addr);
return (0); return (0);
} }

View File

@ -321,18 +321,20 @@ mptable_probe_cpus(void)
static int static int
mptable_setup_local(void) mptable_setup_local(void)
{ {
vm_paddr_t addr;
/* Is this a pre-defined config? */ /* Is this a pre-defined config? */
printf("MPTable: <"); printf("MPTable: <");
if (mpfps->config_type != 0) { if (mpfps->config_type != 0) {
lapic_init(DEFAULT_APIC_BASE); addr = DEFAULT_APIC_BASE;
printf("Default Configuration %d", mpfps->config_type); printf("Default Configuration %d", mpfps->config_type);
} else { } else {
lapic_init(mpct->apic_address); addr = mpct->apic_address;
printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id, printf("%.*s %.*s", (int)sizeof(mpct->oem_id), mpct->oem_id,
(int)sizeof(mpct->product_id), mpct->product_id); (int)sizeof(mpct->product_id), mpct->product_id);
} }
printf(">\n"); printf(">\n");
lapic_init(addr);
return (0); return (0);
} }