lkml.org 
[lkml]   [2021]   [Jul]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.4 160/348] crypto: omap-sham - Fix PM reference leak in omap sham ops
    Date
    From: Zhang Qilong <zhangqilong3@huawei.com>

    [ Upstream commit ca323b2c61ec321eb9f2179a405b9c34cdb4f553 ]

    pm_runtime_get_sync will increment pm usage counter
    even it failed. Forgetting to putting operation will
    result in reference leak here. We fix it by replacing
    it with pm_runtime_resume_and_get to keep usage counter
    balanced.

    Fixes: 604c31039dae4 ("crypto: omap-sham - Check for return value from pm_runtime_get_sync")
    Signed-off-by: Zhang Qilong <zhangqilong3@huawei.com>
    Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/crypto/omap-sham.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/drivers/crypto/omap-sham.c b/drivers/crypto/omap-sham.c
    index d7c0c982ba43..f80db1eb2994 100644
    --- a/drivers/crypto/omap-sham.c
    +++ b/drivers/crypto/omap-sham.c
    @@ -364,7 +364,7 @@ static int omap_sham_hw_init(struct omap_sham_dev *dd)
    {
    int err;

    - err = pm_runtime_get_sync(dd->dev);
    + err = pm_runtime_resume_and_get(dd->dev);
    if (err < 0) {
    dev_err(dd->dev, "failed to get sync: %d\n", err);
    return err;
    @@ -2236,7 +2236,7 @@ static int omap_sham_suspend(struct device *dev)

    static int omap_sham_resume(struct device *dev)
    {
    - int err = pm_runtime_get_sync(dev);
    + int err = pm_runtime_resume_and_get(dev);
    if (err < 0) {
    dev_err(dev, "failed to get sync: %d\n", err);
    return err;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-07-12 08:24    [W:4.015 / U:0.676 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site