[Openchrome-devel] Fix for bug introduced with changeset 1051
Thomas Schlichter
thomas.schlichter
Mon Dec 12 07:19:53 PST 2011
Am Montag, 12. Dezember 2011, 15:06:43 schrieb James Simmons:
> Since you posted the patch some more changes have happened. How about the
> below patch. Haven't test it yet.
This patch looks good to me. Thank you!
Kind regards,
Thomas
> Index: via_memmgr.c
> ===================================================================
> --- via_memmgr.c (revision 1058)
> +++ via_memmgr.c (working copy)
> @@ -99,7 +99,6 @@
> {
> struct buffer_object *obj = NULL;
> VIAPtr pVia = VIAPTR(pScrn);
> - int ret;
>
> obj = xnfcalloc(1, sizeof(*obj));
> if (obj) {
> @@ -109,30 +108,24 @@
> #ifdef XF86DRI
> if (pVia->directRenderingType == DRI_1) {
> drm_via_mem_t drm;
> + int ret;
>
> drm.context = DRIGetContext(pScrn->pScreen);
> drm.size = size;
> drm.type = (domain == TTM_PL_TT ? VIA_MEM_AGP :
> VIA_MEM_VIDEO); ret = drmCommandWriteRead(pVia->drmFD, DRM_VIA_ALLOCMEM,
> &drm, sizeof(drm_via_mem_t)); - if (ret || (size !=
> drm.size)) {
> + if (!ret && (size == drm.size)) {
> + obj->offset = drm.offset;
> + obj->handle = drm.index;
> + obj->domain = domain;
> + obj->size = drm.size;
> + DEBUG(ErrorF("%lu of DRI memory allocated at %lx,
> handle %lu\n", + obj->size, obj->offset,
> obj->handle)); + break;
> + } else
> DEBUG(ErrorF("DRM memory allocation failed %d\n",
> ret)); - /* Try X Offsceen fallback before failing. */ -
> if (Success != viaOffScreenLinear(obj, pScrn, size)) { -
> ErrorF("Linear memory allocation failed\n"); -
> free(obj);
> - }
> - return NULL;
> - }
> - obj->offset = drm.offset;
> - obj->handle = drm.index;
> - obj->domain = domain;
> - obj->size = drm.size;
> - DEBUG(ErrorF("%u of DRI memory allocated at %llx, handle
> %lld\n", - obj->size, obj->offset,
> obj->handle)); - return obj;
> }
> - break;
> #endif
> case TTM_PL_SYSTEM:
> default:
More information about the Openchrome-devel
mailing list