summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKristian Høgsberg <krh@bitplanet.net>2012-01-16 10:52:52 -0500
committerKristian Høgsberg <krh@bitplanet.net>2012-01-16 10:53:01 -0500
commita018fb0dbf9d6fffceb63e226939065d2e18b318 (patch)
treef0f0dc3d1019d7e2a41b85a38ec940ea799cd27c
parent5743010af02b5fa44560cff852601fe9c15fd3d7 (diff)
compositor-drm: Exit if we failed to get drm master
We can do anything without drm master. Also log an error in case we fail to drop it, which will be trouble for whoever we're switching to.
-rw-r--r--src/compositor-drm.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 8f6c8fc..c07eb2d 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -795,7 +795,10 @@ vt_func(struct weston_compositor *compositor, int event)
switch (event) {
case TTY_ENTER_VT:
compositor->focus = 1;
- drmSetMaster(ec->drm.fd);
+ if (drmSetMaster(ec->drm.fd)) {
+ fprintf(stderr, "failed to set master: %m\n");
+ wl_display_terminate(compositor->wl_display);
+ }
compositor->state = ec->prev_state;
weston_compositor_damage_all(compositor);
wl_list_for_each(input, &compositor->input_device_list, link)
@@ -811,7 +814,9 @@ vt_func(struct weston_compositor *compositor, int event)
wl_list_for_each(output, &ec->base.output_list, link)
drm_output_set_cursor(output, NULL);
- drmDropMaster(ec->drm.fd);
+ if (drmDropMaster(ec->drm.fd) < 0)
+ fprintf(stderr, "failed to drop master: %m\n");
+
break;
};
}