[Intel-gfx] [PATCH] testdisplay: Fix segfault after first modeset fails

Ander Conselvan de Oliveira ander.conselvan.de.oliveira at intel.com
Wed May 27 00:33:41 PDT 2015


When testing all modes on a connector with a single mode, if the modeset
fails, the code attempts to remove fb_info[-1], because old_fb still has
the inital value of -1.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=90625
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira at intel.com>
---
 tests/testdisplay.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/tests/testdisplay.c b/tests/testdisplay.c
index 9068a95..3dbb638 100644
--- a/tests/testdisplay.c
+++ b/tests/testdisplay.c
@@ -367,6 +367,7 @@ set_mode(struct connector *c)
 		if (drmModeSetCrtc(drm_fd, c->crtc, fb_id, 0, 0,
 				   &c->id, 1, &c->mode)) {
 			igt_warn("failed to set mode (%dx%d@%dHz): %s\n", width, height, c->mode.vrefresh, strerror(errno));
+			igt_remove_fb(drm_fd, &fb_info[current_fb]);
 			continue;
 		}
 
@@ -390,7 +391,7 @@ set_mode(struct connector *c)
 		}
 	}
 
-	if (test_all_modes)
+	if (test_all_modes && old_fb != -1)
 		igt_remove_fb(drm_fd, &fb_info[old_fb]);
 
 	drmModeFreeEncoder(c->encoder);
-- 
2.1.0



More information about the Intel-gfx mailing list