All of lore.kernel.org
 help / color / mirror / Atom feed
From: Vegard Nossum <vegard.nossum@oracle.com>
To: "Moore, Robert" <robert.moore@intel.com>,
	"Zheng, Lv" <lv.zheng@intel.com>,
	"Wysocki, Rafael J" <rafael.j.wysocki@intel.com>
Cc: "linux-acpi@vger.kernel.org" <linux-acpi@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>,
	"devel@acpica.org" <devel@acpica.org>
Subject: Re: [PATCH] ACPICA: cleanup method properly on error
Date: Wed, 27 Jul 2016 07:38:33 +0200	[thread overview]
Message-ID: <579848D9.9010900@oracle.com> (raw)
In-Reply-To: <94F2FBAB4432B54E8AACC7DFDE6C92E37E4CDC04@ORSMSX110.amr.corp.intel.com>

On 07/26/2016 10:28 PM, Moore, Robert wrote:
>      /* Put the new state at the head of the walk list */
>
>      if (Thread)
>      {
>          AcpiDsPushWalkState (WalkState, Thread);
>      }
>
> Is there any chance that Thread could be zero?

I'm not sure if this question was for me or not, but that code (modulo
the capitalisation differences) is the reason why I also used 'if
(thread)' in my patch.


Vegard

>
>> -----Original Message-----
>> From: Devel [mailto:devel-bounces@acpica.org] On Behalf Of Moore, Robert
>> Sent: Tuesday, July 26, 2016 7:40 AM
>> To: Vegard Nossum <vegard.nossum@oracle.com>; Zheng, Lv
>> <lv.zheng@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>
>> Cc: linux-acpi@vger.kernel.org; linux-kernel@vger.kernel.org;
>> stable@vger.kernel.org; devel@acpica.org
>> Subject: Re: [Devel] [PATCH] ACPICA: cleanup method properly on error
>>
>> We'll look at this.
>> Thanks.
>>
>>
>>> -----Original Message-----
>>> From: Vegard Nossum [mailto:vegard.nossum@oracle.com]
>>> Sent: Friday, July 22, 2016 8:35 AM
>>> To: Moore, Robert <robert.moore@intel.com>; Zheng, Lv
>>> <lv.zheng@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>
>>> Cc: linux-acpi@vger.kernel.org; devel@acpica.org; linux-
>>> kernel@vger.kernel.org; Vegard Nossum <vegard.nossum@oracle.com>;
>>> stable@vger.kernel.org
>>> Subject: [PATCH] ACPICA: cleanup method properly on error
>>>
>>> If the call to acpi_ds_init_aml_walk() fails, then we have to undo the
>>> walk state push done by acpi_ds_create_walk_state(). Otherwise, the
>>> new walk state (which has just been freed) will remain on the thread's
>>> walk_state_list and be dereferenced in acpi_ps_parse_aml() when we try
>>> to get the new state.
>>>
>>> You can observe this when reading e.g.
>>>
>>>      /sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0F:01/status
>>>
>>> Cc: stable@vger.kernel.org
>>> Signed-off-by: Vegard Nossum <vegard.nossum@oracle.com>
>>> ---
>>>   drivers/acpi/acpica/dsmethod.c | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/drivers/acpi/acpica/dsmethod.c
>>> b/drivers/acpi/acpica/dsmethod.c index 47c7b52..44b50a6 100644
>>> --- a/drivers/acpi/acpica/dsmethod.c
>>> +++ b/drivers/acpi/acpica/dsmethod.c
>>> @@ -596,6 +596,8 @@ cleanup:
>>>   	/* On error, we must terminate the method properly */
>>>
>>>   	acpi_ds_terminate_control_method(obj_desc, next_walk_state);
>>> +	if (thread)
>>> +		acpi_ds_pop_walk_state(thread);
>>>   	acpi_ds_delete_walk_state(next_walk_state);
>>>
>>>   	return_ACPI_STATUS(status);
>>> --
>>> 1.9.1
>>
>> _______________________________________________
>> Devel mailing list
>> Devel@acpica.org
>> https://lists.acpica.org/mailman/listinfo/devel


  reply	other threads:[~2016-07-27  5:38 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-22 15:35 [PATCH] ACPICA: cleanup method properly on error Vegard Nossum
2016-07-26 14:39 ` [Devel] " Moore, Robert
2016-07-26 14:39   ` Moore, Robert
2016-07-26 20:28   ` [Devel] " Moore, Robert
2016-07-26 20:28     ` Moore, Robert
2016-07-27  5:38     ` Vegard Nossum [this message]
2016-07-29  4:47 ` [Devel] " Zheng, Lv
2016-07-29  4:47   ` Zheng, Lv
2016-07-29  7:13   ` Vegard Nossum

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=579848D9.9010900@oracle.com \
    --to=vegard.nossum@oracle.com \
    --cc=devel@acpica.org \
    --cc=linux-acpi@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lv.zheng@intel.com \
    --cc=rafael.j.wysocki@intel.com \
    --cc=robert.moore@intel.com \
    --cc=stable@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.