lkml.org 
[lkml]   [2022]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 049/320] tee: fix put order in teedev_close_context()
    Date
    From: Jens Wiklander <jens.wiklander@linaro.org>

    [ Upstream commit f18397ab3ae23e8e43bba9986e66af6d4497f2ad ]

    Prior to this patch was teedev_close_context() calling tee_device_put()
    before teedev_ctx_put() leading to teedev_ctx_release() accessing
    ctx->teedev just after the reference counter was decreased on the
    teedev. Fix this by calling teedev_ctx_put() before tee_device_put().

    Fixes: 217e0250cccb ("tee: use reference counting for tee_context")
    Reviewed-by: Sumit Garg <sumit.garg@linaro.org>
    Signed-off-by: Jens Wiklander <jens.wiklander@linaro.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/tee/tee_core.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/tee/tee_core.c b/drivers/tee/tee_core.c
    index 0f16d9ffd8d12..85e0cef9e917e 100644
    --- a/drivers/tee/tee_core.c
    +++ b/drivers/tee/tee_core.c
    @@ -84,8 +84,10 @@ void teedev_ctx_put(struct tee_context *ctx)

    static void teedev_close_context(struct tee_context *ctx)
    {
    - tee_device_put(ctx->teedev);
    + struct tee_device *teedev = ctx->teedev;
    +
    teedev_ctx_put(ctx);
    + tee_device_put(teedev);
    }

    static int tee_open(struct inode *inode, struct file *filp)
    --
    2.34.1


    \
     
     \ /
      Last update: 2022-01-24 21:40    [W:2.742 / U:0.368 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site