Re: [PATCH 2/5] ACPI / debugger: Fix regressions that AML debugger stops working

From: Rafael J. Wysocki
Date: Tue Jul 05 2016 - 19:41:58 EST


On Tue, Jul 5, 2016 at 1:18 PM, Lv Zheng <lv.zheng@xxxxxxxxx> wrote:
> The FIFO unlocking mechanism in acpi_dbg has been messed up by the
> following commit:
> Commit: 287980e49ffc0f6d911601e7e352a812ed27768e
> Subject: remove lots of IS_ERR_VALUE abuses
> It converts !IS_ERR_VALUE(ret) into !ret. This patch fixes the
> regression.
>
> Fixes: 287980e49ffc ("remove lots of IS_ERR_VALUE abuses")
> Signed-off-by: Lv Zheng <lv.zheng@xxxxxxxxx>
> Cc: Arnd Bergmann <arnd@xxxxxxxx>

OK, but ->

> ---
> drivers/acpi/acpi_dbg.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/acpi/acpi_dbg.c b/drivers/acpi/acpi_dbg.c
> index 1f41284..ebc8d18 100644
> --- a/drivers/acpi/acpi_dbg.c
> +++ b/drivers/acpi/acpi_dbg.c
> @@ -602,7 +602,8 @@ static int acpi_aml_read_user(char __user *buf, int len)
> crc->tail = (crc->tail + n) & (ACPI_AML_BUF_SIZE - 1);
> ret = n;
> out:
> - acpi_aml_unlock_fifo(ACPI_AML_OUT_USER, !ret);
> + acpi_aml_unlock_fifo(ACPI_AML_OUT_USER,
> + ret < 0 ? false : true);

-> The ternary operation is not necessary here, because the result of
(ret < 0) is already boolean. So this can be written as

acpi_aml_unlock_fifo(ACPI_AML_OUT_USER, ret >= 0);

and analogously below.

I've made that change, please check the result in bleeding-edge.

Thanks,
Rafael