Loading drivers/gpu/drm/qxl/qxl_cmd.c +7 −12 Original line number Diff line number Diff line Loading @@ -435,22 +435,18 @@ void qxl_io_monitors_config(struct qxl_device *qdev) int qxl_surface_id_alloc(struct qxl_device *qdev, struct qxl_bo *surf) { uint32_t handle = -ENOMEM; uint32_t handle; int idr_ret; int count = 0; again: if (idr_pre_get(&qdev->surf_id_idr, GFP_ATOMIC) == 0) { DRM_ERROR("Out of memory for surf idr\n"); kfree(surf); goto alloc_fail; } idr_preload(GFP_ATOMIC); spin_lock(&qdev->surf_id_idr_lock); idr_ret = idr_get_new_above(&qdev->surf_id_idr, NULL, 1, &handle); idr_ret = idr_alloc(&qdev->surf_id_idr, NULL, 1, 0, GFP_NOWAIT); spin_unlock(&qdev->surf_id_idr_lock); if (idr_ret == -EAGAIN) goto again; idr_preload_end(); if (idr_ret < 0) return idr_ret; handle = idr_ret; if (handle >= qdev->rom->n_surfaces) { count++; Loading @@ -465,7 +461,6 @@ int qxl_surface_id_alloc(struct qxl_device *qdev, spin_lock(&qdev->surf_id_idr_lock); qdev->last_alloced_surf_id = handle; spin_unlock(&qdev->surf_id_idr_lock); alloc_fail: return 0; } Loading drivers/gpu/drm/qxl/qxl_release.c +9 −12 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ qxl_release_alloc(struct qxl_device *qdev, int type, struct qxl_release **ret) { struct qxl_release *release; int handle = 0; int handle; size_t size = sizeof(*release); int idr_ret; Loading @@ -56,18 +56,15 @@ qxl_release_alloc(struct qxl_device *qdev, int type, release->bo_count = 0; release->release_offset = 0; release->surface_release_id = 0; again: if (idr_pre_get(&qdev->release_idr, GFP_KERNEL) == 0) { DRM_ERROR("Out of memory for release idr\n"); kfree(release); goto release_fail; } idr_preload(GFP_KERNEL); spin_lock(&qdev->release_idr_lock); idr_ret = idr_get_new_above(&qdev->release_idr, release, 1, &handle); idr_ret = idr_alloc(&qdev->release_idr, release, 1, 0, GFP_NOWAIT); spin_unlock(&qdev->release_idr_lock); if (idr_ret == -EAGAIN) goto again; if (ret) idr_preload_end(); handle = idr_ret; if (idr_ret < 0) goto release_fail; *ret = release; QXL_INFO(qdev, "allocated release %lld\n", handle); release->id = handle; Loading Loading
drivers/gpu/drm/qxl/qxl_cmd.c +7 −12 Original line number Diff line number Diff line Loading @@ -435,22 +435,18 @@ void qxl_io_monitors_config(struct qxl_device *qdev) int qxl_surface_id_alloc(struct qxl_device *qdev, struct qxl_bo *surf) { uint32_t handle = -ENOMEM; uint32_t handle; int idr_ret; int count = 0; again: if (idr_pre_get(&qdev->surf_id_idr, GFP_ATOMIC) == 0) { DRM_ERROR("Out of memory for surf idr\n"); kfree(surf); goto alloc_fail; } idr_preload(GFP_ATOMIC); spin_lock(&qdev->surf_id_idr_lock); idr_ret = idr_get_new_above(&qdev->surf_id_idr, NULL, 1, &handle); idr_ret = idr_alloc(&qdev->surf_id_idr, NULL, 1, 0, GFP_NOWAIT); spin_unlock(&qdev->surf_id_idr_lock); if (idr_ret == -EAGAIN) goto again; idr_preload_end(); if (idr_ret < 0) return idr_ret; handle = idr_ret; if (handle >= qdev->rom->n_surfaces) { count++; Loading @@ -465,7 +461,6 @@ int qxl_surface_id_alloc(struct qxl_device *qdev, spin_lock(&qdev->surf_id_idr_lock); qdev->last_alloced_surf_id = handle; spin_unlock(&qdev->surf_id_idr_lock); alloc_fail: return 0; } Loading
drivers/gpu/drm/qxl/qxl_release.c +9 −12 Original line number Diff line number Diff line Loading @@ -43,7 +43,7 @@ qxl_release_alloc(struct qxl_device *qdev, int type, struct qxl_release **ret) { struct qxl_release *release; int handle = 0; int handle; size_t size = sizeof(*release); int idr_ret; Loading @@ -56,18 +56,15 @@ qxl_release_alloc(struct qxl_device *qdev, int type, release->bo_count = 0; release->release_offset = 0; release->surface_release_id = 0; again: if (idr_pre_get(&qdev->release_idr, GFP_KERNEL) == 0) { DRM_ERROR("Out of memory for release idr\n"); kfree(release); goto release_fail; } idr_preload(GFP_KERNEL); spin_lock(&qdev->release_idr_lock); idr_ret = idr_get_new_above(&qdev->release_idr, release, 1, &handle); idr_ret = idr_alloc(&qdev->release_idr, release, 1, 0, GFP_NOWAIT); spin_unlock(&qdev->release_idr_lock); if (idr_ret == -EAGAIN) goto again; if (ret) idr_preload_end(); handle = idr_ret; if (idr_ret < 0) goto release_fail; *ret = release; QXL_INFO(qdev, "allocated release %lld\n", handle); release->id = handle; Loading