Displaying 2 results from an estimated 2 matches for "nvobj_flag_heap".
2013 Feb 05
0
[PATCH] drm/nouveau: fix lockdep splat in display
...v50_disp_data_ctor(struct nouveau_object *parent,
}
/* allocate display hardware to client */
- mutex_lock(&nv_subdev(priv)->mutex);
- if (list_empty(&nv_engine(priv)->contexts)) {
- ret = nouveau_engctx_create(parent, engine, oclass, NULL,
- 0x10000, 0x10000,
- NVOBJ_FLAG_HEAP, &ectx);
- *pobject = nv_object(ectx);
- }
- mutex_unlock(&nv_subdev(priv)->mutex);
+ ret = nouveau_engctx_create(parent, engine, oclass, NULL, 0x10000, 0x10000,
+ NVOBJ_FLAG_HEAP | NVOBJ_FLAG_CREAT_EXCL, &ectx);
+
+ *pobject = nv_object(ectx);
return ret;
}
diff --git a...
2012 Oct 07
2
[PATCH] drm/nouveau: fix error handling in core/core object creation functions
...ret = nouveau_mm_head(heap, 1, size, size,
max(align, (u32)1), &gpuobj->node);
if (ret)
- return ret;
+ goto err;
gpuobj->addr += gpuobj->node->offset;
}
@@ -121,7 +121,7 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
if (gpuobj->flags & NVOBJ_FLAG_HEAP) {
ret = nouveau_mm_init(&gpuobj->heap, 0, gpuobj->size, 1);
if (ret)
- return ret;
+ goto err;
}
if (flags & NVOBJ_FLAG_ZERO_ALLOC) {
@@ -130,6 +130,9 @@ nouveau_gpuobj_create_(struct nouveau_object *parent,
}
return ret;
+err:
+ nouveau_gpuobj_destroy(gpuobj);...