lkml.org 
[lkml]   [2022]   [Mar]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    SubjectRE: [PATCH 4.19 041/247] ACPICA: Fix exception code class checks
    Date
    I have the feeling that this was already fixed in a previous commit, but I could be wrong.

    -----Original Message-----
    From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Sent: Monday, March 01, 2021 8:11 AM
    To: linux-kernel@vger.kernel.org
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; stable@vger.kernel.org; Maximilian Luz <luzmaximilian@gmail.com>; Moore, Robert <robert.moore@intel.com>; Kaneda, Erik <erik.kaneda@intel.com>; Wysocki, Rafael J <rafael.j.wysocki@intel.com>; Sasha Levin <sashal@kernel.org>
    Subject: [PATCH 4.19 041/247] ACPICA: Fix exception code class checks

    From: Maximilian Luz <luzmaximilian@gmail.com>

    [ Upstream commit 3dfaea3811f8b6a89a347e8da9ab862cdf3e30fe ]

    ACPICA commit 1a3a549286ea9db07d7ec700e7a70dd8bcc4354e

    The macros to classify different AML exception codes are broken. For instance,

    ACPI_ENV_EXCEPTION(Status)

    will always evaluate to zero due to

    #define AE_CODE_ENVIRONMENTAL 0x0000
    #define ACPI_ENV_EXCEPTION(Status) (Status & AE_CODE_ENVIRONMENTAL)

    Similarly, ACPI_AML_EXCEPTION(Status) will evaluate to a non-zero value for error codes of type AE_CODE_PROGRAMMER, AE_CODE_ACPI_TABLES, as well as AE_CODE_AML, and not just AE_CODE_AML as the name suggests.

    This commit fixes those checks.

    Fixes: d46b6537f0ce ("ACPICA: AML Parser: ignore all exceptions resulting from incorrect AML during table load")
    Link: https://github.com/acpica/acpica/commit/1a3a5492
    Signed-off-by: Maximilian Luz <luzmaximilian@gmail.com>
    Signed-off-by: Bob Moore <robert.moore@intel.com>
    Signed-off-by: Erik Kaneda <erik.kaneda@intel.com>
    Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    include/acpi/acexcep.h | 10 +++++-----
    1 file changed, 5 insertions(+), 5 deletions(-)

    diff --git a/include/acpi/acexcep.h b/include/acpi/acexcep.h index 856c56ef01431..878b8e26c6c50 100644
    --- a/include/acpi/acexcep.h
    +++ b/include/acpi/acexcep.h
    @@ -59,11 +59,11 @@ struct acpi_exception_info {

    #define AE_OK (acpi_status) 0x0000

    -#define ACPI_ENV_EXCEPTION(status) (status & AE_CODE_ENVIRONMENTAL)
    -#define ACPI_AML_EXCEPTION(status) (status & AE_CODE_AML)
    -#define ACPI_PROG_EXCEPTION(status) (status & AE_CODE_PROGRAMMER)
    -#define ACPI_TABLE_EXCEPTION(status) (status & AE_CODE_ACPI_TABLES)
    -#define ACPI_CNTL_EXCEPTION(status) (status & AE_CODE_CONTROL)
    +#define ACPI_ENV_EXCEPTION(status) (((status) & AE_CODE_MASK) == AE_CODE_ENVIRONMENTAL)
    +#define ACPI_AML_EXCEPTION(status) (((status) & AE_CODE_MASK) == AE_CODE_AML)
    +#define ACPI_PROG_EXCEPTION(status) (((status) & AE_CODE_MASK) == AE_CODE_PROGRAMMER)
    +#define ACPI_TABLE_EXCEPTION(status) (((status) & AE_CODE_MASK) == AE_CODE_ACPI_TABLES)
    +#define ACPI_CNTL_EXCEPTION(status) (((status) & AE_CODE_MASK) == AE_CODE_CONTROL)

    /*
    * Environmental exceptions
    --
    2.27.0


    \
     
     \ /
      Last update: 2022-03-02 16:54    [W:2.236 / U:0.136 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site