[prev in list] [next in list] [prev in thread] [next in thread] 

List:       dri-patches
Subject:    drm: Branch 'master' - 8 commits
From:       evelikov () kemper ! freedesktop ! org (Emil Velikov)
Date:       2017-04-03 16:50:50
Message-ID: 20170403165050.F1802761AD () kemper ! freedesktop ! org
[Download RAW message or body]

Android.common.mk                 |    4 ++-
 Android.mk                        |    2 +
 amdgpu/amdgpu-symbol-check        |    1 
 exynos/exynos_drm.c               |    2 -
 exynos/exynos_fimg2d.c            |   14 ------------
 tests/exynos/exynos_fimg2d_test.c |   43 +++++++++++++++++++++-----------------
 tests/util/Android.mk             |    2 +
 xf86drm.c                         |   18 ++++++++++-----
 8 files changed, 45 insertions(+), 41 deletions(-)

New commits:
commit 51a514c43f607c7f3c1231d1fcac15d450f98e5c
Author: Rob Herring <robh@kernel.org>
Date:   Wed Mar 22 14:05:25 2017 -0500

    Android: disable pointer-arith and enum-conversion
    
    Disable some more warnings from clang. These don't appear to be warnings
    worth fixing.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/Android.common.mk b/Android.common.mk
index f57b8d37..35c0f02c 100644
--- a/Android.common.mk
+++ b/Android.common.mk
@@ -5,7 +5,9 @@ LOCAL_CFLAGS += \
 
 LOCAL_CFLAGS += \
 	-Wno-unused-parameter \
-	-Wno-missing-field-initializers
+	-Wno-missing-field-initializers \
+	-Wno-pointer-arith \
+	-Wno-enum-conversion
 
 # Quiet down the build system and remove any .h files from the sources
 LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
commit c4d673acdcf1add753aa53d359f29bb44bc057db
Author: Rob Herring <robh@kernel.org>
Date:   Wed Mar 22 14:05:24 2017 -0500

    Android: fix building of modetest and proptest
    
    These tests depend on tests/util/ headers, but expect the include path
    to be tests/.
    
    Signed-off-by: Rob Herring <robh@kernel.org>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/Android.mk b/Android.mk
index 5209059e..292be236 100644
--- a/Android.mk
+++ b/Android.mk
@@ -24,6 +24,8 @@
 LIBDRM_COMMON_MK := $(call my-dir)/Android.common.mk
 
 LOCAL_PATH := $(call my-dir)
+LIBDRM_TOP := $(LOCAL_PATH)
+
 include $(CLEAR_VARS)
 
 # Import variables LIBDRM_{,H_,INCLUDE_H_,INCLUDE_VMWGFX_H_}FILES
diff --git a/tests/util/Android.mk b/tests/util/Android.mk
index 7656c4c2..12eccb42 100644
--- a/tests/util/Android.mk
+++ b/tests/util/Android.mk
@@ -32,5 +32,7 @@ LOCAL_SHARED_LIBRARIES := libdrm
 
 LOCAL_SRC_FILES := $(UTIL_FILES)
 
+LOCAL_EXPORT_C_INCLUDE_DIRS := $(LIBDRM_TOP)/tests
+
 include $(LIBDRM_COMMON_MK)
 include $(BUILD_STATIC_LIBRARY)
commit 7b806e87890182ac1b6181a848e03cd5c7db97ec
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Mon Mar 27 11:09:29 2017 +0900

    xf86drm: remove memory leaks in drmGetBusid/drmGetReservedContextList
    
    In error path of drmGetBusid() and drmGetReservedContextList(),
    there are memory leaks for error path. So this removes them.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/xf86drm.c b/xf86drm.c
index 88f86ed5..685cf69d 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -994,8 +994,10 @@ char *drmGetBusid(int fd)
     if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u))
         return NULL;
     u.unique = drmMalloc(u.unique_len + 1);
-    if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u))
+    if (drmIoctl(fd, DRM_IOCTL_GET_UNIQUE, &u)) {
+        drmFree(u.unique);
         return NULL;
+    }
     u.unique[u.unique_len] = '\0';
 
     return u.unique;
@@ -1523,14 +1525,12 @@ drm_context_t *drmGetReservedContextList(int fd, int *count)
 
     if (!(list   = drmMalloc(res.count * sizeof(*list))))
         return NULL;
-    if (!(retval = drmMalloc(res.count * sizeof(*retval)))) {
-        drmFree(list);
-        return NULL;
-    }
+    if (!(retval = drmMalloc(res.count * sizeof(*retval))))
+        goto err_free_list;
 
     res.contexts = list;
     if (drmIoctl(fd, DRM_IOCTL_RES_CTX, &res))
-        return NULL;
+        goto err_free_context;
 
     for (i = 0; i < res.count; i++)
         retval[i] = list[i].handle;
@@ -1538,6 +1538,12 @@ drm_context_t *drmGetReservedContextList(int fd, int *count)
 
     *count = res.count;
     return retval;
+
+err_free_list:
+    drmFree(list);
+err_free_context:
+    drmFree(retval);
+    return NULL;
 }
 
 void drmFreeReservedContextList(drm_context_t *pt)
commit 2dc30dd5279fea1838f181724fb699a3689f582b
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Mon Mar 20 09:52:49 2017 +0900

    tests/exynos: fix invalid code of error path in g2d test
    
    This patch fixes invalid code of error path including NULL
    deference and leak in g2d test.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 3495c626..ab1028e8 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -59,7 +59,6 @@ static void connector_find_mode(int fd, struct connector *c,
 		if (!connector) {
 			fprintf(stderr, "could not get connector %i: %s\n",
 				resources->connectors[i], strerror(errno));
-			drmModeFreeConnector(connector);
 			continue;
 		}
 
@@ -98,7 +97,6 @@ static void connector_find_mode(int fd, struct connector *c,
 		if (!c->encoder) {
 			fprintf(stderr, "could not get encoder %i: %s\n",
 				resources->encoders[i], strerror(errno));
-			drmModeFreeEncoder(c->encoder);
 			continue;
 		}
 
@@ -264,7 +262,8 @@ static int g2d_copy_test(struct exynos_device *dev, struct \
exynos_bo *src,  userptr = (unsigned long)malloc(size);
 		if (!userptr) {
 			fprintf(stderr, "failed to allocate userptr.\n");
-			return -EFAULT;
+			ret = -EFAULT;
+			goto fail;
 		}
 
 		src_img.user_ptr[0].userptr = userptr;
@@ -469,7 +468,8 @@ static int g2d_copy_with_scale_test(struct exynos_device *dev,
 		userptr = (unsigned long)malloc(size);
 		if (!userptr) {
 			fprintf(stderr, "failed to allocate userptr.\n");
-			return -EFAULT;
+			ret = -EFAULT;
+			goto fail;
 		}
 
 		src_img.user_ptr[0].userptr = userptr;
@@ -520,7 +520,7 @@ err_free_userptr:
 fail:
 	g2d_fini(ctx);
 
-	return 0;
+	return ret;;
 }
 
 #if EXYNOS_G2D_USERPTR_TEST
@@ -558,7 +558,8 @@ static int g2d_blend_test(struct exynos_device *dev,
 		userptr = (unsigned long)malloc(size);
 		if (!userptr) {
 			fprintf(stderr, "failed to allocate userptr.\n");
-			return -EFAULT;
+			ret = -EFAULT;
+			goto fail;
 		}
 
 		src_img.user_ptr[0].userptr = userptr;
@@ -620,7 +621,7 @@ err_free_userptr:
 fail:
 	g2d_fini(ctx);
 
-	return 0;
+	return ret;
 }
 #endif
 
@@ -647,8 +648,8 @@ static int g2d_checkerboard_test(struct exynos_device *dev,
 	dst_y = 0;
 
 	checkerboard = create_checkerboard_pattern(screen_width / 32, screen_height / 32, \
                32);
-	if (checkerboard == NULL) {
-		ret = -1;
+	if (!checkerboard) {
+		ret = -EFAULT;
 		goto fail;
 	}
 
@@ -757,8 +758,8 @@ int main(int argc, char **argv)
 
 	dev = exynos_device_create(fd);
 	if (!dev) {
-		drmClose(dev->fd);
-		return -EFAULT;
+		ret = -EFAULT;
+		goto err_drm_close;
 	}
 
 	resources = drmModeGetResources(dev->fd);
@@ -766,7 +767,7 @@ int main(int argc, char **argv)
 		fprintf(stderr, "drmModeGetResources failed: %s\n",
 				strerror(errno));
 		ret = -EFAULT;
-		goto err_drm_close;
+		goto err_dev_destory;
 	}
 
 	connector_find_mode(dev->fd, &con, resources);
@@ -775,7 +776,7 @@ int main(int argc, char **argv)
 	if (!con.mode) {
 		fprintf(stderr, "failed to find usable connector\n");
 		ret = -EFAULT;
-		goto err_drm_close;
+		goto err_dev_destory;
 	}
 
 	screen_width = con.mode->hdisplay;
@@ -784,7 +785,7 @@ int main(int argc, char **argv)
 	if (screen_width == 0 || screen_height == 0) {
 		fprintf(stderr, "failed to find sane resolution on connector\n");
 		ret = -EFAULT;
-		goto err_drm_close;
+		goto err_dev_destory;
 	}
 
 	printf("screen width = %d, screen height = %d\n", screen_width,
@@ -793,7 +794,7 @@ int main(int argc, char **argv)
 	bo = exynos_create_buffer(dev, screen_width * screen_height * 4, 0);
 	if (!bo) {
 		ret = -EFAULT;
-		goto err_drm_close;
+		goto err_dev_destory;
 	}
 
 	handles[0] = bo->handle;
@@ -884,9 +885,11 @@ err_rm_fb:
 err_destroy_buffer:
 	exynos_destroy_buffer(bo);
 
-err_drm_close:
-	drmClose(dev->fd);
+err_dev_destory:
 	exynos_device_destroy(dev);
 
-	return 0;
+err_drm_close:
+	drmClose(fd);
+
+	return ret;
 }
commit a398adba7c845fe248ab1e5c338789ca2882644b
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Fri Mar 31 12:30:57 2017 +0900

    tests/exynos: remove unused-function build warning
    
    The function g2d_blend_test() is blocked to call because of
    feature unsafety. This patch blocks with proper feature name
    and also blocks the function itself to remove build warning.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/tests/exynos/exynos_fimg2d_test.c b/tests/exynos/exynos_fimg2d_test.c
index 797fb6eb..3495c626 100644
--- a/tests/exynos/exynos_fimg2d_test.c
+++ b/tests/exynos/exynos_fimg2d_test.c
@@ -523,6 +523,7 @@ fail:
 	return 0;
 }
 
+#if EXYNOS_G2D_USERPTR_TEST
 static int g2d_blend_test(struct exynos_device *dev,
 					struct exynos_bo *src,
 					struct exynos_bo *dst,
@@ -621,6 +622,7 @@ fail:
 
 	return 0;
 }
+#endif
 
 static int g2d_checkerboard_test(struct exynos_device *dev,
 					struct exynos_bo *src,
@@ -864,7 +866,7 @@ int main(int argc, char **argv)
 	 *
 	 * Disable the test for now, until the kernel code has been sanitized.
 	 */
-#if 0
+#if EXYNOS_G2D_USERPTR_TEST
 	ret  = g2d_blend_test(dev, src, bo, G2D_IMGBUF_USERPTR);
 	if (ret < 0)
 		fprintf(stderr, "failed to test blend operation.\n");
commit 762be6c2102de0ec99659838a1423c4a131432ff
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Fri Mar 31 12:30:56 2017 +0900

    exynos/fimg2d: remove unused-function build warning
    
    The function g2d_reset() is not anymore used after the commit
    e3c97d1a2473 ("exynos/fimg2d: add g2d_validate_xyz() functions"),
    so it should be removed.
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/exynos/exynos_fimg2d.c b/exynos/exynos_fimg2d.c
index 7f1d105a..61340c36 100644
--- a/exynos/exynos_fimg2d.c
+++ b/exynos/exynos_fimg2d.c
@@ -293,20 +293,6 @@ static void g2d_set_direction(struct g2d_context *ctx,
 }
 
 /*
- * g2d_reset - reset fimg2d hardware.
- *
- * @ctx: a pointer to g2d_context structure.
- *
- */
-static void g2d_reset(struct g2d_context *ctx)
-{
-	ctx->cmd_nr = 0;
-	ctx->cmd_buf_nr = 0;
-
-	g2d_add_cmd(ctx, SOFT_RESET_REG, 0x01);
-}
-
-/*
  * g2d_flush - submit all commands and values in user side command buffer
  *		to command queue aware of fimg2d dma.
  *
commit c9ef5c4a1c691ebcdfa4261b406b8b81f7b5a18f
Author: Seung-Woo Kim <sw0312.kim@samsung.com>
Date:   Fri Mar 31 12:30:55 2017 +0900

    exynos: fix type-punned pointer build warning
    
    As like the commit ecc2a097294d ("xf86drm: Fix type-punned pointer
    build warning"), this fixes following build warning.
    
       exynos_drm.c: In function 'exynos_handle_event':
       exynos_drm.c:420:15: warning: dereferencing type-punned pointer will break \
strict-aliasing rules [-Wstrict-aliasing]  e = (struct drm_event *) &buffer[i];
                      ^
    
    Signed-off-by: Seung-Woo Kim <sw0312.kim@samsung.com>
    Reviewed-by: Tobias Jakobi <tjakobi@math.uni-bielefeld.de>
    Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/exynos/exynos_drm.c b/exynos/exynos_drm.c
index b961e520..f6204f1c 100644
--- a/exynos/exynos_drm.c
+++ b/exynos/exynos_drm.c
@@ -417,7 +417,7 @@ exynos_handle_event(struct exynos_device *dev, struct \
exynos_event_context *ctx)  
 	i = 0;
 	while (i < len) {
-		e = (struct drm_event *) &buffer[i];
+		e = (struct drm_event *)(buffer + i);
 		switch (e->type) {
 		case DRM_EVENT_VBLANK:
 			if (evctx->version < 1 ||
commit f5995751b0722bdd3789b1afb48b86d8f075b1e7
Author: Emil Velikov <emil.velikov@collabora.com>
Date:   Mon Apr 3 17:40:59 2017 +0100

    amdgpu: add amdgpu_bo_va_op_raw to the symbol check
    
    Otherwise the make check will rightfully fail.
    
    Fixes: 4e369f25a94 ("amdgpu: add amdgpu_bo_va_op_raw")
    Signed-off-by: Emil Velikov <emil.velikov@collabora.com>

diff --git a/amdgpu/amdgpu-symbol-check b/amdgpu/amdgpu-symbol-check
index 87f4fd2c..8e06474d 100755
--- a/amdgpu/amdgpu-symbol-check
+++ b/amdgpu/amdgpu-symbol-check
@@ -22,6 +22,7 @@ amdgpu_bo_list_update
 amdgpu_bo_query_info
 amdgpu_bo_set_metadata
 amdgpu_bo_va_op
+amdgpu_bo_va_op_raw
 amdgpu_bo_wait_for_idle
 amdgpu_create_bo_from_user_mem
 amdgpu_cs_create_semaphore



------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot

--
_______________________________________________
Dri-patches mailing list
Dri-patches@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/dri-patches


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic