• Iuliana Prodan's avatar
    crypto: caam - execute module exit point only if necessary · 4e3a61c5
    Iuliana Prodan authored
    Commit 1b46c90c ("crypto: caam - convert top level drivers to libraries")
    changed entry and exit points behavior for caamalg,
    caamalg_qi, caamalg_qi2, caamhash, caampkc, caamrng.
    
    For example, previously caam_pkc_init() and caam_pkc_exit() were
    module entry/exit points. This means that if an error would happen
    in caam_pkc_init(), then caam_pkc_exit() wouldn't have been called.
    After the mentioned commit, caam_pkc_init() and caam_pkc_exit()
    are manually called - from jr.c. caam_pkc_exit() is called
    unconditionally, even if caam_pkc_init() failed.
    
    Added a global variable to keep the status of the algorithm
    registration and free of resources.
    The exit point of caampkc/caamrng module is executed only if the
    registration was successful. Therefore we avoid double free of
    resources in case the algorithm registration failed.
    
    Fixes: 1b46c90c ("crypto: caam - convert top level drivers to libraries")
    Signed-off-by: default avatarIuliana Prodan <iuliana.prodan@nxp.com>
    Reviewed-by: default avatarHoria Geanta <horia.geanta@nxp.com>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    4e3a61c5
caamrng.c 8.48 KB