RE: [PATCH] ACPICA / hardware: Fix address check in acpi_hw_get_access_bit_width()

From: Zheng, Lv
Date: Thu May 26 2016 - 23:53:27 EST


Hi, Boris

Can you help to confirm if this can fix all of the issues you saw in the older qemu.

Thanks and best regards
-Lv

> From: Zheng, Lv
> Subject: [PATCH] ACPICA / hardware: Fix address check in
> acpi_hw_get_access_bit_width()
>
> The address check in acpi_hw_get_access_bit_width() should be byte size
> based, not bit width based. This patch fixes this mistake.
>
> Reported-by: Boris Ostrovsky <boris.ostrovsky@xxxxxxxxxx>
> Suggested-by: Jan Beulich <jbeulich@xxxxxxxx>
> Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
> ---
> drivers/acpi/acpica/hwregs.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/acpica/hwregs.c b/drivers/acpi/acpica/hwregs.c
> index 0f18dbc..74a591b 100644
> --- a/drivers/acpi/acpica/hwregs.c
> +++ b/drivers/acpi/acpica/hwregs.c
> @@ -95,7 +95,7 @@ acpi_hw_get_access_bit_width(struct
> acpi_generic_address *reg, u8 max_bit_width)
> if (!reg->bit_offset && reg->bit_width &&
> ACPI_IS_POWER_OF_TWO(reg->bit_width) &&
> ACPI_IS_ALIGNED(reg->bit_width, 8) &&
> - ACPI_IS_ALIGNED(address, reg->bit_width)) {
> + ACPI_IS_ALIGNED(address, reg->bit_width >> 3)) {
> return (reg->bit_width);
> } else {
> if (reg->space_id == ACPI_ADR_SPACE_SYSTEM_IO)
> {
> --
> 1.7.10