[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