sysfs doesn't give the driver an open() callback, so we can only report the unavailability of HW on the first read; so check read() after checking open(). Fixes: 93f0ad4b835e ("i915/hangman: Skip if disabled by the kernel") Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> --- tests/i915/hangman.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/i915/hangman.c b/tests/i915/hangman.c index ffbd0b057..5f63bfc4b 100644 --- a/tests/i915/hangman.c +++ b/tests/i915/hangman.c @@ -45,14 +45,20 @@ static int sysfs = -1; static bool has_error_state(int dir) { + bool result; int fd; fd = openat(dir, "error", O_RDONLY); if (fd < 0) return false; + if (read(fd, &result, sizeof(result)) < 0) + result = false; + else + result = true; + close(fd); - return true; + return result; } static void assert_entry(const char *s, bool expect) -- 2.20.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx