public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: linux-acpi@vger.kernel.org
Subject: [PATCH/RFC] ACPICA: disable ACPI 2.0 _GTS/_BFS support
Date: Fri, 19 Dec 2008 04:23:49 -0500 (EST)	[thread overview]
Message-ID: <alpine.LFD.2.00.0812190421140.1988@localhost.localdomain> (raw)

From: Len Brown <len.brown@intel.com>
Organization: Intel Open Source Technology Center

ACPI 2.0 defined two new methods in the suspend/resume sequence,
_GTS (Going to Sleep) and _BFS (Back from Sleep)

They are optional methods, but if the BIOS supplies them,
the OS is supposed to evaluate them immediately before
writing the register to sleep, and immediately after waking up --
a time when interrupts are disabled.

The spec says that they must be self-contained
methods, not calling any other methods, perhaps
because that they are run under unique conditions?

These methodds are evaluated in Linux by
acpi_evaluate_object(), which always kmalloc's
a return structure to conserve stack space.
But kmalloc with interrupts off is problematic --
do we really want to insist on GFP_ATOMIC here?

Now, several years after ACPI 2.0 was released,
we have yet to observe a single implementation of
_GTS/_BFS in the field -- suggesting that they will
never actually be deployed.

So lets keep Linux simple by removing this
theoretical support for _GTS/_BFS, the only
AML methods that mandated being evaluated
with interrupts disabled.

Signed-off-by: Len Brown <len.brown@intel.com>
---
 drivers/acpi/hardware/hwsleep.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c
index 25dccdf..c209434 100644
--- a/drivers/acpi/hardware/hwsleep.c
+++ b/drivers/acpi/hardware/hwsleep.c
@@ -289,6 +289,7 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
 		return_ACPI_STATUS(status);
 	}
 
+#ifdef	ACPI_20_GTS_BFS
 	/* Execute the _GTS method */
 
 	arg_list.count = 1;
@@ -300,6 +301,7 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
 	if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
 		return_ACPI_STATUS(status);
 	}
+#endif
 
 	/* Get current value of PM1A control */
 
@@ -535,6 +537,7 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
 		}
 	}
 
+#ifdef	ACPI_20_GTS_BFS
 	/* Execute the _BFS method */
 
 	arg_list.count = 1;
@@ -546,6 +549,7 @@ acpi_status acpi_leave_sleep_state_prep(u8 sleep_state)
 	if (ACPI_FAILURE(status) && status != AE_NOT_FOUND) {
 		ACPI_EXCEPTION((AE_INFO, status, "During Method _BFS"));
 	}
+#endif
 
 	return_ACPI_STATUS(status);
 }
-- 
1.6.1.rc3.35.gc0ceb


             reply	other threads:[~2008-12-19  9:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-19  9:23 Len Brown [this message]
2008-12-19 16:39 ` [PATCH/RFC] ACPICA: disable ACPI 2.0 _GTS/_BFS support Bjorn Helgaas
2008-12-31  0:16   ` Len Brown
2008-12-19 17:48 ` Rafael J. Wysocki
2008-12-22  1:42 ` Zhao Yakui

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LFD.2.00.0812190421140.1988@localhost.localdomain \
    --to=lenb@kernel.org \
    --cc=linux-acpi@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox