GEM objects belonging to user file descriptors still open on device hotunplug may exhibit still more driver issues. Add a subtest that implements this scenario. Signed-off-by: Janusz Krzysztofik <janusz.krzysztofik@xxxxxxxxxxxxxxx> --- tests/core_hotunplug.c | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/tests/core_hotunplug.c b/tests/core_hotunplug.c index 6d9f530b1..309d4efef 100644 --- a/tests/core_hotunplug.c +++ b/tests/core_hotunplug.c @@ -355,6 +355,29 @@ static void vm_hotunplug_lateclose(void) healthcheck(); } +static void gem_hotunplug_lateclose(void) +{ + struct hotunplug priv; + + prepare_for_rescan(&priv); + + igt_require_gem(priv.fd.drm); + + local_debug("creating a GEM user object"); + igt_ignore_warn(gem_create(priv.fd.drm, 4096)); + + local_debug("hot unplugging the device"); + device_unplug(priv.fd.sysfs_dev); + + local_debug("late closing the removed device instance"); + close(priv.fd.drm); + + local_debug("recovering the device"); + bus_rescan(priv.fd.sysfs_bus); + + healthcheck(); +} + /* Main */ igt_main @@ -434,4 +457,11 @@ igt_main igt_fixture igt_abort_on_f(failure, "%s\n", failure); + + igt_describe("Check if a device with a still open GEM object can be cleanly unplugged, then released and recovered"); + igt_subtest("gem-hotunplug-lateclose") + gem_hotunplug_lateclose(); + + igt_fixture + igt_abort_on_f(failure, "%s\n", failure); } -- 2.21.1 _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/intel-gfx