xf86Xinput: release server managed fd before removing the device from the list
So that the fd in use test in systemd_logind_release_fd works properly. Note we cannot change the test inside systemd_logind_release_fd as it must work for devices which were never added to the xf86InputDevs too. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
This commit is contained in:
parent
0e972b6037
commit
2b77b208da
|
@ -766,6 +766,11 @@ xf86DeleteInput(InputInfoPtr pInp, int flags)
|
|||
|
||||
FreeInputAttributes(pInp->attrs);
|
||||
|
||||
if (pInp->flags & XI86_SERVER_FD) {
|
||||
systemd_logind_release_fd(pInp->major, pInp->minor);
|
||||
close(pInp->fd);
|
||||
}
|
||||
|
||||
/* Remove the entry from the list. */
|
||||
if (pInp == xf86InputDevs)
|
||||
xf86InputDevs = pInp->next;
|
||||
|
@ -779,11 +784,6 @@ xf86DeleteInput(InputInfoPtr pInp, int flags)
|
|||
/* Else the entry wasn't in the xf86InputDevs list (ignore this). */
|
||||
}
|
||||
|
||||
if (pInp->flags & XI86_SERVER_FD) {
|
||||
systemd_logind_release_fd(pInp->major, pInp->minor);
|
||||
close(pInp->fd);
|
||||
}
|
||||
|
||||
free((void *) pInp->driver);
|
||||
free((void *) pInp->name);
|
||||
xf86optionListFree(pInp->options);
|
||||
|
|
Loading…
Reference in New Issue
Block a user