* If a processor's softc is NULL, use C1 since there is no ACPI

processor object for this CPU.  This occurs for logical CPUs which
  do not have an associated processor object (e.g., HTT).

Approved by:	re (rwatson)
This commit is contained in:
Nate Lawson 2003-11-27 16:32:46 +00:00
parent 623f556031
commit cd1f3db9ba

View File

@ -807,16 +807,23 @@ acpi_cpu_idle()
uint32_t start_time, end_time;
int bm_active, i, asleep;
/* Look up our CPU id and to get our softc. */
sc = cpu_softc[PCPU_GET(cpuid)];
KASSERT(sc != NULL, ("NULL softc for %d", PCPU_GET(cpuid)));
/* If disabled, return immediately. */
if (cpu_cx_count == 0) {
ACPI_ENABLE_IRQS();
return;
}
/*
* Look up our CPU id to get our softc. If it's NULL, we'll use C1
* since there is no ACPI processor object for this CPU. This occurs
* for logical CPUs in the HTT case.
*/
sc = cpu_softc[PCPU_GET(cpuid)];
if (sc == NULL) {
acpi_cpu_c1();
return;
}
/* Record that a CPU is in the idle function. */
atomic_add_int(&cpu_idle_busy, 1);