tests/gem_concurrent_blit: Fix segmentation fault

Apparently the simple changes introduced in

commit 78865847f9fae7e590960f9836f2ec8b611a190e
Author:     Daniel Vetter <daniel.vetter@ffwll.ch>
AuthorDate: Mon Aug 19 07:23:49 2013 +0200
Commit:     Daniel Vetter <daniel.vetter@ffwll.ch>
CommitDate: Mon Aug 19 08:09:25 2013 +0200

    lib/drmtest: skip fixtures after an igt_skip

pushed the stack space requirement for run_modes over some magic limit
(I guess where the strack grow logic starts to fail, but I didn't
check). Fix this by moving the data into .bss.

Also add some asserts to check that fixtures aren't abused while at
it (i.e. the useful parts of my debug printf/assert craze).

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=68299
Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
This commit is contained in:
Daniel Vetter 2013-08-20 06:39:43 +02:00
parent 00282ed458
commit 912a7d8556
2 changed files with 6 additions and 2 deletions

View File

@ -654,6 +654,8 @@ static enum {
bool __igt_fixture(void) bool __igt_fixture(void)
{ {
assert(!in_fixture);
if (igt_only_list_subtests()) if (igt_only_list_subtests())
return false; return false;
@ -666,6 +668,8 @@ bool __igt_fixture(void)
void __igt_fixture_end(void) void __igt_fixture_end(void)
{ {
assert(in_fixture);
in_fixture = false; in_fixture = false;
longjmp(igt_subtest_jmpbuf, 1); longjmp(igt_subtest_jmpbuf, 1);
} }

View File

@ -333,11 +333,11 @@ run_basic_modes(struct access_mode *mode,
run_wrap_func(mode, src, dst, dummy, do_gpu_read_after_write); run_wrap_func(mode, src, dst, dummy, do_gpu_read_after_write);
} }
drm_intel_bo *src[MAX_NUM_BUFFERS], *dst[MAX_NUM_BUFFERS], *dummy = NULL;
static void static void
run_modes(struct access_mode *mode) run_modes(struct access_mode *mode)
{ {
drm_intel_bo *src[MAX_NUM_BUFFERS], *dst[MAX_NUM_BUFFERS], *dummy = NULL;
igt_fixture { igt_fixture {
bufmgr = drm_intel_bufmgr_gem_init(fd, 4096); bufmgr = drm_intel_bufmgr_gem_init(fd, 4096);
drm_intel_bufmgr_gem_enable_reuse(bufmgr); drm_intel_bufmgr_gem_enable_reuse(bufmgr);