Messages in this thread | | | Date | Mon, 20 Mar 2023 10:25:12 +0800 | Subject | Re: [PATCH] ACPI: APEI: EINJ: warn on invalid argument when explicitly indicated by platform | From | Shuai Xue <> |
| |
On 2023/3/18 AM5:24, Luck, Tony wrote: > - if (val != EINJ_STATUS_SUCCESS) > + if (val == EINJ_STATUS_FAIL) > return -EBUSY; > + else if (val == EINJ_STATUS_INVAL) > + return -EINVAL; > > The ACPI Specification is really vague here. Documented error codes are > > 0 = Success (Linux #define EINJ_STATUS_SUCCESS) > 1 = Unknown failure (Linux #define EINJ_STATUS_FAIL) > 2 = Invalid Access (Linux #define EINJ_STATUS_INVAL)
Absolutely right.
> > I don't see how reporting -EBUSY for the "Unknown Failure" case is > actually better.
Tony, did you misunderstand this patch?
The original code report -EBUSY for both "Unknown Failure" and "Invalid Access" cases.
This patch intends to report -EINVAL for "Invalid Access" case and keeps reporting -EBUSY for "Unknown Failure" case unchanged. Although -EBUSY for "Unknown Failure" case is not a good choice. Will -EIO for "Unknown failure" case be better?
By the way, do you think -EIO for time out case is suitable.
for (;;) { rc = apei_exec_run(&ctx, ACPI_EINJ_CHECK_BUSY_STATUS); if (rc) return rc; val = apei_exec_ctx_get_output(&ctx); if (!(val & EINJ_OP_BUSY)) break; if (einj_timedout(&timeout)) return -EIO;
For example, the OSPM will may warn:
Firmware does not respond in time.
And a message is printed on the console: echo: write error: Input/output error
Will -EBUSY or -ETIME for timeout be better?
> > -Tony
Thank you for comments.
Best Regards. Shuai
| |