Hi, Gong, Thanks for review. On 07/05/2011 09:53 PM, Gong Chen wrote: > 于 2011/7/5 14:07, Huang Ying 写道: >> Some actions in APEI ERST and EINJ tables are optional, for example, >> ACPI_EINJ_BEGIN_OPERATION action is used to do some preparation for >> error injection, and firmware may choose to do nothing here. While >> some other actions are mandatory, for example, firmware must provide >> ACPI_EINJ_GET_ERROR_TYPE implementation. >> >> Original implementation treats all actions as optional (that is, can >> have no instructions), that may cause issue if firmware does not >> provide some mandatory actions. To fix this, this patch adds >> apei_exec_run_optional, which should be used for optional actions. >> The original apei_exec_run should be used for mandatory actions. >> >> Cc: Thomas Renninger<trenn@xxxxxxxxxx> >> Signed-off-by: Huang Ying<ying.huang@xxxxxxxxx> >> --- >> drivers/acpi/apei/apei-base.c | 9 +++++---- >> drivers/acpi/apei/apei-internal.h | 13 ++++++++++++- >> 2 files changed, 17 insertions(+), 5 deletions(-) >> >> --- a/drivers/acpi/apei/apei-base.c >> +++ b/drivers/acpi/apei/apei-base.c >> @@ -157,9 +157,10 @@ EXPORT_SYMBOL_GPL(apei_exec_noop); >> * Interpret the specified action. Go through whole action table, >> * execute all instructions belong to the action. >> */ >> -int apei_exec_run(struct apei_exec_context *ctx, u8 action) >> +int __apei_exec_run(struct apei_exec_context *ctx, u8 action, >> + bool optional) >> { >> - int rc; >> + int rc = -ENOENT; >> u32 i, ip; >> struct acpi_whea_header *entry; >> apei_exec_ins_func_t run; >> @@ -198,9 +199,9 @@ rewind: >> goto rewind; >> } >> >> - return 0; >> + return !optional&& rc< 0 ? rc : 0; > > if one operation is optional but running into errors when executing this > kind of command, > here just ignoring it. Is it reasonable ? If we running into errors except there is no instructions for the action, we will return the error code before this. Please take a look at the whole function. Best Regards, Huang Ying -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html