lkml.org 
[lkml]   [2020]   [Apr]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 012/148] xenbus: req->err should be updated before req->state
    Date
    From: Dongli Zhang <dongli.zhang@oracle.com>

    [ Upstream commit 8130b9d5b5abf26f9927b487c15319a187775f34 ]

    This patch adds the barrier to guarantee that req->err is always updated
    before req->state.

    Otherwise, read_reply() would not return ERR_PTR(req->err) but
    req->body, when process_writes()->xb_write() is failed.

    Signed-off-by: Dongli Zhang <dongli.zhang@oracle.com>
    Link: https://lore.kernel.org/r/20200303221423.21962-2-dongli.zhang@oracle.com
    Reviewed-by: Julien Grall <jgrall@amazon.com>
    Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/xen/xenbus/xenbus_comms.c | 2 ++
    1 file changed, 2 insertions(+)

    diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
    index 852ed161fc2a7..eb5151fc8efab 100644
    --- a/drivers/xen/xenbus/xenbus_comms.c
    +++ b/drivers/xen/xenbus/xenbus_comms.c
    @@ -397,6 +397,8 @@ static int process_writes(void)
    if (state.req->state == xb_req_state_aborted)
    kfree(state.req);
    else {
    + /* write err, then update state */
    + virt_wmb();
    state.req->state = xb_req_state_got_reply;
    wake_up(&state.req->wq);
    }
    --
    2.20.1


    \
     
     \ /
      Last update: 2020-04-01 18:40    [W:5.014 / U:0.052 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site