summaryrefslogtreecommitdiff
path: root/profiles/input/hog_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'profiles/input/hog_device.c')
-rw-r--r--profiles/input/hog_device.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/profiles/input/hog_device.c b/profiles/input/hog_device.c
index 4f5e99b54..e2a348831 100644
--- a/profiles/input/hog_device.c
+++ b/profiles/input/hog_device.c
@@ -852,8 +852,14 @@ static int hog_device_probe(struct btd_profile *p, struct btd_device *device,
return 0;
}
-static void remove_device(gpointer hogdev, gpointer b)
+static void remove_device(gpointer a, gpointer b)
{
+ struct hog_device *hogdev = a;
+ struct btd_device *device = b;
+
+ if (hogdev->device != device)
+ return;
+
devices = g_slist_remove(devices, hogdev);
hog_device_unregister(hogdev);
}
@@ -864,7 +870,7 @@ static void hog_device_remove(struct btd_profile *p, struct btd_device *device)
DBG("path %s", path);
- g_slist_foreach(devices, remove_device, NULL);
+ g_slist_foreach(devices, remove_device, device);
}
static struct btd_profile hog_profile = {