mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [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®