lkml.org 
[lkml]   [2019]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.19 105/170] ocxl: Fix endiannes bug in ocxl_link_update_pe()
    Date
    4.19-stable review patch.  If anyone has any objections, please let me know.

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

    From: Greg Kurz <groug@kaod.org>

    commit e1e71e201703500f708bdeaf64660a2a178cb6a0 upstream.

    All fields in the PE are big-endian. Use cpu_to_be32() like everywhere
    else something is written to the PE. Otherwise a wrong TID will be used
    by the NPU. If this TID happens to point to an existing thread sharing
    the same mm, it could be woken up by error. This is highly improbable
    though. The likely outcome of this is the NPU not finding the target
    thread and forcing the AFU into sending an interrupt, which userspace
    is supposed to handle anyway.

    Fixes: e948e06fc63a ("ocxl: Expose the thread_id needed for wait on POWER9")
    Cc: stable@vger.kernel.org # v4.18
    Signed-off-by: Greg Kurz <groug@kaod.org>
    Acked-by: Andrew Donnellan <andrew.donnellan@au1.ibm.com>
    Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/misc/ocxl/link.c | 2 +-
    1 file changed, 1 insertion(+), 1 deletion(-)

    --- a/drivers/misc/ocxl/link.c
    +++ b/drivers/misc/ocxl/link.c
    @@ -566,7 +566,7 @@ int ocxl_link_update_pe(void *link_handl

    mutex_lock(&spa->spa_lock);

    - pe->tid = tid;
    + pe->tid = cpu_to_be32(tid);

    /*
    * The barrier makes sure the PE is updated

    \
     
     \ /
      Last update: 2019-01-07 18:25    [W:3.606 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site