On Mon, Dec 5, 2016 at 1:27 PM, Vishal Verma <vishal.l.ve...@intel.com> wrote:
> ACPI DSMs can have an 'extended' status which can be non-zero to convey
> additional information about the command. In the xlat_status routine,
> where we translate the command statuses, we were returning an error for
> a non-zero extended status, even if the primary status indicated success.
>
> Cc: Dan Williams <dan.j.willi...@intel.com>
> Signed-off-by: Vishal Verma <vishal.l.ve...@intel.com>
> ---
>  drivers/acpi/nfit/core.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/acpi/nfit/core.c b/drivers/acpi/nfit/core.c
> index 71a7d07..d14f09b 100644
> --- a/drivers/acpi/nfit/core.c
> +++ b/drivers/acpi/nfit/core.c
> @@ -169,7 +169,7 @@ static int xlat_status(void *buf, unsigned int cmd, u32 
> status)
>         }
>
>         /* all other non-zero status results in an error */
> -       if (status)
> +       if (status & 0xffff)
>                 return -EIO;

I don't think this is right, because we have no idea at this point
whether extended status is fatal or not.

Each 'case' statement in that 'switch' should be returning 0 if it
does not see any errors. Because that's the only part of the function
with per-command knowledge of extended being benign / informational vs
fatal.
_______________________________________________
Linux-nvdimm mailing list
Linux-nvdimm@lists.01.org
https://lists.01.org/mailman/listinfo/linux-nvdimm

Reply via email to