search for: err_put

Displaying 13 results from an estimated 13 matches for "err_put".

2018 Nov 23
2
[PATCH] drm/nouveau: tegra: Call nouveau_drm_device_init()
...b2baf6e0e0d..d2928d43f29a 100644 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c @@ -1171,10 +1171,16 @@ nouveau_platform_device_create(const struct nvkm_device_tegra_func *func, goto err_free; } + err = nouveau_drm_device_init(drm); + if (err) + goto err_put; + platform_set_drvdata(pdev, drm); return drm; +err_put: + drm_dev_put(drm); err_free: nvkm_device_del(pdevice); -- 2.19.1
2023 Feb 14
3
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...v, u32 *handlep) { struct drm_device *dev = obj->dev; - u32 handle; int ret; WARN_ON(!mutex_is_locked(&dev->object_name_lock)); if (obj->handle_count++ == 0) drm_gem_object_get(obj); + ret = drm_vma_node_allow(&obj->vma_node, file_priv); + if (ret) + goto err_put; + + if (obj->funcs->open) { + ret = obj->funcs->open(obj, file_priv); + if (ret) + goto err_revoke; + } + /* - * Get the user-visible handle using idr. Preload and perform - * allocation under our spinlock. + * Get the user-visible handle using idr as the _last_ step. + * Pr...
2023 Feb 14
3
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...v, u32 *handlep) { struct drm_device *dev = obj->dev; - u32 handle; int ret; WARN_ON(!mutex_is_locked(&dev->object_name_lock)); if (obj->handle_count++ == 0) drm_gem_object_get(obj); + ret = drm_vma_node_allow(&obj->vma_node, file_priv); + if (ret) + goto err_put; + + if (obj->funcs->open) { + ret = obj->funcs->open(obj, file_priv); + if (ret) + goto err_revoke; + } + /* - * Get the user-visible handle using idr. Preload and perform - * allocation under our spinlock. + * Get the user-visible handle using idr as the _last_ step. + * Pr...
2020 Nov 06
2
[PATCH 2/3] drm/nouveau: manage nouveau_drm lifetime with devres
...gt; + err = PTR_ERR(nv_dev); > goto err_free; > } > + drm_dev = nouveau_to_drm_dev(nv_dev); > > - err = nouveau_drm_device_init(drm); > + err = nouveau_drm_device_init(drm_dev); > if (err) > - goto err_put; > + goto err_free; > > - platform_set_drvdata(pdev, drm); > + platform_set_drvdata(pdev, drm_dev); > > - return drm; > + return drm_dev; > > -err_put: > - drm_dev_put(drm); > err_free: > nvkm_device_del(pdevic...
2023 Feb 20
2
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...????? int ret; >> ????? WARN_ON(!mutex_is_locked(&dev->object_name_lock)); >> ????? if (obj->handle_count++ == 0) >> ????????? drm_gem_object_get(obj); >> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >> +??? if (ret) >> +??????? goto err_put; >> + >> +??? if (obj->funcs->open) { >> +??????? ret = obj->funcs->open(obj, file_priv); >> +??????? if (ret) >> +??????????? goto err_revoke; >> +??? } >> + >> ????? /* >> -???? * Get the user-visible handle using idr.? Preload and...
2023 Feb 20
2
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...????? int ret; >> ????? WARN_ON(!mutex_is_locked(&dev->object_name_lock)); >> ????? if (obj->handle_count++ == 0) >> ????????? drm_gem_object_get(obj); >> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >> +??? if (ret) >> +??????? goto err_put; >> + >> +??? if (obj->funcs->open) { >> +??????? ret = obj->funcs->open(obj, file_priv); >> +??????? if (ret) >> +??????????? goto err_revoke; >> +??? } >> + >> ????? /* >> -???? * Get the user-visible handle using idr.? Preload and...
2023 Feb 20
1
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...utex_is_locked(&dev->object_name_lock)); >>>> ????? if (obj->handle_count++ == 0) >>>> ????????? drm_gem_object_get(obj); >>>> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >>>> +??? if (ret) >>>> +??????? goto err_put; >>>> + >>>> +??? if (obj->funcs->open) { >>>> +??????? ret = obj->funcs->open(obj, file_priv); >>>> +??????? if (ret) >>>> +??????????? goto err_revoke; >>>> +??? } >>>> + >>>> ????? /* >...
2023 Feb 20
1
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...utex_is_locked(&dev->object_name_lock)); >>>> ????? if (obj->handle_count++ == 0) >>>> ????????? drm_gem_object_get(obj); >>>> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >>>> +??? if (ret) >>>> +??????? goto err_put; >>>> + >>>> +??? if (obj->funcs->open) { >>>> +??????? ret = obj->funcs->open(obj, file_priv); >>>> +??????? if (ret) >>>> +??????????? goto err_revoke; >>>> +??? } >>>> + >>>> ????? /* >...
2020 Nov 06
0
[PATCH 2/3] drm/nouveau: manage nouveau_drm lifetime with devres
...devm_drm_dev_alloc(&pdev->dev, &driver_platform, typeof(*nv_dev), drm_dev); + if (IS_ERR(nv_dev)) { + err = PTR_ERR(nv_dev); goto err_free; } + drm_dev = nouveau_to_drm_dev(nv_dev); - err = nouveau_drm_device_init(drm); + err = nouveau_drm_device_init(drm_dev); if (err) - goto err_put; + goto err_free; - platform_set_drvdata(pdev, drm); + platform_set_drvdata(pdev, drm_dev); - return drm; + return drm_dev; -err_put: - drm_dev_put(drm); err_free: nvkm_device_del(pdevice); diff --git a/drivers/gpu/drm/nouveau/nouveau_drv.h b/drivers/gpu/drm/nouveau/nouveau_drv.h index...
2023 Feb 14
0
[PATCH] drm/gem: Expose the buffer object handle to userspace last
...j->dev; > - u32 handle; > int ret; > > WARN_ON(!mutex_is_locked(&dev->object_name_lock)); > if (obj->handle_count++ == 0) > drm_gem_object_get(obj); > > + ret = drm_vma_node_allow(&obj->vma_node, file_priv); > + if (ret) > + goto err_put; > + > + if (obj->funcs->open) { > + ret = obj->funcs->open(obj, file_priv); > + if (ret) > + goto err_revoke; > + } > + > /* > - * Get the user-visible handle using idr. Preload and perform > - * allocation under our spinlock. > + * Get the u...
2023 Feb 14
0
[Nouveau] [PATCH] drm/gem: Expose the buffer object handle to userspace last
...j->dev; > - u32 handle; > int ret; > > WARN_ON(!mutex_is_locked(&dev->object_name_lock)); > if (obj->handle_count++ == 0) > drm_gem_object_get(obj); > > + ret = drm_vma_node_allow(&obj->vma_node, file_priv); > + if (ret) > + goto err_put; > + > + if (obj->funcs->open) { > + ret = obj->funcs->open(obj, file_priv); > + if (ret) > + goto err_revoke; > + } > + > /* > - * Get the user-visible handle using idr. Preload and perform > - * allocation under our spinlock. > + * Get the u...
2023 Feb 20
0
[Nouveau] [PATCH] drm/gem: Expose the buffer object handle to userspace last
...;>> WARN_ON(!mutex_is_locked(&dev->object_name_lock)); >>> ????? if (obj->handle_count++ == 0) >>> ????????? drm_gem_object_get(obj); >>> +??? ret = drm_vma_node_allow(&obj->vma_node, file_priv); >>> +??? if (ret) >>> +??????? goto err_put; >>> + >>> +??? if (obj->funcs->open) { >>> +??????? ret = obj->funcs->open(obj, file_priv); >>> +??????? if (ret) >>> +??????????? goto err_revoke; >>> +??? } >>> + >>> ????? /* >>> -???? * Get the user-vi...
2020 Nov 06
4
[PATCH 0/3] drm/nouveau: extend the lifetime of nouveau_drm
Hi folks, Currently, when the device is removed (or the driver is unbound) the nouveau_drm structure de-allocated. However, it's still accessible from and used by some DRM layer callbacks. For example, file handles can be closed after the device has been removed (physically or otherwise). This series converts the Nouveau device structure to be allocated and de-allocated with the