lkml.org 
[lkml]   [2020]   [Dec]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH AUTOSEL 5.9 11/23] habanalabs: put devices before driver removal
    Date
    From: Ofir Bitton <obitton@habana.ai>

    [ Upstream commit 5555b7c56bdec7a29c789fec27f84d40f52fbdfa ]

    Driver never puts its device and control_device objects, hence
    a memory leak is introduced every driver removal.

    Signed-off-by: Ofir Bitton <obitton@habana.ai>
    Reviewed-by: Oded Gabbay <ogabbay@kernel.org>
    Signed-off-by: Oded Gabbay <ogabbay@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/misc/habanalabs/common/device.c | 16 ++++++++--------
    1 file changed, 8 insertions(+), 8 deletions(-)

    diff --git a/drivers/misc/habanalabs/common/device.c b/drivers/misc/habanalabs/common/device.c
    index 24b01cce0a384..39fa31d05d9cd 100644
    --- a/drivers/misc/habanalabs/common/device.c
    +++ b/drivers/misc/habanalabs/common/device.c
    @@ -227,16 +227,16 @@ delete_cdev_device:

    static void device_cdev_sysfs_del(struct hl_device *hdev)
    {
    - /* device_release() won't be called so must free devices explicitly */
    - if (!hdev->cdev_sysfs_created) {
    - kfree(hdev->dev_ctrl);
    - kfree(hdev->dev);
    - return;
    - }
    + if (!hdev->cdev_sysfs_created)
    + goto put_devices;

    hl_sysfs_fini(hdev);
    cdev_device_del(&hdev->cdev_ctrl, hdev->dev_ctrl);
    cdev_device_del(&hdev->cdev, hdev->dev);
    +
    +put_devices:
    + put_device(hdev->dev);
    + put_device(hdev->dev_ctrl);
    }

    /*
    @@ -1362,9 +1362,9 @@ sw_fini:
    early_fini:
    device_early_fini(hdev);
    free_dev_ctrl:
    - kfree(hdev->dev_ctrl);
    + put_device(hdev->dev_ctrl);
    free_dev:
    - kfree(hdev->dev);
    + put_device(hdev->dev);
    out_disabled:
    hdev->disabled = true;
    if (add_cdev_sysfs_on_err)
    --
    2.27.0
    \
     
     \ /
      Last update: 2020-12-12 17:14    [W:6.010 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site