lkml.org 
[lkml]   [2023]   [Dec]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] crypto: octeontx2: Fix cptvf driver cleanup
    Date
    This patch fixes following cleanup issues:
    - Missing instruction queue free on cleanup. This
    will lead to memory leak.
    - lfs->lfs_num is set to zero before cleanup, which
    will lead to improper cleanup.
    - Missing otx2_cptlf_shutdown() from cptvf driver cleanup

    Signed-off-by: Bharat Bhushan <bbhushan2@marvell.com>
    ---
    drivers/crypto/marvell/octeontx2/otx2_cptlf.c | 6 ++++--
    drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c | 10 ++++------
    2 files changed, 8 insertions(+), 8 deletions(-)

    diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptlf.c b/drivers/crypto/marvell/octeontx2/otx2_cptlf.c
    index 6edd27ff8c4e..e4bd3f030cec 100644
    --- a/drivers/crypto/marvell/octeontx2/otx2_cptlf.c
    +++ b/drivers/crypto/marvell/octeontx2/otx2_cptlf.c
    @@ -419,8 +419,8 @@ int otx2_cptlf_init(struct otx2_cptlfs_info *lfs, u8 eng_grp_mask, int pri,
    return 0;

    free_iq:
    - otx2_cpt_free_instruction_queues(lfs);
    cptlf_hw_cleanup(lfs);
    + otx2_cpt_free_instruction_queues(lfs);
    detach_rsrcs:
    otx2_cpt_detach_rsrcs_msg(lfs);
    clear_lfs_num:
    @@ -431,11 +431,13 @@ EXPORT_SYMBOL_NS_GPL(otx2_cptlf_init, CRYPTO_DEV_OCTEONTX2_CPT);

    void otx2_cptlf_shutdown(struct otx2_cptlfs_info *lfs)
    {
    - lfs->lfs_num = 0;
    /* Cleanup LFs hardware side */
    cptlf_hw_cleanup(lfs);
    + /* Free instruction queues */
    + otx2_cpt_free_instruction_queues(lfs);
    /* Send request to detach LFs */
    otx2_cpt_detach_rsrcs_msg(lfs);
    + lfs->lfs_num = 0;
    }
    EXPORT_SYMBOL_NS_GPL(otx2_cptlf_shutdown, CRYPTO_DEV_OCTEONTX2_CPT);

    diff --git a/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c b/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
    index 69a447d3702c..123ad147545e 100644
    --- a/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
    +++ b/drivers/crypto/marvell/octeontx2/otx2_cptvf_main.c
    @@ -239,18 +239,16 @@ static void cptvf_lf_shutdown(struct otx2_cptlfs_info *lfs)
    {
    atomic_set(&lfs->state, OTX2_CPTLF_IN_RESET);

    - /* Remove interrupts affinity */
    - otx2_cptlf_free_irqs_affinity(lfs);
    - /* Disable instruction queue */
    - otx2_cptlf_disable_iqueues(lfs);
    /* Unregister crypto algorithms */
    otx2_cpt_crypto_exit(lfs->pdev, THIS_MODULE);
    + /* Remove interrupts affinity */
    + otx2_cptlf_free_irqs_affinity(lfs);
    /* Unregister LFs interrupts */
    otx2_cptlf_unregister_interrupts(lfs);
    /* Cleanup LFs software side */
    lf_sw_cleanup(lfs);
    - /* Send request to detach LFs */
    - otx2_cpt_detach_rsrcs_msg(lfs);
    + /* CPT LFs cleanup */
    + otx2_cptlf_shutdown(lfs);
    }

    static int cptvf_lf_init(struct otx2_cptvf_dev *cptvf)
    --
    2.34.1
    \
     
     \ /
      Last update: 2023-12-11 05:47    [W:2.902 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site