diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2015-11-25 14:19:15 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2015-11-25 14:33:49 +0000 |
commit | e10ba6b51c028ce945605d1f720c598c93e8ad8f (patch) | |
tree | a4cd4cbcb6171c8951eceb0418b094466236bba2 /tests/drm_read.c | |
parent | 32329b2e7dd9b6b69a397da0356bd1ebc6a45901 (diff) |
igt/drm_read: Clear O_NONBLOCK between tests
Ensure that O_NONBLOCK isn't accidentally set when we want a nonblocking
file descroptor.
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Diffstat (limited to 'tests/drm_read.c')
-rw-r--r-- | tests/drm_read.c | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/tests/drm_read.c b/tests/drm_read.c index d18cb55e..faa3df86 100644 --- a/tests/drm_read.c +++ b/tests/drm_read.c @@ -80,20 +80,21 @@ static void wait_for_event(int fd) static int setup(int in, int nonblock) { int fd; + int ret = -1; alarm(0); fd = dup(in); - if (nonblock) { - int ret = -1; - if (fd != -1) - ret = fcntl(fd, F_GETFL); - if (ret != -1) { + if (fd != -1) + ret = fcntl(fd, F_GETFL); + if (ret != -1) { + if (nonblock) ret |= O_NONBLOCK; - ret = fcntl(fd, F_SETFL, ret); - } - igt_require(ret != -1); + else + ret &= ~O_NONBLOCK; + ret = fcntl(fd, F_SETFL, ret); } + igt_require(ret != -1); assert_empty(fd); return fd; |