mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2026-04-21 06:46:46 -04:00
backend/session/dev_demi.c: compare devnode if devnum is not available
This commit is contained in:
parent
81550bc6d2
commit
fc455ffa40
1 changed files with 9 additions and 7 deletions
|
|
@ -59,16 +59,18 @@ static int handle_event(int fd, uint32_t mask, void *data) {
|
||||||
wlr_signal_emit_safe(&session->events.add_drm_card, &event);
|
wlr_signal_emit_safe(&session->events.add_drm_card, &event);
|
||||||
} else if (event_type == DEMI_CHANGE || event_type == DEMI_DETACH) {
|
} else if (event_type == DEMI_CHANGE || event_type == DEMI_DETACH) {
|
||||||
struct stat st;
|
struct stat st;
|
||||||
// FIXME stat will fail on DEMI_DETACH
|
bool has_devnum = stat(devnode, &st) == 0;
|
||||||
if (stat(devnode, &st) == -1) {
|
|
||||||
// FIXME fallback to comparing devnode
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct wlr_device *dev;
|
struct wlr_device *dev;
|
||||||
wl_list_for_each(dev, &session->devices, link) {
|
wl_list_for_each(dev, &session->devices, link) {
|
||||||
if (dev->dev != st.st_rdev) {
|
if (has_devnum) {
|
||||||
continue;
|
if (dev->dev != st.st_rdev) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (strcmp(dev->devnode, devnode) != 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (event_type == DEMI_CHANGE) {
|
if (event_type == DEMI_CHANGE) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue