[RFC v2][PATCH 9/9] intel_idle: Add module parameter to prevent ACPI _CST from being used

From: Rafael J. Wysocki
Date: Tue Dec 10 2019 - 07:13:32 EST


From: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>

Add a new module parameter called "no_acpi" to the intel_idle driver
to allow the driver to be prevented from using ACPI _CST via kernel
command line.

Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@xxxxxxxxx>
---
drivers/idle/intel_idle.c | 9 +++++++++
1 file changed, 9 insertions(+)

Index: linux-pm/drivers/idle/intel_idle.c
===================================================================
--- linux-pm.orig/drivers/idle/intel_idle.c
+++ linux-pm/drivers/idle/intel_idle.c
@@ -1138,6 +1138,10 @@ static bool intel_idle_max_cstate_reache
#ifdef CONFIG_ACPI_PROCESSOR_CSTATE
#include <acpi/processor.h>

+static bool no_acpi __read_mostly;
+module_param(no_acpi, bool, 0444);
+MODULE_PARM_DESC(no_acpi, "Do not use ACPI _CST for building the idle states list");
+
static struct acpi_processor_power acpi_state_table;

/**
@@ -1167,6 +1171,11 @@ static bool intel_idle_acpi_cst_extract(
{
unsigned int cpu;

+ if (no_acpi) {
+ pr_debug("Not allowed to use ACPI _CST\n");
+ return false;
+ }
+
for_each_possible_cpu(cpu) {
struct acpi_processor *pr = per_cpu(processors, cpu);