aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuca Tettamanti <kronos.it@gmail.com>2009-03-29 18:01:27 -0400
committerLen Brown <len.brown@intel.com>2009-04-02 18:57:46 -0400
commit7e90560c50f754d65884e251e94c1efa2a4b5784 (patch)
tree97ae68b0ae4edaebf3de66716759fc09a97deff6
parent8e0ee43bc2c3e19db56a4adaa9a9b04ce885cd84 (diff)
ACPI: acpi_enforce_resource=strict by default
Enforce strict resource checking - disallowing access by native drivers to IO ports and memory regions claimed by ACPI firmware. The patch is mainly aimed to block native hwmon drivers from touching monitoring chips that ACPI thinks it own. If this causes a regression, boot with "acpi_enforce_resources=lax" which was the previous default. http://bugzilla.kernel.org/show_bug.cgi?id=12376 http://bugzilla.kernel.org/show_bug.cgi?id=12541 Signed-off-by: Luca Tettamanti <kronos.it@gmail.com> Acked-by: Pavel Machek <pavel@suse.cz> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Len Brown <len.brown@intel.com>
-rw-r--r--Documentation/kernel-parameters.txt16
-rw-r--r--drivers/acpi/osl.c6
2 files changed, 19 insertions, 3 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 54f21a5c262b..7068d0bc47c5 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -258,6 +258,22 @@ and is between 256 and 4096 characters. It is defined in the file
258 to assume that this machine's pmtimer latches its value 258 to assume that this machine's pmtimer latches its value
259 and always returns good values. 259 and always returns good values.
260 260
261 acpi_enforce_resources= [ACPI]
262 { strict | lax | no }
263 Check for resource conflicts between native drivers
264 and ACPI OperationRegions (SystemIO and SystemMemory
265 only). IO ports and memory declared in ACPI might be
266 used by the ACPI subsystem in arbitrary AML code and
267 can interfere with legacy drivers.
268 strict (default): access to resources claimed by ACPI
269 is denied; legacy drivers trying to access reserved
270 resources will fail to bind to device using them.
271 lax: access to resources claimed by ACPI is allowed;
272 legacy drivers trying to access reserved resources
273 will bind successfully but a warning message is logged.
274 no: ACPI OperationRegions are not marked as reserved,
275 no further checks are performed.
276
261 agp= [AGP] 277 agp= [AGP]
262 { off | try_unsupported } 278 { off | try_unsupported }
263 off: disable AGP support 279 off: disable AGP support
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 1e35f342957c..f50ca1ea80c3 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -1063,9 +1063,9 @@ __setup("acpi_wake_gpes_always_on", acpi_wake_gpes_always_on_setup);
1063 * in arbitrary AML code and can interfere with legacy drivers. 1063 * in arbitrary AML code and can interfere with legacy drivers.
1064 * acpi_enforce_resources= can be set to: 1064 * acpi_enforce_resources= can be set to:
1065 * 1065 *
1066 * - strict (2) 1066 * - strict (default) (2)
1067 * -> further driver trying to access the resources will not load 1067 * -> further driver trying to access the resources will not load
1068 * - lax (default) (1) 1068 * - lax (1)
1069 * -> further driver trying to access the resources will load, but you 1069 * -> further driver trying to access the resources will load, but you
1070 * get a system message that something might go wrong... 1070 * get a system message that something might go wrong...
1071 * 1071 *
@@ -1077,7 +1077,7 @@ __setup("acpi_wake_gpes_always_on", acpi_wake_gpes_always_on_setup);
1077#define ENFORCE_RESOURCES_LAX 1 1077#define ENFORCE_RESOURCES_LAX 1
1078#define ENFORCE_RESOURCES_NO 0 1078#define ENFORCE_RESOURCES_NO 0
1079 1079
1080static unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_LAX; 1080static unsigned int acpi_enforce_resources = ENFORCE_RESOURCES_STRICT;
1081 1081
1082static int __init acpi_enforce_resources_setup(char *str) 1082static int __init acpi_enforce_resources_setup(char *str)
1083{ 1083{