[PATCH 1/1] drm/amdgpu: Convert to using devm_drm_dev_alloc() (v2)

Alex Deucher alexdeucher at gmail.com
Fri Sep 18 03:00:26 UTC 2020


On Thu, Sep 17, 2020 at 6:13 PM Luben Tuikov <luben.tuikov at amd.com> wrote:
>
> Convert to using devm_drm_dev_alloc(),
> as drm_dev_init() is going away.
>
> v2: Remove drm_dev_put() since
>     a) devres doesn't do refcounting, see
>     Documentation/driver-api/driver-model/devres.rst,
>     Section 4, paragraph 1; and since
>     b) devres acts as garbage collector when
>     the DRM device's parent's devres "action" callback
>     is called to free the container device (amdgpu_device),
>     which embeds the DRM dev.
>
> Signed-off-by: Luben Tuikov <luben.tuikov at amd.com>

Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 16 ++++------------
>  1 file changed, 4 insertions(+), 12 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index 3f07d1475bd2..8d658d2a16fe 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -1159,25 +1159,20 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
>         if (ret)
>                 return ret;
>
> -       adev = kzalloc(sizeof(*adev), GFP_KERNEL);
> -       if (!adev)
> -               return -ENOMEM;
> +       adev = devm_drm_dev_alloc(&pdev->dev, &kms_driver, typeof(*adev), ddev);
> +       if (IS_ERR(adev))
> +               return PTR_ERR(adev);
>
>         adev->dev  = &pdev->dev;
>         adev->pdev = pdev;
>         ddev = adev_to_drm(adev);
> -       ret = drm_dev_init(ddev, &kms_driver, &pdev->dev);
> -       if (ret)
> -               goto err_free;
> -
> -       drmm_add_final_kfree(ddev, adev);
>
>         if (!supports_atomic)
>                 ddev->driver_features &= ~DRIVER_ATOMIC;
>
>         ret = pci_enable_device(pdev);
>         if (ret)
> -               goto err_free;
> +               return ret;
>
>         ddev->pdev = pdev;
>         pci_set_drvdata(pdev, ddev);
> @@ -1205,8 +1200,6 @@ static int amdgpu_pci_probe(struct pci_dev *pdev,
>
>  err_pci:
>         pci_disable_device(pdev);
> -err_free:
> -       drm_dev_put(ddev);
>         return ret;
>  }
>
> @@ -1223,7 +1216,6 @@ amdgpu_pci_remove(struct pci_dev *pdev)
>         amdgpu_driver_unload_kms(dev);
>         pci_disable_device(pdev);
>         pci_set_drvdata(pdev, NULL);
> -       drm_dev_put(dev);
>  }
>
>  static void
> --
> 2.28.0.394.ge197136389
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list