lkml.org 
[lkml]   [2011]   [Jul]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC 1/2] ACPI, APEI, Add apei_exec_run_optional
    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@novell.com>
    >> Signed-off-by: Huang Ying<ying.huang@intel.com>
    >> ---
    >> 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-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2011-07-06 02:29    [W:0.024 / U:124.304 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site