[Spice-devel] [drm/qxl 4/6] qxl: Call qxl_gem_{init,fini}
Frediano Ziglio
fziglio at redhat.com
Mon Oct 31 11:42:35 UTC 2016
>
> qdev->gem.objects was initialized directly in qxl_device_init() rather
> than going through qxl_gem_init(), and qxl_gem_fini() was never called.
>
Considering "qxl_gem_fini() was never called" did we have a leak?
> Signed-off-by: Christophe Fergeau <cfergeau at redhat.com>
> ---
> drivers/gpu/drm/qxl/qxl_kms.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/qxl/qxl_kms.c b/drivers/gpu/drm/qxl/qxl_kms.c
> index e642242..af685f1 100644
> --- a/drivers/gpu/drm/qxl/qxl_kms.c
> +++ b/drivers/gpu/drm/qxl/qxl_kms.c
> @@ -131,7 +131,7 @@ static int qxl_device_init(struct qxl_device *qdev,
> mutex_init(&qdev->update_area_mutex);
> mutex_init(&qdev->release_mutex);
> mutex_init(&qdev->surf_evict_mutex);
> - INIT_LIST_HEAD(&qdev->gem.objects);
> + qxl_gem_init(qdev);
>
Here qxl_gem_init returns a value that is always ignored, perhaps
would be better to return void from qxl_gem_init if it cannot
fails.
> qdev->rom_base = pci_resource_start(pdev, 2);
> qdev->rom_size = pci_resource_len(pdev, 2);
> @@ -273,6 +273,7 @@ static void qxl_device_fini(struct qxl_device *qdev)
> qxl_ring_free(qdev->command_ring);
> qxl_ring_free(qdev->cursor_ring);
> qxl_ring_free(qdev->release_ring);
> + qxl_gem_fini(qdev);
> qxl_bo_fini(qdev);
> io_mapping_free(qdev->surface_mapping);
> io_mapping_free(qdev->vram_mapping);
Frediano
More information about the Spice-devel
mailing list