diff options
Diffstat (limited to 'kernel/drivers/gpu/drm/qxl')
-rw-r--r-- | kernel/drivers/gpu/drm/qxl/qxl_cmd.c | 1 | ||||
-rw-r--r-- | kernel/drivers/gpu/drm/qxl/qxl_ioctl.c | 4 |
2 files changed, 4 insertions, 1 deletions
diff --git a/kernel/drivers/gpu/drm/qxl/qxl_cmd.c b/kernel/drivers/gpu/drm/qxl/qxl_cmd.c index 97823644d..f33251d67 100644 --- a/kernel/drivers/gpu/drm/qxl/qxl_cmd.c +++ b/kernel/drivers/gpu/drm/qxl/qxl_cmd.c @@ -505,6 +505,7 @@ int qxl_hw_surface_alloc(struct qxl_device *qdev, cmd = (struct qxl_surface_cmd *)qxl_release_map(qdev, release); cmd->type = QXL_SURFACE_CMD_CREATE; + cmd->flags = QXL_SURF_FLAG_KEEP_DATA; cmd->u.surface_create.format = surf->surf.format; cmd->u.surface_create.width = surf->surf.width; cmd->u.surface_create.height = surf->surf.height; diff --git a/kernel/drivers/gpu/drm/qxl/qxl_ioctl.c b/kernel/drivers/gpu/drm/qxl/qxl_ioctl.c index b110883f8..7354a4cda 100644 --- a/kernel/drivers/gpu/drm/qxl/qxl_ioctl.c +++ b/kernel/drivers/gpu/drm/qxl/qxl_ioctl.c @@ -122,8 +122,10 @@ static struct qxl_bo *qxlhw_handle_to_bo(struct qxl_device *qdev, qobj = gem_to_qxl_bo(gobj); ret = qxl_release_list_add(release, qobj); - if (ret) + if (ret) { + drm_gem_object_unreference_unlocked(gobj); return NULL; + } return qobj; } |