ACK: [PATCH] ACPICA: Update to version 20200717

Alex Hung alex.hung at canonical.com
Tue Jul 21 01:06:29 UTC 2020


On 2020-07-17 4:30 p.m., Colin King wrote:
> From: Colin Ian King <colin.king at canonical.com>
> 
> Changes in this release of ACPICA are detailed at the following
> link on the ACPICA developer mailing list:
> 
> https://lists.acpica.org/hyperkitty/list/devel@acpica.org/thread/CXHTTCYQS6APX5VI4ZS6GC7WD7E5FD3B/
> 
> Signed-off-by: Colin Ian King <colin.king at canonical.com>
> ---
>  src/acpica/source/compiler/aslerror.c             |  2 +-
>  src/acpica/source/compiler/aslexternal.c          |  8 ++++++++
>  src/acpica/source/compiler/aslload.c              | 10 +++++-----
>  src/acpica/source/compiler/aslmethod.c            | 12 ++++++++++++
>  src/acpica/source/compiler/aslxref.c              |  4 +++-
>  src/acpica/source/components/executer/exprep.c    |  4 ----
>  src/acpica/source/components/utilities/utdelete.c |  6 +-----
>  src/acpica/source/components/utilities/utids.c    |  2 +-
>  src/acpica/source/include/acpixf.h                |  2 +-
>  src/acpica/source/include/actypes.h               |  2 +-
>  10 files changed, 33 insertions(+), 19 deletions(-)
> 
> diff --git a/src/acpica/source/compiler/aslerror.c b/src/acpica/source/compiler/aslerror.c
> index 8fae779d..15098342 100644
> --- a/src/acpica/source/compiler/aslerror.c
> +++ b/src/acpica/source/compiler/aslerror.c
> @@ -1056,7 +1056,7 @@ GetModifiedLevel (
>      UINT8                   Level,
>      UINT16                  MessageId)
>  {
> -    UINT16                  i;
> +    UINT32                  i;
>      UINT16                  ExceptionCode;
>  
>  
> diff --git a/src/acpica/source/compiler/aslexternal.c b/src/acpica/source/compiler/aslexternal.c
> index 315247be..a05ba118 100644
> --- a/src/acpica/source/compiler/aslexternal.c
> +++ b/src/acpica/source/compiler/aslexternal.c
> @@ -200,6 +200,14 @@ ExDoExternal (
>  
>  
>      ExternType = AnMapObjTypeToBtype (ExternTypeOp);
> +    if (ExternType != ACPI_BTYPE_METHOD)
> +    {
> +        /*
> +         * If this is not a method, it has zero parameters this local variable
> +         * is used only for methods
> +         */
> +        ParamCount = 0;
> +    }
>  
>      /*
>       * The parser allows optional parameter return types regardless of the
> diff --git a/src/acpica/source/compiler/aslload.c b/src/acpica/source/compiler/aslload.c
> index bdc0d805..454fa8f5 100644
> --- a/src/acpica/source/compiler/aslload.c
> +++ b/src/acpica/source/compiler/aslload.c
> @@ -1177,13 +1177,13 @@ LdAnalyzeExternals (
>           * previously declared External
>           */
>          Node->Flags &= ~ANOBJ_IS_EXTERNAL;
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualOpType;
>  
>          /* Just retyped a node, probably will need to open a scope */
>  
> -        if (AcpiNsOpensScope (ExternalOpType))
> +        if (AcpiNsOpensScope (ActualOpType))
>          {
> -            Status = AcpiDsScopeStackPush (Node, ExternalOpType, WalkState);
> +            Status = AcpiDsScopeStackPush (Node, ActualOpType, WalkState);
>              if (ACPI_FAILURE (Status))
>              {
>                  return (Status);
> @@ -1204,11 +1204,11 @@ LdAnalyzeExternals (
>      }
>      else if ((Node->Flags & ANOBJ_IS_EXTERNAL) &&
>               (Op->Asl.ParseOpcode == PARSEOP_EXTERNAL) &&
> -             (ExternalOpType == ACPI_TYPE_ANY))
> +             (ActualOpType == ACPI_TYPE_ANY))
>      {
>          /* Allow update of externals of unknown type. */
>  
> -        Node->Type = (UINT8) ExternalOpType;
> +        Node->Type = (UINT8) ActualExternalOpType;
>          Status = AE_OK;
>      }
>  
> diff --git a/src/acpica/source/compiler/aslmethod.c b/src/acpica/source/compiler/aslmethod.c
> index ff6fd474..32b4b123 100644
> --- a/src/acpica/source/compiler/aslmethod.c
> +++ b/src/acpica/source/compiler/aslmethod.c
> @@ -306,6 +306,8 @@ MtMethodAnalysisWalkBegin (
>          {
>              ActualArgs = MtProcessParameterTypeList (NextType,
>                  MethodInfo->ValidArgTypes);
> +            MethodInfo->NumArguments = ActualArgs;
> +            ArgNode->Asl.Value.Integer |= ActualArgs;
>          }
>  
>          if ((MethodInfo->NumArguments) &&
> @@ -671,6 +673,16 @@ MtProcessParameterTypeList (
>      UINT8                   ParameterCount = 0;
>  
>  
> +    if (ParamTypeOp && ParamTypeOp->Asl.ParseOpcode != PARSEOP_DEFAULT_ARG)
> +    {
> +        /* Special case for a single parameter without braces */
> +
> +        TypeList[ParameterCount] =
> +            MtProcessTypeOp (ParamTypeOp);
> +
> +        return (1);
> +    }
> +
>      while (ParamTypeOp)
>      {
>          TypeList[ParameterCount] =
> diff --git a/src/acpica/source/compiler/aslxref.c b/src/acpica/source/compiler/aslxref.c
> index 4bbbe2bd..9306af20 100644
> --- a/src/acpica/source/compiler/aslxref.c
> +++ b/src/acpica/source/compiler/aslxref.c
> @@ -994,12 +994,14 @@ XfNamespaceLocateBegin (
>           * invocation of the method, it is simply a reference to the method.
>           *
>           * September 2016: Removed DeRefOf from this list
> +         * July 2020: Added Alias to this list
>           */
>          if ((Op->Asl.Parent) &&
>              ((Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_REFOF)     ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_PACKAGE)    ||
>              (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_VAR_PACKAGE)||
> -            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE)))
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_OBJECTTYPE) ||
> +            (Op->Asl.Parent->Asl.ParseOpcode == PARSEOP_ALIAS)))
>          {
>              return_ACPI_STATUS (AE_OK);
>          }
> diff --git a/src/acpica/source/components/executer/exprep.c b/src/acpica/source/components/executer/exprep.c
> index 6ceac68f..3074366d 100644
> --- a/src/acpica/source/components/executer/exprep.c
> +++ b/src/acpica/source/components/executer/exprep.c
> @@ -651,10 +651,6 @@ AcpiExPrepFieldValue (
>              }
>          }
>  
> -        /* An additional reference for the container */
> -
> -        AcpiUtAddReference (ObjDesc->Field.RegionObj);
> -
>          ACPI_DEBUG_PRINT ((ACPI_DB_BFIELD,
>              "RegionField: BitOff %X, Off %X, Gran %X, Region %p\n",
>              ObjDesc->Field.StartFieldBitOffset,
> diff --git a/src/acpica/source/components/utilities/utdelete.c b/src/acpica/source/components/utilities/utdelete.c
> index 502ff413..aafd5295 100644
> --- a/src/acpica/source/components/utilities/utdelete.c
> +++ b/src/acpica/source/components/utilities/utdelete.c
> @@ -749,11 +749,6 @@ AcpiUtUpdateObjectReference (
>              NextObject = Object->BufferField.BufferObj;
>              break;
>  
> -        case ACPI_TYPE_LOCAL_REGION_FIELD:
> -
> -            NextObject = Object->Field.RegionObj;
> -            break;
> -
>          case ACPI_TYPE_LOCAL_BANK_FIELD:
>  
>              NextObject = Object->BankField.BankObj;
> @@ -789,6 +784,7 @@ AcpiUtUpdateObjectReference (
>              }
>              break;
>  
> +        case ACPI_TYPE_LOCAL_REGION_FIELD:
>          case ACPI_TYPE_REGION:
>          default:
>  
> diff --git a/src/acpica/source/components/utilities/utids.c b/src/acpica/source/components/utilities/utids.c
> index e296c00a..34ae697a 100644
> --- a/src/acpica/source/components/utilities/utids.c
> +++ b/src/acpica/source/components/utilities/utids.c
> @@ -435,7 +435,7 @@ AcpiUtExecute_CID (
>       * 3) Size of the actual CID strings
>       */
>      CidListSize = sizeof (ACPI_PNP_DEVICE_ID_LIST) +
> -        ((Count - 1) * sizeof (ACPI_PNP_DEVICE_ID)) +
> +        (Count * sizeof (ACPI_PNP_DEVICE_ID)) +
>          StringAreaSize;
>  
>      CidList = ACPI_ALLOCATE_ZEROED (CidListSize);
> diff --git a/src/acpica/source/include/acpixf.h b/src/acpica/source/include/acpixf.h
> index 2eafdeac..c1b55401 100644
> --- a/src/acpica/source/include/acpixf.h
> +++ b/src/acpica/source/include/acpixf.h
> @@ -154,7 +154,7 @@
>  
>  /* Current ACPICA subsystem version in YYYYMMDD format */
>  
> -#define ACPI_CA_VERSION                 0x20200528
> +#define ACPI_CA_VERSION                 0x20200717
>  
>  #include "acconfig.h"
>  #include "actypes.h"
> diff --git a/src/acpica/source/include/actypes.h b/src/acpica/source/include/actypes.h
> index 2666ebfb..0ec14a36 100644
> --- a/src/acpica/source/include/actypes.h
> +++ b/src/acpica/source/include/actypes.h
> @@ -1379,7 +1379,7 @@ typedef struct acpi_pnp_device_id_list
>  {
>      UINT32                          Count;              /* Number of IDs in Ids array */
>      UINT32                          ListSize;           /* Size of list, including ID strings */
> -    ACPI_PNP_DEVICE_ID              Ids[1];             /* ID array */
> +    ACPI_PNP_DEVICE_ID              Ids[];              /* ID array */
>  
>  } ACPI_PNP_DEVICE_ID_LIST;
>  
> 
Acked-by: Alex Hung <alex.hung at canonical.com>



More information about the fwts-devel mailing list