linux-acpi.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* Re: [PATCH 2/2] ACPICA: hw: Don't carry spinlock over suspend
  2007-10-01 20:38   ` [PATCH 2/2] ACPICA: hw: Don't carry spinlock over suspend Rafael J. Wysocki
@ 2007-10-01 20:27     ` Alexey Starikovskiy
  0 siblings, 0 replies; 2+ messages in thread
From: Alexey Starikovskiy @ 2007-10-01 20:27 UTC (permalink / raw)
  To: Rafael J. Wysocki; +Cc: Alexey Starikovskiy, Linux-acpi, Len Brown

Rafael J. Wysocki wrote:
> On Sunday, 30 September 2007 20:39, Alexey Starikovskiy wrote:
>> ACPI uses acpi_get_register() in order to get into suspend.
>> This function is guarded by acpi_gbl_hardware_lock, which will be carried
>> into resume phase.
>> At resume interrupts are enabled and first ACPI interrupt deadlocks on this
>> lock.
> 
> Ouch.  That might have bitten quite some people, I guess.
> 
>> Solution seems to be to not lock register read, as there are no concurrent
>> activity at this point.
>>
>> Reference: http://bugzilla.kernel.org/show_bug.cgi?id=7499
>>
>> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
> 
> Do you think it's -stable material?
Seem to be trivial.

Regards,
Alex.

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH 2/2] ACPICA: hw: Don't carry spinlock over suspend
       [not found] ` <20070930183942.32654.16220.stgit@samsung>
@ 2007-10-01 20:38   ` Rafael J. Wysocki
  2007-10-01 20:27     ` Alexey Starikovskiy
  0 siblings, 1 reply; 2+ messages in thread
From: Rafael J. Wysocki @ 2007-10-01 20:38 UTC (permalink / raw)
  To: Alexey Starikovskiy; +Cc: Linux-acpi, Len Brown

On Sunday, 30 September 2007 20:39, Alexey Starikovskiy wrote:
> ACPI uses acpi_get_register() in order to get into suspend.
> This function is guarded by acpi_gbl_hardware_lock, which will be carried
> into resume phase.
> At resume interrupts are enabled and first ACPI interrupt deadlocks on this
> lock.

Ouch.  That might have bitten quite some people, I guess.

> Solution seems to be to not lock register read, as there are no concurrent
> activity at this point.
> 
> Reference: http://bugzilla.kernel.org/show_bug.cgi?id=7499
> 
> Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>

Do you think it's -stable material?

Greetings,
Rafael


> ---
> 
>  drivers/acpi/hardware/hwsleep.c |    3 ++-
>  include/acpi/acpixf.h           |    2 ++
>  2 files changed, 4 insertions(+), 1 deletions(-)
> 
> diff --git a/drivers/acpi/hardware/hwsleep.c b/drivers/acpi/hardware/hwsleep.c
> index 4d0c677..c0577ca 100644
> --- a/drivers/acpi/hardware/hwsleep.c
> +++ b/drivers/acpi/hardware/hwsleep.c
> @@ -398,7 +398,8 @@ acpi_status asmlinkage acpi_enter_sleep_state(u8 sleep_state)
>  	/* Wait until we enter sleep state */
>  
>  	do {
> -		status = acpi_get_register(ACPI_BITREG_WAKE_STATUS, &in_value);
> +		status = acpi_get_register_unlocked(ACPI_BITREG_WAKE_STATUS,
> +						    &in_value);
>  		if (ACPI_FAILURE(status)) {
>  			return_ACPI_STATUS(status);
>  		}
> diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h
> index 3d7ab9e..9512f04 100644
> --- a/include/acpi/acpixf.h
> +++ b/include/acpi/acpixf.h
> @@ -314,6 +314,8 @@ acpi_resource_to_address64(struct acpi_resource *resource,
>   */
>  acpi_status acpi_get_register(u32 register_id, u32 * return_value);
>  
> +acpi_status acpi_get_register_unlocked(u32 register_id, u32 *return_value);
> +
>  acpi_status acpi_set_register(u32 register_id, u32 value);
>  
>  acpi_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
> 
> 

-- 
"Premature optimization is the root of all evil." - Donald Knuth

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-10-01 20:27 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <20070930183936.32654.44391.stgit@samsung>
     [not found] ` <20070930183942.32654.16220.stgit@samsung>
2007-10-01 20:38   ` [PATCH 2/2] ACPICA: hw: Don't carry spinlock over suspend Rafael J. Wysocki
2007-10-01 20:27     ` Alexey Starikovskiy

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).