From 1785f96bd7f62c3cb3b0f3f524ee7be0573ac577 Mon Sep 17 00:00:00 2001 From: Amol Lad Date: Wed, 25 Oct 2006 09:55:34 -0700 Subject: [PATCH] --- yaml --- r: 40303 b: refs/heads/master c: 85abb3f95010b277a6efbc9b8031a7854af87e10 h: refs/heads/master i: 40301: 0ff3660e87face1522d86e36bb3210dd11b013cf 40299: d450dfecf5a608c9a3a0e4737c04e5958767acf7 40295: 92cc009cef331495d1ac79ca30839ee8b94de367 40287: c317b24625e196470c43a63b8e7bf3a6b30809c3 v: v3 --- [refs] | 2 +- trunk/drivers/char/drm/drm_bufs.c | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/[refs] b/[refs] index a70bd4d8ba1c..3f104cc72b21 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 24f73c92a990ecd3d1bb846267780a264d830065 +refs/heads/master: 85abb3f95010b277a6efbc9b8031a7854af87e10 diff --git a/trunk/drivers/char/drm/drm_bufs.c b/trunk/drivers/char/drm/drm_bufs.c index 029baea33b62..6eafff13dab6 100644 --- a/trunk/drivers/char/drm/drm_bufs.c +++ b/trunk/drivers/char/drm/drm_bufs.c @@ -237,6 +237,8 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, list = drm_alloc(sizeof(*list), DRM_MEM_MAPS); if (!list) { + if (map->type == _DRM_REGISTERS) + drm_ioremapfree(map->handle, map->size, dev); drm_free(map, sizeof(*map), DRM_MEM_MAPS); return -EINVAL; } @@ -252,6 +254,8 @@ static int drm_addmap_core(drm_device_t * dev, unsigned int offset, map->offset; ret = drm_map_handle(dev, &list->hash, user_token, 0); if (ret) { + if (map->type == _DRM_REGISTERS) + drm_ioremapfree(map->handle, map->size, dev); drm_free(map, sizeof(*map), DRM_MEM_MAPS); drm_free(list, sizeof(*list), DRM_MEM_MAPS); mutex_unlock(&dev->struct_mutex);