[v1,1/1] ACPI: x86: s2idle: Switch to use acpi_evaluate_dsm_typed()

Message ID 20231002135218.2602969-1-andriy.shevchenko@linux.intel.com
State New
Headers
Series [v1,1/1] ACPI: x86: s2idle: Switch to use acpi_evaluate_dsm_typed() |

Commit Message

Andy Shevchenko Oct. 2, 2023, 1:52 p.m. UTC
  The acpi_evaluate_dsm_typed() provides a way to check the type of the
object evaluated by _DSM call. Use it instead of open coded variant.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
---
 drivers/acpi/x86/s2idle.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)
  

Comments

Mario Limonciello Oct. 2, 2023, 2:04 p.m. UTC | #1
On 10/2/2023 08:52, Andy Shevchenko wrote:
> The acpi_evaluate_dsm_typed() provides a way to check the type of the
> object evaluated by _DSM call. Use it instead of open coded variant.
> 
> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>

Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>

> ---
>   drivers/acpi/x86/s2idle.c | 5 ++---
>   1 file changed, 2 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
> index 08f7c6708206..7d64e655f1b8 100644
> --- a/drivers/acpi/x86/s2idle.c
> +++ b/drivers/acpi/x86/s2idle.c
> @@ -417,11 +417,10 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
>   	int ret = -EINVAL;
>   
>   	guid_parse(uuid, dsm_guid);
> -	obj = acpi_evaluate_dsm(handle, dsm_guid, rev, 0, NULL);
>   
>   	/* Check if the _DSM is present and as expected. */
> -	if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length == 0 ||
> -	    obj->buffer.length > sizeof(u32)) {
> +	obj = acpi_evaluate_dsm_typed(handle, dsm_guid, rev, 0, NULL, ACPI_TYPE_BUFFER);
> +	if (!obj || obj->buffer.length == 0 || obj->buffer.length > sizeof(u32)) {
>   		acpi_handle_debug(handle,
>   				"_DSM UUID %s rev %d function 0 evaluation failed\n", uuid, rev);
>   		goto out;
  
Rafael J. Wysocki Oct. 3, 2023, 1:51 p.m. UTC | #2
On Mon, Oct 2, 2023 at 4:05 PM Mario Limonciello
<mario.limonciello@amd.com> wrote:
>
> On 10/2/2023 08:52, Andy Shevchenko wrote:
> > The acpi_evaluate_dsm_typed() provides a way to check the type of the
> > object evaluated by _DSM call. Use it instead of open coded variant.
> >
> > Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
>
> Reviewed-by: Mario Limonciello <mario.limonciello@amd.com>

Applied as 6.7 material, thanks!

> > ---
> >   drivers/acpi/x86/s2idle.c | 5 ++---
> >   1 file changed, 2 insertions(+), 3 deletions(-)
> >
> > diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
> > index 08f7c6708206..7d64e655f1b8 100644
> > --- a/drivers/acpi/x86/s2idle.c
> > +++ b/drivers/acpi/x86/s2idle.c
> > @@ -417,11 +417,10 @@ static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
> >       int ret = -EINVAL;
> >
> >       guid_parse(uuid, dsm_guid);
> > -     obj = acpi_evaluate_dsm(handle, dsm_guid, rev, 0, NULL);
> >
> >       /* Check if the _DSM is present and as expected. */
> > -     if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length == 0 ||
> > -         obj->buffer.length > sizeof(u32)) {
> > +     obj = acpi_evaluate_dsm_typed(handle, dsm_guid, rev, 0, NULL, ACPI_TYPE_BUFFER);
> > +     if (!obj || obj->buffer.length == 0 || obj->buffer.length > sizeof(u32)) {
> >               acpi_handle_debug(handle,
> >                               "_DSM UUID %s rev %d function 0 evaluation failed\n", uuid, rev);
> >               goto out;
>
  

Patch

diff --git a/drivers/acpi/x86/s2idle.c b/drivers/acpi/x86/s2idle.c
index 08f7c6708206..7d64e655f1b8 100644
--- a/drivers/acpi/x86/s2idle.c
+++ b/drivers/acpi/x86/s2idle.c
@@ -417,11 +417,10 @@  static int validate_dsm(acpi_handle handle, const char *uuid, int rev, guid_t *d
 	int ret = -EINVAL;
 
 	guid_parse(uuid, dsm_guid);
-	obj = acpi_evaluate_dsm(handle, dsm_guid, rev, 0, NULL);
 
 	/* Check if the _DSM is present and as expected. */
-	if (!obj || obj->type != ACPI_TYPE_BUFFER || obj->buffer.length == 0 ||
-	    obj->buffer.length > sizeof(u32)) {
+	obj = acpi_evaluate_dsm_typed(handle, dsm_guid, rev, 0, NULL, ACPI_TYPE_BUFFER);
+	if (!obj || obj->buffer.length == 0 || obj->buffer.length > sizeof(u32)) {
 		acpi_handle_debug(handle,
 				"_DSM UUID %s rev %d function 0 evaluation failed\n", uuid, rev);
 		goto out;