linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jonathan Nieder <jrnieder@gmail.com>
To: Octavio Alvarez <alvarezp@alvarezp.com>
Cc: Bob Moore <robert.moore@intel.com>,
	Adrian Knoth <adi@drcomp.erfurt.thur.de>,
	Shaohua Li <shli@kernel.org>, Len Brown <len.brown@intel.com>,
	linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
Date: Sun, 8 Jul 2012 14:04:35 -0500	[thread overview]
Message-ID: <20120708190434.GD7328@burratino> (raw)
In-Reply-To: <op.wg4f33nl6g6bxc@localhost.localdomain>

This is an old suspend/resume lockup fix:

	commit 2780cc4660e1
	Author: Len Brown <len.brown@intel.com>
	Date:   Thu Dec 23 13:43:30 2004 -0500

	    [ACPI] Fix suspend/resume lockup issue
	    by leaving Bus Master Arbitration enabled.
	    The ACPI spec mandates it be disabled only for C3.

	    http://bugzilla.kernel.org/show_bug.cgi?id=3599

	    Signed-off-by: David Shaohua Li <shaohua.li@intel.com>
	    Signed-off-by: Len Brown <len.brown@intel.com>

The bug snuck back in in commit 33620c5419e8 (ACPICA: Support for
custom ACPICA build for ACPI 5 reduced hardware, 2012-02-14),
presumably by copy/pasting from the wrong source for the legacy case.

On affected machines, after that commit, the machine locks up hard
on resume from suspend.  The same fix as seven years ago fixes it.

Addresses <https://bugzilla.kernel.org/show_bug.cgi?id=43641>.

Reported-bisected-and-tested-by: Octavio Alvarez <alvarezp@alvarezp.com>
Reported-by: Adrian Knoth <adi@drcomp.erfurt.thur.de>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
Cc: <stable@vger.kernel.org> # 3.4
---
Octavio Alvarez wrote:

> Given the complexity of the ACPI_DEBUG logging (particularly the
> console part), I decided to give your patch a shot directly.
>
> Result: the system no longer locks up.

Thanks!

Here's a properly formatted patch.

 drivers/acpi/acpica/hwsleep.c |   22 ----------------------
 1 file changed, 22 deletions(-)

diff --git a/drivers/acpi/acpica/hwsleep.c b/drivers/acpi/acpica/hwsleep.c
index 0ed85cac3231..615996a36bed 100644
--- a/drivers/acpi/acpica/hwsleep.c
+++ b/drivers/acpi/acpica/hwsleep.c
@@ -95,18 +95,6 @@ acpi_status acpi_hw_legacy_sleep(u8 sleep_state, u8 flags)
 		return_ACPI_STATUS(status);
 	}
 
-	if (sleep_state != ACPI_STATE_S5) {
-		/*
-		 * Disable BM arbitration. This feature is contained within an
-		 * optional register (PM2 Control), so ignore a BAD_ADDRESS
-		 * exception.
-		 */
-		status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 1);
-		if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
-			return_ACPI_STATUS(status);
-		}
-	}
-
 	/*
 	 * 1) Disable/Clear all GPEs
 	 * 2) Enable all wakeup GPEs
@@ -364,16 +352,6 @@ acpi_status acpi_hw_legacy_wake(u8 sleep_state, u8 flags)
 				    [ACPI_EVENT_POWER_BUTTON].
 				    status_register_id, ACPI_CLEAR_STATUS);
 
-	/*
-	 * Enable BM arbitration. This feature is contained within an
-	 * optional register (PM2 Control), so ignore a BAD_ADDRESS
-	 * exception.
-	 */
-	status = acpi_write_bit_register(ACPI_BITREG_ARB_DISABLE, 0);
-	if (ACPI_FAILURE(status) && (status != AE_BAD_ADDRESS)) {
-		return_ACPI_STATUS(status);
-	}
-
 	acpi_hw_execute_sleep_method(METHOD_PATHNAME__SST, ACPI_SST_WORKING);
 	return_ACPI_STATUS(status);
 }
-- 
1.7.10.4


  reply	other threads:[~2012-07-08 19:04 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <op.wg3en6ij6g6bxc@localhost.localdomain>
     [not found] ` <Pine.LNX.4.44L0.1207072208270.508-100000@netrider.rowland.org>
     [not found]   ` <20120708025730.GE2961@burratino>
2012-07-08  4:19     ` [3.4-rc5 -> 3.4-rc6 regression] Asus P5NSLI: lockup on resume from suspend Octavio Alvarez
2012-07-08  4:30       ` Jonathan Nieder
2012-07-08  6:39         ` Bug#680707: " Octavio Alvarez
2012-07-08  7:37       ` Jonathan Nieder
2012-07-08  9:04       ` Jonathan Nieder
2012-07-08  9:46         ` Bug#680707: " Octavio Alvarez
2012-07-08 19:04           ` Jonathan Nieder [this message]
2012-07-08 19:32             ` [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume Jonathan Nieder
2012-07-08 19:43               ` Rafael J. Wysocki
2012-07-08 19:45                 ` [PATCH v2] " Jonathan Nieder
2012-07-08 20:08                   ` Rafael J. Wysocki
2012-07-08 20:33                     ` Moore, Robert
2012-07-08 20:48                       ` Rafael J. Wysocki
2012-07-08 20:43                     ` Octavio Alvarez
2012-07-08 20:53                       ` Rafael J. Wysocki

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=20120708190434.GD7328@burratino \
    --to=jrnieder@gmail.com \
    --cc=adi@drcomp.erfurt.thur.de \
    --cc=alvarezp@alvarezp.com \
    --cc=len.brown@intel.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=robert.moore@intel.com \
    --cc=shli@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;
as well as URLs for NNTP newsgroup(s).