lkml.org 
[lkml]   [2016]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.4 42/50] powerpc/powernv: Fix OPAL_CONSOLE_FLUSH prototype and usages
    Date
    4.4-stable review patch.  If anyone has any objections, please let me know.

    ------------------

    From: Russell Currey <ruscur@russell.cc>

    commit c88c5d43732a0356f99e5e4d1ad62ab1ea516b81 upstream.

    The recently added OPAL API call, OPAL_CONSOLE_FLUSH, originally took no
    parameters and returned nothing. The call was updated to accept the
    terminal number to flush, and returned various values depending on the
    state of the output buffer.

    The prototype has been updated and its usage in the OPAL kmsg dumper has
    been modified to support its new behaviour as an incremental flush.

    Signed-off-by: Russell Currey <ruscur@russell.cc>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    arch/powerpc/include/asm/opal.h | 2 +-
    arch/powerpc/platforms/powernv/opal-kmsg.c | 9 ++++++++-
    2 files changed, 9 insertions(+), 2 deletions(-)

    --- a/arch/powerpc/include/asm/opal.h
    +++ b/arch/powerpc/include/asm/opal.h
    @@ -35,7 +35,7 @@ int64_t opal_console_read(int64_t term_n
    uint8_t *buffer);
    int64_t opal_console_write_buffer_space(int64_t term_number,
    __be64 *length);
    -void opal_console_flush(void);
    +int64_t opal_console_flush(int64_t term_number);
    int64_t opal_rtc_read(__be32 *year_month_day,
    __be64 *hour_minute_second_millisecond);
    int64_t opal_rtc_write(uint32_t year_month_day,
    --- a/arch/powerpc/platforms/powernv/opal-kmsg.c
    +++ b/arch/powerpc/platforms/powernv/opal-kmsg.c
    @@ -27,6 +27,7 @@ static void force_opal_console_flush(str
    enum kmsg_dump_reason reason)
    {
    int i;
    + int64_t ret;

    /*
    * Outside of a panic context the pollers will continue to run,
    @@ -36,7 +37,13 @@ static void force_opal_console_flush(str
    return;

    if (opal_check_token(OPAL_CONSOLE_FLUSH)) {
    - opal_console_flush();
    + ret = opal_console_flush(0);
    +
    + if (ret == OPAL_UNSUPPORTED || ret == OPAL_PARAMETER)
    + return;
    +
    + /* Incrementally flush until there's nothing left */
    + while (opal_console_flush(0) != OPAL_SUCCESS);
    } else {
    /*
    * If OPAL_CONSOLE_FLUSH is not implemented in the firmware,

    \
     
     \ /
      Last update: 2016-03-14 19:41    [W:2.159 / U:0.032 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site