From f449b80bffc98b01f4460905985a97416e5da8e2 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Fri, 7 Nov 2008 18:21:43 -0300 Subject: Fix driver removal for serial port driver. Because of the last changes serial port driver would not remove all ports registered on probe just the one registered with serial port uuid if registered. --- serial/port.c | 13 +++---------- 1 file changed, 3 insertions(+), 10 deletions(-) (limited to 'serial/port.c') diff --git a/serial/port.c b/serial/port.c index 1f62b5e4..911c777e 100644 --- a/serial/port.c +++ b/serial/port.c @@ -463,23 +463,16 @@ int port_register(DBusConnection *conn, const char *path, bdaddr_t *src, return 0; } -int port_unregister(const char *path, const char *uuid) +int port_unregister(const char *path) { struct serial_device *device; - struct serial_port *port; device = find_device(devices, path); if (!device) return -ENOENT; - port = find_port(device->ports, uuid); - if (!port) - return -ENOENT; - - device->ports = g_slist_remove(device->ports, port); - serial_port_free(port); - if (device->ports) - return 0; + g_slist_foreach(device->ports, (GFunc) serial_port_free, NULL); + g_slist_free(device->ports); g_dbus_unregister_interface(device->conn, path, SERIAL_PORT_INTERFACE); -- cgit