Changeset da68871a in mainline for kernel/arch/ia32/src/smp/apic.c
- Timestamp:
- 2012-08-08T08:46:22Z (13 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 30c0826
- Parents:
- bc216a0 (diff), 1d01cca (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/smp/apic.c
rbc216a0 rda68871a 259 259 } 260 260 261 static void ipi_wait_for_idle(void) 261 /* Waits for the destination cpu to accept the previous ipi. */ 262 static void l_apic_wait_for_delivery(void) 262 263 { 263 264 icr_t icr; 264 265 265 /* Wait for the destination cpu to accept the previous ipi. */266 266 do { 267 267 icr.lo = l_apic[ICRlo]; … … 281 281 282 282 /* Wait for a destination cpu to accept our previous ipi. */ 283 ipi_wait_for_idle();283 l_apic_wait_for_delivery(); 284 284 285 285 icr.lo = l_apic[ICRlo]; … … 298 298 l_apic[ICRlo] = icr.lo; 299 299 300 #ifdef CONFIG_DEBUG301 icr.lo = l_apic[ICRlo];302 if (icr.delivs == DELIVS_PENDING) {303 printf("IPI is pending.\n");304 }305 #endif306 307 300 return apic_poll_errors(); 308 301 } … … 320 313 321 314 /* Wait for a destination cpu to accept our previous ipi. */ 322 ipi_wait_for_idle();315 l_apic_wait_for_delivery(); 323 316 324 317 icr.lo = l_apic[ICRlo]; … … 332 325 l_apic[ICRlo] = icr.lo; 333 326 334 icr.lo = l_apic[ICRlo];335 if (icr.delivs == DELIVS_PENDING) {336 #ifdef CONFIG_DEBUG337 printf("IPI is pending.\n");338 #endif339 }340 341 327 return apic_poll_errors(); 342 328 } … … 379 365 return 0; 380 366 367 l_apic_wait_for_delivery(); 368 381 369 icr.lo = l_apic[ICRlo]; 382 if (icr.delivs == DELIVS_PENDING) {383 #ifdef CONFIG_DEBUG384 printf("IPI is pending.\n");385 #endif386 }387 388 370 icr.delmod = DELMOD_INIT; 389 371 icr.destmod = DESTMOD_PHYS; … … 518 500 dfr.model = MODEL_FLAT; 519 501 l_apic[DFR] = dfr.value; 520 521 if (CPU->arch.id != l_apic_id()) {522 #ifdef CONFIG_DEBUG523 printf("lapic error: LAPIC ID (%" PRIu8 ") and hw ID assigned by BSP"524 " (%u) differ. Correcting to LAPIC ID.\n", l_apic_id(),525 CPU->arch.id);526 #endif527 CPU->arch.id = l_apic_id();528 }529 530 502 } 531 503
Note:
See TracChangeset
for help on using the changeset viewer.