This is a follow-up, cleaning-up commit about recent changes involving

topology foo functions.
Working at the patch for topology problems in ia32/amd64 evicted some
problems regarding functions ordering in the SI_SUB_CPU family of
SYSINIT'ed subsystems.
In order to avoid problems with new modified to involved functions, a
correct ordering is not semantically specified for SI_SUB_CPU functions
(for a larger view of the issue please visit:
http://lists.freebsd.org/pipermail/freebsd-current/2007-July/075409.html )

Discussed with: peter
Tested by: kris, Rui Paulo <rpaulo@FreeBSD.org>
Approved by: jeff
Approved by: re
This commit is contained in:
attilio 2007-09-11 22:54:09 +00:00
parent e558a701f7
commit ae7f786cc5
5 changed files with 5 additions and 5 deletions

View File

@ -1061,7 +1061,7 @@ apic_setup_local(void *dummy __unused)
printf("%s: Failed to setup the local APIC: returned %d\n",
best_enum->apic_name, retval);
}
SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_FIRST, apic_setup_local, NULL)
SYSINIT(apic_setup_local, SI_SUB_CPU, SI_ORDER_SECOND, apic_setup_local, NULL)
/*
* Setup the I/O APICs.

View File

@ -406,7 +406,7 @@ madt_register(void *dummy __unused)
apic_register_enumerator(&madt_enumerator);
}
SYSINIT(madt_register, SI_SUB_CPU - 1, SI_ORDER_FIRST, madt_register, NULL)
SYSINIT(madt_register, SI_SUB_CPU - 1, SI_ORDER_SECOND, madt_register, NULL)
/*
* Call the handler routine for each entry in the MADT table.

View File

@ -1065,7 +1065,7 @@ apic_init(void *dummy __unused)
printf("%s: Failed to setup the local APIC: returned %d\n",
best_enum->apic_name, retval);
}
SYSINIT(apic_init, SI_SUB_CPU, SI_ORDER_FIRST, apic_init, NULL)
SYSINIT(apic_init, SI_SUB_CPU, SI_ORDER_SECOND, apic_init, NULL)
/*
* Setup the I/O APICs.

View File

@ -148,7 +148,7 @@ mp_start(void *dummy)
mp_ncpus);
cpu_mp_announce();
}
SYSINIT(cpu_mp, SI_SUB_CPU, SI_ORDER_SECOND, mp_start, NULL)
SYSINIT(cpu_mp, SI_SUB_CPU, SI_ORDER_THIRD, mp_start, NULL)
void
forward_signal(struct thread *td)

View File

@ -53,7 +53,7 @@ static void mdesc_postvm_init(void *);
* can kill off all calls to OBP. OBP removal is not in
* the critical path for sun4v at this time.
*/
SYSINIT(mdesc_init, SI_SUB_CPU, SI_ORDER_FIRST, mdesc_postvm_init, NULL);
SYSINIT(mdesc_init, SI_SUB_CPU, SI_ORDER_SECOND, mdesc_postvm_init, NULL);
#define UNIMPLEMENTED panic("%s not implemented.", __FUNCTION__)