On 2020-09-07 04:06, Daniel Vetter wrote: > On Sat, Sep 05, 2020 at 11:50:05AM -0400, Alex Deucher wrote: >> On Thu, Sep 3, 2020 at 9:22 PM Luben Tuikov <luben.tuikov@xxxxxxx> wrote: >>> >>> Convert to using devm_drm_dev_alloc(), >>> as drm_dev_init() is going away. >>> >>> Signed-off-by: Luben Tuikov <luben.tuikov@xxxxxxx> >> >> I think we can drop the final drm_put in the error case? I think the >> unwinding in current devm code should take care of it. > > Same applies for the pci remove hook too. What same applies to the pci remove hook? Removing "drm_dev_put()" altogether? Well, amdgpu_pci_remove() doesn't call any devm_ or drmm_ functions--it only calls drm_dev_put() at the very end. This in turn decrements the kref and if the kref is 0 at this point it calls drm_dev_release() which does this: static void drm_dev_release(struct kref *ref) { struct drm_device *dev = container_of(ref, struct drm_device, ref); if (dev->driver->release) dev->driver->release(dev); drm_managed_release(dev); kfree(dev->managed.final_kfree); } Regards, Luben > -Daniel >> >> Alex >> >>> --- >>> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 11 +++-------- >>> 1 file changed, 3 insertions(+), 8 deletions(-) >>> >>> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> index 146a85c8df1c..06d994187c24 100644 >>> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c >>> @@ -1142,18 +1142,13 @@ 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; >>> -- >>> 2.28.0.394.ge197136389 >>> >>> _______________________________________________ >>> amd-gfx mailing list >>> amd-gfx@xxxxxxxxxxxxxxxxxxxxx >>> https://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Flists.freedesktop.org%2Fmailman%2Flistinfo%2Famd-gfx&data=02%7C01%7Cluben.tuikov%40amd.com%7Caa19e7efd2304d998c4008d85304e2c8%7C3dd8961fe4884e608e11a82d994e183d%7C0%7C0%7C637350627736412131&sdata=4LzuUUOQSu5GiYSLfIymvUewNaJwwq%2BJR%2BAK60sfkpA%3D&reserved=0 > _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx