* [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
[not found] ` <op.wg4f33nl6g6bxc@localhost.localdomain>
@ 2012-07-08 19:04 ` Jonathan Nieder
2012-07-08 19:32 ` Jonathan Nieder
0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Nieder @ 2012-07-08 19:04 UTC (permalink / raw)
To: Octavio Alvarez
Cc: Bob Moore, Adrian Knoth, Shaohua Li, Len Brown, linux-acpi,
linux-kernel
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
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 19:04 ` [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume Jonathan Nieder
@ 2012-07-08 19:32 ` Jonathan Nieder
2012-07-08 19:43 ` Rafael J. Wysocki
0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Nieder @ 2012-07-08 19:32 UTC (permalink / raw)
To: Octavio Alvarez
Cc: Bob Moore, Adrian Knoth, Shaohua Li, Len Brown, linux-acpi,
linux-kernel
Hi again,
Jonathan Nieder wrote:
> 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.
Um, wrong commit. Sorry, here's a fixed message.
ACPI: Leave Bus Master Arbitration enabled for suspend/resume
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 2feec47d4c5f (ACPICA: ACPI 5: Support
for new FADT SleepStatus, SleepControl registers, 2012-02-14),
presumably by copy/pasting a copy of the code without that fix 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 still works.
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
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 19:32 ` Jonathan Nieder
@ 2012-07-08 19:43 ` Rafael J. Wysocki
2012-07-08 19:45 ` [PATCH v2] " Jonathan Nieder
0 siblings, 1 reply; 9+ messages in thread
From: Rafael J. Wysocki @ 2012-07-08 19:43 UTC (permalink / raw)
To: Jonathan Nieder
Cc: Octavio Alvarez, Bob Moore, Adrian Knoth, Shaohua Li, Len Brown,
linux-acpi, linux-kernel
On Sunday, July 08, 2012, Jonathan Nieder wrote:
> Hi again,
>
> Jonathan Nieder wrote:
>
> > 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.
>
> Um, wrong commit. Sorry, here's a fixed message.
>
> ACPI: Leave Bus Master Arbitration enabled for suspend/resume
>
> 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 2feec47d4c5f (ACPICA: ACPI 5: Support
> for new FADT SleepStatus, SleepControl registers, 2012-02-14),
> presumably by copy/pasting a copy of the code without that fix 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 still works.
>
> 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
> --
Can you please repost it with _both_ the changelog and the patch?
Thanks,
Rafael
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 19:43 ` Rafael J. Wysocki
@ 2012-07-08 19:45 ` Jonathan Nieder
2012-07-08 20:08 ` Rafael J. Wysocki
0 siblings, 1 reply; 9+ messages in thread
From: Jonathan Nieder @ 2012-07-08 19:45 UTC (permalink / raw)
To: Rafael J. Wysocki
Cc: Octavio Alvarez, Bob Moore, Adrian Knoth, Shaohua Li, Len Brown,
linux-acpi, linux-kernel
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 2feec47d4c5f (ACPICA: ACPI 5: Support
for new FADT SleepStatus, SleepControl registers, 2012-02-14),
presumably by copy/pasting a copy of the code without that fix 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 still works.
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
---
Rafael J. Wysocki wrote:
> Can you please repost it with _both_ the changelog and the patch?
Here you go. Sorry about that.
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
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
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:43 ` Octavio Alvarez
0 siblings, 2 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2012-07-08 20:08 UTC (permalink / raw)
To: Jonathan Nieder, Bob Moore
Cc: Octavio Alvarez, Adrian Knoth, Shaohua Li, Len Brown, linux-acpi,
linux-kernel
On Sunday, July 08, 2012, Jonathan Nieder wrote:
> 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 2feec47d4c5f (ACPICA: ACPI 5: Support
> for new FADT SleepStatus, SleepControl registers, 2012-02-14),
> presumably by copy/pasting a copy of the code without that fix 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 still works.
>
> 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
> ---
> Rafael J. Wysocki wrote:
>
> > Can you please repost it with _both_ the changelog and the patch?
>
> Here you go. Sorry about that.
Thanks!
Applied to the linux-next branch of the linux-pm.git tree.
I think I'll push it for v3.6, since the bug is serious and is a regression.
Bob, I think we should incorporate this into ACPICA, shouldn't we?
Rafael
> 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);
> }
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
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
1 sibling, 1 reply; 9+ messages in thread
From: Moore, Robert @ 2012-07-08 20:33 UTC (permalink / raw)
To: Rafael J. Wysocki, Jonathan Nieder
Cc: Octavio Alvarez, Adrian Knoth, Shaohua Li, Brown, Len,
linux-acpi@vger.kernel.org, linux-kernel@vger.kernel.org,
Lin, Ming M
> Bob, I think we should incorporate this into ACPICA, shouldn't we?
>
> Rafael
We are looking at it. Probably one of the Linux/ACPICA divergences that end up causing us grief.
> -----Original Message-----
> From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki
> Sent: Sunday, July 08, 2012 1:08 PM
> To: Jonathan Nieder; Moore, Robert
> Cc: Octavio Alvarez; Adrian Knoth; Shaohua Li; Brown, Len; linux-
> acpi@vger.kernel.org; linux-kernel@vger.kernel.org
> Subject: Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for
> suspend/resume
>
> On Sunday, July 08, 2012, Jonathan Nieder wrote:
> > 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 2feec47d4c5f (ACPICA: ACPI 5: Support
> > for new FADT SleepStatus, SleepControl registers, 2012-02-14),
> > presumably by copy/pasting a copy of the code without that fix 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 still works.
> >
> > 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
> > ---
> > Rafael J. Wysocki wrote:
> >
> > > Can you please repost it with _both_ the changelog and the patch?
> >
> > Here you go. Sorry about that.
>
> Thanks!
>
> Applied to the linux-next branch of the linux-pm.git tree.
>
> I think I'll push it for v3.6, since the bug is serious and is a
> regression.
>
> Bob, I think we should incorporate this into ACPICA, shouldn't we?
>
> Rafael
>
>
> > 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);
> > }
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> in the body of a message to majordomo@vger.kernel.org More majordomo
> info at http://vger.kernel.org/majordomo-info.html
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 20:08 ` Rafael J. Wysocki
2012-07-08 20:33 ` Moore, Robert
@ 2012-07-08 20:43 ` Octavio Alvarez
2012-07-08 20:53 ` Rafael J. Wysocki
1 sibling, 1 reply; 9+ messages in thread
From: Octavio Alvarez @ 2012-07-08 20:43 UTC (permalink / raw)
To: Jonathan Nieder, Bob Moore, Rafael J. Wysocki
Cc: Adrian Knoth, Shaohua Li, Len Brown, linux-acpi, linux-kernel
On Sun, 08 Jul 2012 13:08:19 -0700, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>> 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.
>>
>> The bug snuck back in in commit 2feec47d4c5f (ACPICA: ACPI 5: Support
>> for new FADT SleepStatus, SleepControl registers, 2012-02-14),
>> presumably by copy/pasting a copy of the code without that fix 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 still works.
>>
> Applied to the linux-next branch of the linux-pm.git tree.
>
> I think I'll push it for v3.6, since the bug is serious and is a
> regression.
>
> Bob, I think we should incorporate this into ACPICA, shouldn't we?
This bug affects since 3.4. I'd like to ask for this to be applied in the
stable branches too, considering Jonathan's comments that this is a replay
of an old and proven fix.
(I don't know if 3.3 is affected too. I know 3.2 is not affected by this.)
Thanks.
--
Octavio.
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 20:33 ` Moore, Robert
@ 2012-07-08 20:48 ` Rafael J. Wysocki
0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2012-07-08 20:48 UTC (permalink / raw)
To: Moore, Robert
Cc: Jonathan Nieder, Octavio Alvarez, Adrian Knoth, Shaohua Li,
Brown, Len, linux-acpi@vger.kernel.org,
linux-kernel@vger.kernel.org, Lin, Ming M
On Sunday, July 08, 2012, Moore, Robert wrote:
> > Bob, I think we should incorporate this into ACPICA, shouldn't we?
> >
> > Rafael
>
> We are looking at it. Probably one of the Linux/ACPICA divergences that end
> up causing us grief.
Well, in this particular case it seems that what Linux did before commit
2feec47d4c5f (ACPICA: ACPI 5: Support for new FADT SleepStatus, SleepControl
registers) was actually correct, though.
Thanks,
Rafael
> > -----Original Message-----
> > From: linux-acpi-owner@vger.kernel.org [mailto:linux-acpi-
> > owner@vger.kernel.org] On Behalf Of Rafael J. Wysocki
> > Sent: Sunday, July 08, 2012 1:08 PM
> > To: Jonathan Nieder; Moore, Robert
> > Cc: Octavio Alvarez; Adrian Knoth; Shaohua Li; Brown, Len; linux-
> > acpi@vger.kernel.org; linux-kernel@vger.kernel.org
> > Subject: Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for
> > suspend/resume
> >
> > On Sunday, July 08, 2012, Jonathan Nieder wrote:
> > > 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 2feec47d4c5f (ACPICA: ACPI 5: Support
> > > for new FADT SleepStatus, SleepControl registers, 2012-02-14),
> > > presumably by copy/pasting a copy of the code without that fix 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 still works.
> > >
> > > 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
> > > ---
> > > Rafael J. Wysocki wrote:
> > >
> > > > Can you please repost it with _both_ the changelog and the patch?
> > >
> > > Here you go. Sorry about that.
> >
> > Thanks!
> >
> > Applied to the linux-next branch of the linux-pm.git tree.
> >
> > I think I'll push it for v3.6, since the bug is serious and is a
> > regression.
> >
> > Bob, I think we should incorporate this into ACPICA, shouldn't we?
> >
> > Rafael
> >
> >
> > > 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);
> > > }
> > >
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-acpi"
> > in the body of a message to majordomo@vger.kernel.org More majordomo
> > info at http://vger.kernel.org/majordomo-info.html
>
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2] ACPI: Leave Bus Master Arbitration enabled for suspend/resume
2012-07-08 20:43 ` Octavio Alvarez
@ 2012-07-08 20:53 ` Rafael J. Wysocki
0 siblings, 0 replies; 9+ messages in thread
From: Rafael J. Wysocki @ 2012-07-08 20:53 UTC (permalink / raw)
To: Octavio Alvarez
Cc: Jonathan Nieder, Bob Moore, Adrian Knoth, Shaohua Li, Len Brown,
linux-acpi, linux-kernel
On Sunday, July 08, 2012, Octavio Alvarez wrote:
> On Sun, 08 Jul 2012 13:08:19 -0700, Rafael J. Wysocki <rjw@sisk.pl> wrote:
>
> >> 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.
> >>
> >> The bug snuck back in in commit 2feec47d4c5f (ACPICA: ACPI 5: Support
> >> for new FADT SleepStatus, SleepControl registers, 2012-02-14),
> >> presumably by copy/pasting a copy of the code without that fix 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 still works.
> >>
> > Applied to the linux-next branch of the linux-pm.git tree.
> >
> > I think I'll push it for v3.6, since the bug is serious and is a
> > regression.
> >
> > Bob, I think we should incorporate this into ACPICA, shouldn't we?
>
> This bug affects since 3.4. I'd like to ask for this to be applied in the
> stable branches too, considering Jonathan's comments that this is a replay
> of an old and proven fix.
>
> (I don't know if 3.3 is affected too. I know 3.2 is not affected by this.)
The problem seems to have been introduced during the 3.4 development cycle,
so v3.3 shouldn't be affected by it too.
Thanks,
Rafael
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2012-07-08 20:59 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <op.wg3en6ij6g6bxc@localhost.localdomain>
[not found] ` <Pine.LNX.4.44L0.1207072208270.508-100000@netrider.rowland.org>
[not found] ` <20120708025730.GE2961@burratino>
[not found] ` <op.wg30yabp6g6bxc@localhost.localdomain>
[not found] ` <20120708090432.GF4625@burratino>
[not found] ` <op.wg4f33nl6g6bxc@localhost.localdomain>
2012-07-08 19:04 ` [PATCH] ACPI: Leave Bus Master Arbitration enabled for suspend/resume Jonathan Nieder
2012-07-08 19:32 ` 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox