* [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable.
[not found] <cover.1396925060.git.lv.zheng@intel.com>
@ 2014-05-12 7:49 ` Lv Zheng
2014-05-19 22:49 ` Rafael J. Wysocki
2014-05-12 7:50 ` [PATCH v3 2/2] ACPI: Fix the issue that the DSDT local copy is conflict with the customized DSDT Lv Zheng
1 sibling, 1 reply; 6+ messages in thread
From: Lv Zheng @ 2014-05-12 7:49 UTC (permalink / raw)
To: Rafael J. Wysocki, Len Brown; +Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi
User can specify a DSDT with SSDT embedded, in which case, no_static_ssdt
must be enforced during compile-time. If we don't do that and forget to
specify acpi.no_static_ssdt as a boot parameter, then:
1. The AML executable will be executed twice, the second execution is
running under a changed environment.
2. The namespace object conflicts will result in an AE_ALREADY_EXISTS
exception;
3. The namespace objects that are deleted from the original SSDT will be
restored by the auto loading of the original SSDT.
Note that:
1. The DSDT customization is a compile-time feature, thus the SSDT
inclusion indication of the DSDT customization should also be
implemented as a compile-time configurable.
2. According to the commit log:
Commit: 67effe8fff32f60bdf51cba484766ba6003005bb
Subject: ACPI: add "acpi_no_auto_ssdt" bootparam
The acpi.no_static_ssdt (originally acpi.no_auto_ssdt) was introduced to
be used for this use case. And over a long time, there is no other
situation than this requires this boot parameter.
This patch thus converts the runtime kernel parameter into the compile-time
configuration item.
References: https://bugzilla.kernel.org/show_bug.cgi?id=3774
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
Original-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
---
Documentation/kernel-parameters.txt | 10 ----------
drivers/acpi/Kconfig | 32 ++++++++++++++++++++++++++------
drivers/acpi/internal.h | 5 +++++
drivers/acpi/osl.c | 8 +++-----
drivers/acpi/tables.c | 2 ++
5 files changed, 36 insertions(+), 21 deletions(-)
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
index 831fb1e..ceba0d6 100644
--- a/Documentation/kernel-parameters.txt
+++ b/Documentation/kernel-parameters.txt
@@ -237,16 +237,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
This feature is enabled by default.
This option allows to turn off the feature.
- acpi_no_static_ssdt [HW,ACPI]
- Disable installation of static SSDTs at early boot time
- By default, SSDTs contained in the RSDT/XSDT will be
- installed automatically and they will appear under
- /sys/firmware/acpi/tables.
- This option turns off this feature.
- Note that specifying this option does not affect
- dynamic table installation which will install SSDT
- tables to /sys/firmware/acpi/tables/dynamic.
-
acpica_no_return_repair [HW, ACPI]
Disable AML predefined validation mechanism
This mechanism can repair the evaluation result to make
diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
index c0160bb..51dc3b8 100644
--- a/drivers/acpi/Kconfig
+++ b/drivers/acpi/Kconfig
@@ -216,22 +216,40 @@ config ACPI_NUMA
depends on (X86 || IA64)
default y if IA64_GENERIC || IA64_SGI_SN2
-config ACPI_CUSTOM_DSDT_FILE
- string "Custom DSDT Table file to include"
- default ""
+menu "Table override"
+
+menuconfig ACPI_CUSTOM_DSDT
+ bool "Customize DSDT"
depends on !STANDALONE
help
This option supports a custom DSDT by linking it into the kernel.
See Documentation/acpi/dsdt-override.txt
+ If unsure, say N.
+
+if ACPI_CUSTOM_DSDT
+
+config ACPI_CUSTOM_DSDT_FILE
+ string "Custom DSDT Table file to include"
+ default ""
+ help
Enter the full path name to the file which includes the AmlCode
declaration.
If unsure, don't enter a file name.
-config ACPI_CUSTOM_DSDT
- bool
- default ACPI_CUSTOM_DSDT_FILE != ""
+config ACPI_CUSTOM_DSDT_WITH_SSDT
+ bool "Customize DSDT with static SSDTs included"
+ depends on ACPI_CUSTOM_DSDT
+ help
+ This option allows a DSDT override to optionally be a DSDT+SSDT
+ override. In which case, Linux should stop loading static SSDTs
+ from RSDT/XSDT. Otherwise, the load time AML execution of the
+ SSDTs will be errornously executed twice.
+
+ If unsure, say N.
+
+endif
config ACPI_INITRD_TABLE_OVERRIDE
bool "ACPI tables override via initrd"
@@ -243,6 +261,8 @@ config ACPI_INITRD_TABLE_OVERRIDE
initrd, therefore it's safe to say Y.
See Documentation/acpi/initrd_table_override.txt for details
+endmenu
+
config ACPI_DEBUG
bool "Debug Statements"
default n
diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
index 9573913..f84ef59 100644
--- a/drivers/acpi/internal.h
+++ b/drivers/acpi/internal.h
@@ -57,6 +57,11 @@ void acpi_cmos_rtc_init(void);
#else
static inline void acpi_cmos_rtc_init(void) {}
#endif
+#ifdef CONFIG_ACPI_CUSTOM_DSDT_WITH_SSDT
+void __init acpi_ssdt_customized(void);
+#else
+static inline void acpi_ssdt_customized(void) {}
+#endif
extern bool acpi_force_hot_remove;
diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
index 9aeae41..c6024c2 100644
--- a/drivers/acpi/osl.c
+++ b/drivers/acpi/osl.c
@@ -1770,15 +1770,13 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object)
}
#endif
-static int __init acpi_no_static_ssdt_setup(char *s)
+#ifdef CONFIG_ACPI_CUSTOM_DSDT_WITH_SSDT
+void __init acpi_ssdt_customized(void)
{
acpi_gbl_disable_ssdt_table_install = TRUE;
pr_info("ACPI: static SSDT installation disabled\n");
-
- return 0;
}
-
-early_param("acpi_no_static_ssdt", acpi_no_static_ssdt_setup);
+#endif
static int __init acpi_disable_return_repair(char *s)
{
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 2178229..aaf2177 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -184,6 +184,7 @@ void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
}
}
+#include "internal.h"
int __init
acpi_table_parse_entries(char *id,
@@ -333,6 +334,7 @@ int __init acpi_table_init(void)
{
acpi_status status;
+ acpi_ssdt_customized();
status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0);
if (ACPI_FAILURE(status))
return -EINVAL;
--
1.7.10
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH v3 2/2] ACPI: Fix the issue that the DSDT local copy is conflict with the customized DSDT.
[not found] <cover.1396925060.git.lv.zheng@intel.com>
2014-05-12 7:49 ` [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable Lv Zheng
@ 2014-05-12 7:50 ` Lv Zheng
2014-05-19 22:34 ` Rafael J. Wysocki
1 sibling, 1 reply; 6+ messages in thread
From: Lv Zheng @ 2014-05-12 7:50 UTC (permalink / raw)
To: Rafael J. Wysocki, Len Brown
Cc: Lv Zheng, Lv Zheng, linux-kernel, linux-acpi, Enrico Etxe Arte
This patch fixes the following issue:
If DSDT is customized, no local DSDT copy is needed.
Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
Cc: <stable@vger.kernel.org> # 2.6.35.x: aa2110cb: ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT
---
drivers/acpi/bus.c | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
index 610261a..cfd2318 100644
--- a/drivers/acpi/bus.c
+++ b/drivers/acpi/bus.c
@@ -52,6 +52,12 @@ struct proc_dir_entry *acpi_root_dir;
EXPORT_SYMBOL(acpi_root_dir);
#ifdef CONFIG_X86
+#ifdef CONFIG_ACPI_CUSTOM_DSDT
+static inline int set_copy_dsdt(const struct dmi_system_id *id)
+{
+ return 0;
+}
+#else
static int set_copy_dsdt(const struct dmi_system_id *id)
{
printk(KERN_NOTICE "%s detected - "
@@ -59,6 +65,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
acpi_gbl_copy_dsdt_locally = 1;
return 0;
}
+#endif
static struct dmi_system_id dsdt_dmi_table[] __initdata = {
/*
--
1.7.10
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 2/2] ACPI: Fix the issue that the DSDT local copy is conflict with the customized DSDT.
2014-05-12 7:50 ` [PATCH v3 2/2] ACPI: Fix the issue that the DSDT local copy is conflict with the customized DSDT Lv Zheng
@ 2014-05-19 22:34 ` Rafael J. Wysocki
0 siblings, 0 replies; 6+ messages in thread
From: Rafael J. Wysocki @ 2014-05-19 22:34 UTC (permalink / raw)
To: Lv Zheng
Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi,
Enrico Etxe Arte
On Monday, May 12, 2014 03:50:16 PM Lv Zheng wrote:
> This patch fixes the following issue:
> If DSDT is customized, no local DSDT copy is needed.
>
> Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> Signed-off-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
> Cc: <stable@vger.kernel.org> # 2.6.35.x: aa2110cb: ACPI: add boot option acpi=copy_dsdt to fix corrupt DSDT
Queued up for 3.16, thanks!
> ---
> drivers/acpi/bus.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
> index 610261a..cfd2318 100644
> --- a/drivers/acpi/bus.c
> +++ b/drivers/acpi/bus.c
> @@ -52,6 +52,12 @@ struct proc_dir_entry *acpi_root_dir;
> EXPORT_SYMBOL(acpi_root_dir);
>
> #ifdef CONFIG_X86
> +#ifdef CONFIG_ACPI_CUSTOM_DSDT
> +static inline int set_copy_dsdt(const struct dmi_system_id *id)
> +{
> + return 0;
> +}
> +#else
> static int set_copy_dsdt(const struct dmi_system_id *id)
> {
> printk(KERN_NOTICE "%s detected - "
> @@ -59,6 +65,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
> acpi_gbl_copy_dsdt_locally = 1;
> return 0;
> }
> +#endif
>
> static struct dmi_system_id dsdt_dmi_table[] __initdata = {
> /*
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable.
2014-05-12 7:49 ` [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable Lv Zheng
@ 2014-05-19 22:49 ` Rafael J. Wysocki
2014-05-19 22:52 ` Rafael J. Wysocki
0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2014-05-19 22:49 UTC (permalink / raw)
To: Lv Zheng; +Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi
On Monday, May 12, 2014 03:49:59 PM Lv Zheng wrote:
> User can specify a DSDT with SSDT embedded, in which case, no_static_ssdt
> must be enforced during compile-time. If we don't do that and forget to
> specify acpi.no_static_ssdt as a boot parameter, then:
> 1. The AML executable will be executed twice, the second execution is
> running under a changed environment.
> 2. The namespace object conflicts will result in an AE_ALREADY_EXISTS
> exception;
> 3. The namespace objects that are deleted from the original SSDT will be
> restored by the auto loading of the original SSDT.
>
> Note that:
> 1. The DSDT customization is a compile-time feature, thus the SSDT
> inclusion indication of the DSDT customization should also be
> implemented as a compile-time configurable.
> 2. According to the commit log:
> Commit: 67effe8fff32f60bdf51cba484766ba6003005bb
> Subject: ACPI: add "acpi_no_auto_ssdt" bootparam
> The acpi.no_static_ssdt (originally acpi.no_auto_ssdt) was introduced to
> be used for this use case. And over a long time, there is no other
> situation than this requires this boot parameter.
> This patch thus converts the runtime kernel parameter into the compile-time
> configuration item.
>
> References: https://bugzilla.kernel.org/show_bug.cgi?id=3774
> Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
> Original-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
> Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> ---
> Documentation/kernel-parameters.txt | 10 ----------
> drivers/acpi/Kconfig | 32 ++++++++++++++++++++++++++------
> drivers/acpi/internal.h | 5 +++++
> drivers/acpi/osl.c | 8 +++-----
> drivers/acpi/tables.c | 2 ++
> 5 files changed, 36 insertions(+), 21 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index 831fb1e..ceba0d6 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -237,16 +237,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> This feature is enabled by default.
> This option allows to turn off the feature.
>
> - acpi_no_static_ssdt [HW,ACPI]
> - Disable installation of static SSDTs at early boot time
> - By default, SSDTs contained in the RSDT/XSDT will be
> - installed automatically and they will appear under
> - /sys/firmware/acpi/tables.
> - This option turns off this feature.
> - Note that specifying this option does not affect
> - dynamic table installation which will install SSDT
> - tables to /sys/firmware/acpi/tables/dynamic.
> -
> acpica_no_return_repair [HW, ACPI]
> Disable AML predefined validation mechanism
> This mechanism can repair the evaluation result to make
> diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> index c0160bb..51dc3b8 100644
> --- a/drivers/acpi/Kconfig
> +++ b/drivers/acpi/Kconfig
> @@ -216,22 +216,40 @@ config ACPI_NUMA
> depends on (X86 || IA64)
> default y if IA64_GENERIC || IA64_SGI_SN2
>
> -config ACPI_CUSTOM_DSDT_FILE
> - string "Custom DSDT Table file to include"
> - default ""
> +menu "Table override"
> +
> +menuconfig ACPI_CUSTOM_DSDT
I would make this a choice, like the "Kernel compression mode" (in init/Kconfig).
Then ACPI_CUSTOM_DSDT_ONLY and ACPI_CUSTOM_DSDT_WITH_SSDT may be the options
and they both would select ACPI_CUSTOM_DSDT (otherwise invisible to the user), and ->
> + bool "Customize DSDT"
> depends on !STANDALONE
> help
> This option supports a custom DSDT by linking it into the kernel.
> See Documentation/acpi/dsdt-override.txt
>
> + If unsure, say N.
> +
> +if ACPI_CUSTOM_DSDT
> +
> +config ACPI_CUSTOM_DSDT_FILE
-> this would work for both.
Would that make sense?
> + string "Custom DSDT Table file to include"
> + default ""
> + help
> Enter the full path name to the file which includes the AmlCode
> declaration.
>
> If unsure, don't enter a file name.
>
> -config ACPI_CUSTOM_DSDT
> - bool
> - default ACPI_CUSTOM_DSDT_FILE != ""
> +config ACPI_CUSTOM_DSDT_WITH_SSDT
> + bool "Customize DSDT with static SSDTs included"
> + depends on ACPI_CUSTOM_DSDT
> + help
> + This option allows a DSDT override to optionally be a DSDT+SSDT
> + override. In which case, Linux should stop loading static SSDTs
> + from RSDT/XSDT. Otherwise, the load time AML execution of the
> + SSDTs will be errornously executed twice.
> +
> + If unsure, say N.
> +
> +endif
>
> config ACPI_INITRD_TABLE_OVERRIDE
> bool "ACPI tables override via initrd"
> @@ -243,6 +261,8 @@ config ACPI_INITRD_TABLE_OVERRIDE
> initrd, therefore it's safe to say Y.
> See Documentation/acpi/initrd_table_override.txt for details
>
> +endmenu
> +
> config ACPI_DEBUG
> bool "Debug Statements"
> default n
> diff --git a/drivers/acpi/internal.h b/drivers/acpi/internal.h
> index 9573913..f84ef59 100644
> --- a/drivers/acpi/internal.h
> +++ b/drivers/acpi/internal.h
> @@ -57,6 +57,11 @@ void acpi_cmos_rtc_init(void);
> #else
> static inline void acpi_cmos_rtc_init(void) {}
> #endif
> +#ifdef CONFIG_ACPI_CUSTOM_DSDT_WITH_SSDT
> +void __init acpi_ssdt_customized(void);
> +#else
> +static inline void acpi_ssdt_customized(void) {}
> +#endif
>
> extern bool acpi_force_hot_remove;
>
> diff --git a/drivers/acpi/osl.c b/drivers/acpi/osl.c
> index 9aeae41..c6024c2 100644
> --- a/drivers/acpi/osl.c
> +++ b/drivers/acpi/osl.c
> @@ -1770,15 +1770,13 @@ acpi_status acpi_os_release_object(acpi_cache_t * cache, void *object)
> }
> #endif
>
> -static int __init acpi_no_static_ssdt_setup(char *s)
> +#ifdef CONFIG_ACPI_CUSTOM_DSDT_WITH_SSDT
> +void __init acpi_ssdt_customized(void)
> {
> acpi_gbl_disable_ssdt_table_install = TRUE;
> pr_info("ACPI: static SSDT installation disabled\n");
> -
> - return 0;
> }
> -
> -early_param("acpi_no_static_ssdt", acpi_no_static_ssdt_setup);
> +#endif
>
> static int __init acpi_disable_return_repair(char *s)
> {
> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> index 2178229..aaf2177 100644
> --- a/drivers/acpi/tables.c
> +++ b/drivers/acpi/tables.c
> @@ -184,6 +184,7 @@ void acpi_table_print_madt_entry(struct acpi_subtable_header *header)
> }
> }
>
> +#include "internal.h"
>
> int __init
> acpi_table_parse_entries(char *id,
> @@ -333,6 +334,7 @@ int __init acpi_table_init(void)
> {
> acpi_status status;
>
> + acpi_ssdt_customized();
> status = acpi_initialize_tables(initial_tables, ACPI_MAX_TABLES, 0);
> if (ACPI_FAILURE(status))
> return -EINVAL;
>
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable.
2014-05-19 22:49 ` Rafael J. Wysocki
@ 2014-05-19 22:52 ` Rafael J. Wysocki
2014-05-20 2:01 ` Zheng, Lv
0 siblings, 1 reply; 6+ messages in thread
From: Rafael J. Wysocki @ 2014-05-19 22:52 UTC (permalink / raw)
To: Lv Zheng; +Cc: Rafael J. Wysocki, Len Brown, Lv Zheng, linux-kernel, linux-acpi
On Tuesday, May 20, 2014 12:49:04 AM Rafael J. Wysocki wrote:
> On Monday, May 12, 2014 03:49:59 PM Lv Zheng wrote:
> > User can specify a DSDT with SSDT embedded, in which case, no_static_ssdt
> > must be enforced during compile-time. If we don't do that and forget to
> > specify acpi.no_static_ssdt as a boot parameter, then:
> > 1. The AML executable will be executed twice, the second execution is
> > running under a changed environment.
> > 2. The namespace object conflicts will result in an AE_ALREADY_EXISTS
> > exception;
> > 3. The namespace objects that are deleted from the original SSDT will be
> > restored by the auto loading of the original SSDT.
> >
> > Note that:
> > 1. The DSDT customization is a compile-time feature, thus the SSDT
> > inclusion indication of the DSDT customization should also be
> > implemented as a compile-time configurable.
> > 2. According to the commit log:
> > Commit: 67effe8fff32f60bdf51cba484766ba6003005bb
> > Subject: ACPI: add "acpi_no_auto_ssdt" bootparam
> > The acpi.no_static_ssdt (originally acpi.no_auto_ssdt) was introduced to
> > be used for this use case. And over a long time, there is no other
> > situation than this requires this boot parameter.
> > This patch thus converts the runtime kernel parameter into the compile-time
> > configuration item.
> >
> > References: https://bugzilla.kernel.org/show_bug.cgi?id=3774
> > Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
> > Original-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
> > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > ---
> > Documentation/kernel-parameters.txt | 10 ----------
> > drivers/acpi/Kconfig | 32 ++++++++++++++++++++++++++------
> > drivers/acpi/internal.h | 5 +++++
> > drivers/acpi/osl.c | 8 +++-----
> > drivers/acpi/tables.c | 2 ++
> > 5 files changed, 36 insertions(+), 21 deletions(-)
> >
> > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> > index 831fb1e..ceba0d6 100644
> > --- a/Documentation/kernel-parameters.txt
> > +++ b/Documentation/kernel-parameters.txt
> > @@ -237,16 +237,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> > This feature is enabled by default.
> > This option allows to turn off the feature.
> >
> > - acpi_no_static_ssdt [HW,ACPI]
> > - Disable installation of static SSDTs at early boot time
> > - By default, SSDTs contained in the RSDT/XSDT will be
> > - installed automatically and they will appear under
> > - /sys/firmware/acpi/tables.
> > - This option turns off this feature.
> > - Note that specifying this option does not affect
> > - dynamic table installation which will install SSDT
> > - tables to /sys/firmware/acpi/tables/dynamic.
> > -
> > acpica_no_return_repair [HW, ACPI]
> > Disable AML predefined validation mechanism
> > This mechanism can repair the evaluation result to make
> > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> > index c0160bb..51dc3b8 100644
> > --- a/drivers/acpi/Kconfig
> > +++ b/drivers/acpi/Kconfig
> > @@ -216,22 +216,40 @@ config ACPI_NUMA
> > depends on (X86 || IA64)
> > default y if IA64_GENERIC || IA64_SGI_SN2
> >
> > -config ACPI_CUSTOM_DSDT_FILE
> > - string "Custom DSDT Table file to include"
> > - default ""
> > +menu "Table override"
> > +
> > +menuconfig ACPI_CUSTOM_DSDT
>
> I would make this a choice, like the "Kernel compression mode" (in init/Kconfig).
>
> Then ACPI_CUSTOM_DSDT_ONLY and ACPI_CUSTOM_DSDT_WITH_SSDT may be the options
> and they both would select ACPI_CUSTOM_DSDT (otherwise invisible to the user),
With the third (and default) option NO_ACPI_CUSTOM_DSDT that would not
select ACPI_CUSTOM_DSDT.
Thanks!
--
I speak only for myself.
Rafael J. Wysocki, Intel Open Source Technology Center.
^ permalink raw reply [flat|nested] 6+ messages in thread
* RE: [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable.
2014-05-19 22:52 ` Rafael J. Wysocki
@ 2014-05-20 2:01 ` Zheng, Lv
0 siblings, 0 replies; 6+ messages in thread
From: Zheng, Lv @ 2014-05-20 2:01 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Wysocki, Rafael J, Brown, Len, Lv Zheng, linux-kernel, linux-acpi
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain; charset="utf-8", Size: 4463 bytes --]
Hi, Rafael
> From: Rafael J. Wysocki [mailto:rjw@rjwysocki.net]
> Sent: Tuesday, May 20, 2014 6:52 AM
> Subject: Re: [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable.
>
> On Tuesday, May 20, 2014 12:49:04 AM Rafael J. Wysocki wrote:
> > On Monday, May 12, 2014 03:49:59 PM Lv Zheng wrote:
> > > User can specify a DSDT with SSDT embedded, in which case, no_static_ssdt
> > > must be enforced during compile-time. If we don't do that and forget to
> > > specify acpi.no_static_ssdt as a boot parameter, then:
> > > 1. The AML executable will be executed twice, the second execution is
> > > running under a changed environment.
> > > 2. The namespace object conflicts will result in an AE_ALREADY_EXISTS
> > > exception;
> > > 3. The namespace objects that are deleted from the original SSDT will be
> > > restored by the auto loading of the original SSDT.
> > >
> > > Note that:
> > > 1. The DSDT customization is a compile-time feature, thus the SSDT
> > > inclusion indication of the DSDT customization should also be
> > > implemented as a compile-time configurable.
> > > 2. According to the commit log:
> > > Commit: 67effe8fff32f60bdf51cba484766ba6003005bb
> > > Subject: ACPI: add "acpi_no_auto_ssdt" bootparam
> > > The acpi.no_static_ssdt (originally acpi.no_auto_ssdt) was introduced to
> > > be used for this use case. And over a long time, there is no other
> > > situation than this requires this boot parameter.
> > > This patch thus converts the runtime kernel parameter into the compile-time
> > > configuration item.
> > >
> > > References: https://bugzilla.kernel.org/show_bug.cgi?id=3774
> > > Buglink: https://bugzilla.kernel.org/show_bug.cgi?id=69711
> > > Original-by: Enrico Etxe Arte <goitizena.generoa@gmail.com>
> > > Signed-off-by: Lv Zheng <lv.zheng@intel.com>
> > > ---
> > > Documentation/kernel-parameters.txt | 10 ----------
> > > drivers/acpi/Kconfig | 32 ++++++++++++++++++++++++++------
> > > drivers/acpi/internal.h | 5 +++++
> > > drivers/acpi/osl.c | 8 +++-----
> > > drivers/acpi/tables.c | 2 ++
> > > 5 files changed, 36 insertions(+), 21 deletions(-)
> > >
> > > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> > > index 831fb1e..ceba0d6 100644
> > > --- a/Documentation/kernel-parameters.txt
> > > +++ b/Documentation/kernel-parameters.txt
> > > @@ -237,16 +237,6 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> > > This feature is enabled by default.
> > > This option allows to turn off the feature.
> > >
> > > - acpi_no_static_ssdt [HW,ACPI]
> > > - Disable installation of static SSDTs at early boot time
> > > - By default, SSDTs contained in the RSDT/XSDT will be
> > > - installed automatically and they will appear under
> > > - /sys/firmware/acpi/tables.
> > > - This option turns off this feature.
> > > - Note that specifying this option does not affect
> > > - dynamic table installation which will install SSDT
> > > - tables to /sys/firmware/acpi/tables/dynamic.
> > > -
> > > acpica_no_return_repair [HW, ACPI]
> > > Disable AML predefined validation mechanism
> > > This mechanism can repair the evaluation result to make
> > > diff --git a/drivers/acpi/Kconfig b/drivers/acpi/Kconfig
> > > index c0160bb..51dc3b8 100644
> > > --- a/drivers/acpi/Kconfig
> > > +++ b/drivers/acpi/Kconfig
> > > @@ -216,22 +216,40 @@ config ACPI_NUMA
> > > depends on (X86 || IA64)
> > > default y if IA64_GENERIC || IA64_SGI_SN2
> > >
> > > -config ACPI_CUSTOM_DSDT_FILE
> > > - string "Custom DSDT Table file to include"
> > > - default ""
> > > +menu "Table override"
> > > +
> > > +menuconfig ACPI_CUSTOM_DSDT
> >
> > I would make this a choice, like the "Kernel compression mode" (in init/Kconfig).
> >
> > Then ACPI_CUSTOM_DSDT_ONLY and ACPI_CUSTOM_DSDT_WITH_SSDT may be the options
> > and they both would select ACPI_CUSTOM_DSDT (otherwise invisible to the user),
>
> With the third (and default) option NO_ACPI_CUSTOM_DSDT that would not
> select ACPI_CUSTOM_DSDT.
OK.
Thanks
-Lv
>
> Thanks!
>
> --
> I speak only for myself.
> Rafael J. Wysocki, Intel Open Source Technology Center.
ÿôèº{.nÇ+·®+%Ëÿ±éݶ\x17¥wÿº{.nÇ+·¥{±þG«éÿ{ayº\x1dÊÚë,j\a¢f£¢·hïêÿêçz_è®\x03(éÝ¢j"ú\x1a¶^[m§ÿÿ¾\a«þG«éÿ¢¸?¨èÚ&£ø§~á¶iOæ¬z·vØ^\x14\x04\x1a¶^[m§ÿÿÃ\fÿ¶ìÿ¢¸?I¥
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-05-20 2:01 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
[not found] <cover.1396925060.git.lv.zheng@intel.com>
2014-05-12 7:49 ` [PATCH v3 1/2] ACPI: Cleanup to convert acpi.no_static_ssdt into a compile-time configurable Lv Zheng
2014-05-19 22:49 ` Rafael J. Wysocki
2014-05-19 22:52 ` Rafael J. Wysocki
2014-05-20 2:01 ` Zheng, Lv
2014-05-12 7:50 ` [PATCH v3 2/2] ACPI: Fix the issue that the DSDT local copy is conflict with the customized DSDT Lv Zheng
2014-05-19 22:34 ` Rafael J. Wysocki
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®