aboutsummaryrefslogtreecommitdiff
path: root/sys/dev/evdev/evdev.c
diff options
context:
space:
mode:
authorXin LI <delphij@FreeBSD.org>2020-04-19 17:28:42 +0000
committerXin LI <delphij@FreeBSD.org>2020-04-19 17:28:42 +0000
commit5396856ee0e158a1505dce733aad4f9b42afafbb (patch)
tree31fa9f13ad93c5df59a7336193685d5947990551 /sys/dev/evdev/evdev.c
parent4574585e8ff4d500b3e0e5cc55eb07e087a59811 (diff)
Notes
Diffstat (limited to 'sys/dev/evdev/evdev.c')
-rw-r--r--sys/dev/evdev/evdev.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/dev/evdev/evdev.c b/sys/dev/evdev/evdev.c
index 6c087c32a00d..33e56e9f2c0a 100644
--- a/sys/dev/evdev/evdev.c
+++ b/sys/dev/evdev/evdev.c
@@ -358,7 +358,7 @@ evdev_register_mtx(struct evdev_dev *evdev, struct mtx *mtx)
int
evdev_unregister(struct evdev_dev *evdev)
{
- struct evdev_client *client;
+ struct evdev_client *client, *tmp;
int ret;
debugf(evdev, "%s: unregistered evdev provider: %s\n",
evdev->ev_shortname, evdev->ev_name);
@@ -368,7 +368,7 @@ evdev_unregister(struct evdev_dev *evdev)
EVDEV_LOCK(evdev);
evdev->ev_cdev->si_drv1 = NULL;
/* Wake up sleepers */
- LIST_FOREACH(client, &evdev->ev_clients, ec_link) {
+ LIST_FOREACH_SAFE(client, &evdev->ev_clients, ec_link, tmp) {
evdev_revoke_client(client);
evdev_dispose_client(evdev, client);
EVDEV_CLIENT_LOCKQ(client);