From 223a61e12e119d96484ed05c563d1781fd613a4e Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Thu, 31 Oct 2013 17:16:33 +0100 Subject: lib: make igt_install_exit_handler never fail Most callers didn't bother checking, so just move the asserts into the function itself. Signed-off-by: Daniel Vetter --- lib/drmtest.c | 15 +++++++-------- lib/drmtest.h | 2 +- lib/igt_debugfs.c | 2 +- tests/kms_flip.c | 2 +- 4 files changed, 10 insertions(+), 11 deletions(-) diff --git a/lib/drmtest.c b/lib/drmtest.c index 50b5aac0b..e3fc166eb 100644 --- a/lib/drmtest.c +++ b/lib/drmtest.c @@ -2007,22 +2007,21 @@ static void fatal_sig_handler(int sig) * The handler will be passed the signal number if called due to a signal, or * 0 otherwise. */ -int igt_install_exit_handler(igt_exit_handler_t fn) +void igt_install_exit_handler(igt_exit_handler_t fn) { int i; for (i = 0; i < exit_handler_count; i++) if (exit_handler_fn[i] == fn) - return 0; + return; - if (exit_handler_count == MAX_EXIT_HANDLERS) - return -1; + igt_assert(exit_handler_count < MAX_EXIT_HANDLERS); exit_handler_fn[exit_handler_count] = fn; exit_handler_count++; if (exit_handler_count > 1) - return 0; + return; for (i = 0; i < ARRAY_SIZE(handled_signals); i++) { if (install_sig_handler(handled_signals[i], @@ -2033,12 +2032,12 @@ int igt_install_exit_handler(igt_exit_handler_t fn) if (atexit(igt_atexit_handler)) goto err; - return 0; + return; err: restore_all_sig_handler(); exit_handler_count--; - return -1; + igt_assert_f(0, "failed to install the signal handler\n"); } void igt_disable_exit_handler(void) @@ -2113,7 +2112,7 @@ static void restore_vt_mode_at_exit(int sig) void igt_set_vt_graphics_mode(void) { - do_or_die(igt_install_exit_handler(restore_vt_mode_at_exit)); + igt_install_exit_handler(restore_vt_mode_at_exit); igt_disable_exit_handler(); orig_vt_mode = set_vt_mode(KD_GRAPHICS); diff --git a/lib/drmtest.h b/lib/drmtest.h index 6e8b16b56..be0632f4f 100644 --- a/lib/drmtest.h +++ b/lib/drmtest.h @@ -389,7 +389,7 @@ uint32_t drm_format_to_bpp(uint32_t drm_format); typedef void (*igt_exit_handler_t)(int sig); /* reliable atexit helpers, also work when killed by a signal (if possible) */ -int igt_install_exit_handler(igt_exit_handler_t fn); +void igt_install_exit_handler(igt_exit_handler_t fn); void igt_enable_exit_handler(void); void igt_disable_exit_handler(void); diff --git a/lib/igt_debugfs.c b/lib/igt_debugfs.c index 7d710e245..0319effce 100644 --- a/lib/igt_debugfs.c +++ b/lib/igt_debugfs.c @@ -212,7 +212,7 @@ igt_pipe_crc_new(igt_debugfs_t *debugfs, int drm_fd, enum pipe pipe, igt_pipe_crc_t *pipe_crc; char buf[128]; - do_or_die(igt_install_exit_handler(pipe_crc_exit_handler)); + igt_install_exit_handler(pipe_crc_exit_handler); pipe_crc = calloc(1, sizeof(struct _igt_pipe_crc)); diff --git a/tests/kms_flip.c b/tests/kms_flip.c index e8d3e22c6..3583bb958 100644 --- a/tests/kms_flip.c +++ b/tests/kms_flip.c @@ -1494,7 +1494,7 @@ int main(int argc, char **argv) drm_fd = drm_open_any(); igt_set_vt_graphics_mode(); - do_or_die(igt_install_exit_handler(kms_flip_exit_handler)); + igt_install_exit_handler(kms_flip_exit_handler); get_timestamp_format(); bufmgr = drm_intel_bufmgr_gem_init(drm_fd, 4096); -- cgit v1.2.3