|
@@ -512,7 +512,8 @@ static void acpi_processor_power_verify_c2(struct acpi_processor_cx *cx)
|
|
|
static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
|
|
|
struct acpi_processor_cx *cx)
|
|
|
{
|
|
|
- static int bm_check_flag;
|
|
|
+ static int bm_check_flag = -1;
|
|
|
+ static int bm_control_flag = -1;
|
|
|
|
|
|
|
|
|
if (!cx->address)
|
|
@@ -542,12 +543,14 @@ static void acpi_processor_power_verify_c3(struct acpi_processor *pr,
|
|
|
}
|
|
|
|
|
|
/* All the logic here assumes flags.bm_check is same across all CPUs */
|
|
|
- if (!bm_check_flag) {
|
|
|
+ if (bm_check_flag == -1) {
|
|
|
/* Determine whether bm_check is needed based on CPU */
|
|
|
acpi_processor_power_init_bm_check(&(pr->flags), pr->id);
|
|
|
bm_check_flag = pr->flags.bm_check;
|
|
|
+ bm_control_flag = pr->flags.bm_control;
|
|
|
} else {
|
|
|
pr->flags.bm_check = bm_check_flag;
|
|
|
+ pr->flags.bm_control = bm_control_flag;
|
|
|
}
|
|
|
|
|
|
if (pr->flags.bm_check) {
|