Re: [PATCH v2] ACPI: sysfs: Change ACPI_MASKABLE_GPE_MAX to 0x100

From: Rafael J. Wysocki
Date: Thu Nov 14 2019 - 03:50:13 EST


On Thu, Nov 14, 2019 at 8:16 AM Yunfeng Ye <yeyunfeng@xxxxxxxxxx> wrote:
>
> The commit 0f27cff8597d ("ACPI: sysfs: Make ACPI GPE mask kernel
> parameter cover all GPEs") says:
> "Use a bitmap of size 0xFF instead of a u64 for the GPE mask so 256
> GPEs can be masked"
>
> But the masking of GPE 0xFF it not supported and the check condition
> "gpe > ACPI_MASKABLE_GPE_MAX" is not valid because the type of gpe is
> u8.
>
> So modify the macro ACPI_MASKABLE_GPE_MAX to 0x100, and drop the "gpe >
> ACPI_MASKABLE_GPE_MAX" check. In addition, update the docs "Format" for
> acpi_mask_gpe parameter.
>
> Fixes: 0f27cff8597d ("ACPI: sysfs: Make ACPI GPE mask kernel parameter cover all GPEs")
> Signed-off-by: Yunfeng Ye <yeyunfeng@xxxxxxxxxx>

Applying as 5.5 material, thanks!

> ---
> v1 -> v2:
> - drop the "gpe > ACPI_MASKABLE_GPE_MAX" check
> - update the docs "Format" from <int> to <byte> for acpi_mask_gpe parameter
> - update the commit comment
>
> Documentation/admin-guide/kernel-parameters.txt | 2 +-
> drivers/acpi/sysfs.c | 4 ++--
> 2 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentation/admin-guide/kernel-parameters.txt
> index a84a83f8881e..87e27186dc69 100644
> --- a/Documentation/admin-guide/kernel-parameters.txt
> +++ b/Documentation/admin-guide/kernel-parameters.txt
> @@ -113,7 +113,7 @@
> the GPE dispatcher.
> This facility can be used to prevent such uncontrolled
> GPE floodings.
> - Format: <int>
> + Format: <byte>
>
> acpi_no_auto_serialize [HW,ACPI]
> Disable auto-serialization of AML methods
> diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
> index 75948a3f1a20..0a83ce186bc4 100644
> --- a/drivers/acpi/sysfs.c
> +++ b/drivers/acpi/sysfs.c
> @@ -819,14 +819,14 @@ static ssize_t counter_set(struct kobject *kobj,
> * interface:
> * echo unmask > /sys/firmware/acpi/interrupts/gpe00
> */
> -#define ACPI_MASKABLE_GPE_MAX 0xFF
> +#define ACPI_MASKABLE_GPE_MAX 0x100
> static DECLARE_BITMAP(acpi_masked_gpes_map, ACPI_MASKABLE_GPE_MAX) __initdata;
>
> static int __init acpi_gpe_set_masked_gpes(char *val)
> {
> u8 gpe;
>
> - if (kstrtou8(val, 0, &gpe) || gpe > ACPI_MASKABLE_GPE_MAX)
> + if (kstrtou8(val, 0, &gpe))
> return -EINVAL;
> set_bit(gpe, acpi_masked_gpes_map);
>
> --
> 2.7.4
>