• Jens Wiklander's avatar
    tee: optee: fix device enumeration error handling · 03212e34
    Jens Wiklander authored
    Prior to this patch in optee_probe() when optee_enumerate_devices() was
    called the struct optee was fully initialized. If
    optee_enumerate_devices() returns an error optee_probe() is supposed to
    clean up and free the struct optee completely, but will at this late
    stage need to call optee_remove() instead. This isn't done and thus
    freeing the struct optee prematurely.
    
    With this patch the call to optee_enumerate_devices() is done after
    optee_probe() has returned successfully and in case
    optee_enumerate_devices() fails everything is cleaned up with a call to
    optee_remove().
    
    Fixes: c3fa24af ("tee: optee: add TEE bus device enumeration support")
    Reviewed-by: default avatarSumit Garg <sumit.garg@linaro.org>
    Signed-off-by: default avatarJens Wiklander <jens.wiklander@linaro.org>
    03212e34
core.c 17.9 KB