Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Pull 5165 into release branch

Len Brown 927fe183 e4f5c82a

+15 -5
+15 -5
drivers/acpi/processor_idle.c
··· 274 274 } 275 275 } 276 276 277 - cx->usage++; 278 - 279 277 #ifdef CONFIG_HOTPLUG_CPU 280 278 /* 281 279 * Check for P_LVL2_UP flag before entering C2 and above on ··· 281 283 * detection phase, to work cleanly with logical CPU hotplug. 282 284 */ 283 285 if ((cx->type != ACPI_STATE_C1) && (num_online_cpus() > 1) && 284 - !pr->flags.has_cst && acpi_fadt.plvl2_up) 285 - cx->type = ACPI_STATE_C1; 286 + !pr->flags.has_cst && !acpi_fadt.plvl2_up) 287 + cx = &pr->power.states[ACPI_STATE_C1]; 286 288 #endif 289 + 290 + cx->usage++; 291 + 287 292 /* 288 293 * Sleep: 289 294 * ------ ··· 386 385 } 387 386 388 387 next_state = pr->power.state; 388 + 389 + #ifdef CONFIG_HOTPLUG_CPU 390 + /* Don't do promotion/demotion */ 391 + if ((cx->type == ACPI_STATE_C1) && (num_online_cpus() > 1) && 392 + !pr->flags.has_cst && !acpi_fadt.plvl2_up) { 393 + next_state = cx; 394 + goto end; 395 + } 396 + #endif 389 397 390 398 /* 391 399 * Promotion? ··· 567 557 * Check for P_LVL2_UP flag before entering C2 and above on 568 558 * an SMP system. 569 559 */ 570 - if ((num_online_cpus() > 1) && acpi_fadt.plvl2_up) 560 + if ((num_online_cpus() > 1) && !acpi_fadt.plvl2_up) 571 561 return_VALUE(-ENODEV); 572 562 #endif 573 563