Commit 80d1ede8 authored by Viresh Kumar's avatar Viresh Kumar Committed by Greg Kroah-Hartman

greybus: interface: Pass interface pointer to gb_interface_remove()

The callers already have a valid interface pointer and there is no need
for gb_interface_remove() to find the interface again.
Signed-off-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Reviewed-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent 6bec5c78
...@@ -183,7 +183,7 @@ struct gb_interface *gb_interface_create(struct greybus_host_device *hd, ...@@ -183,7 +183,7 @@ struct gb_interface *gb_interface_create(struct greybus_host_device *hd,
/* /*
* Tear down a previously set up module. * Tear down a previously set up module.
*/ */
static void interface_destroy(struct gb_interface *intf) void gb_interface_remove(struct gb_interface *intf)
{ {
struct gb_module *module; struct gb_module *module;
struct gb_bundle *bundle; struct gb_bundle *bundle;
...@@ -207,6 +207,14 @@ static void interface_destroy(struct gb_interface *intf) ...@@ -207,6 +207,14 @@ static void interface_destroy(struct gb_interface *intf)
put_device(&module->dev); put_device(&module->dev);
} }
void gb_interfaces_remove(struct greybus_host_device *hd)
{
struct gb_interface *intf, *temp;
list_for_each_entry_safe(intf, temp, &hd->interfaces, links)
gb_interface_remove(intf);
}
/** /**
* gb_interface_init * gb_interface_init
* *
...@@ -273,22 +281,3 @@ int gb_interface_init(struct gb_interface *intf, u8 device_id) ...@@ -273,22 +281,3 @@ int gb_interface_init(struct gb_interface *intf, u8 device_id)
kfree(manifest); kfree(manifest);
return ret; return ret;
} }
void gb_interface_remove(struct greybus_host_device *hd, u8 interface_id)
{
struct gb_interface *intf = gb_interface_find(hd, interface_id);
if (intf)
interface_destroy(intf);
else
dev_err(hd->parent, "interface id %d not found\n",
interface_id);
}
void gb_interfaces_remove(struct greybus_host_device *hd)
{
struct gb_interface *intf, *temp;
list_for_each_entry_safe(intf, temp, &hd->interfaces, links)
interface_destroy(intf);
}
...@@ -59,7 +59,7 @@ struct gb_interface *gb_interface_create(struct greybus_host_device *hd, ...@@ -59,7 +59,7 @@ struct gb_interface *gb_interface_create(struct greybus_host_device *hd,
u8 interface_id); u8 interface_id);
void gb_interface_destroy(struct gb_interface *intf); void gb_interface_destroy(struct gb_interface *intf);
int gb_interface_init(struct gb_interface *intf, u8 device_id); int gb_interface_init(struct gb_interface *intf, u8 device_id);
void gb_interface_remove(struct greybus_host_device *hd, u8 interface_id); void gb_interface_remove(struct gb_interface *intf);
void gb_interfaces_remove(struct greybus_host_device *hd); void gb_interfaces_remove(struct greybus_host_device *hd);
int gb_create_bundle_connection(struct gb_interface *intf, u8 class); int gb_create_bundle_connection(struct gb_interface *intf, u8 class);
......
...@@ -374,7 +374,7 @@ static void svc_intf_remove(struct gb_connection *connection, ...@@ -374,7 +374,7 @@ static void svc_intf_remove(struct gb_connection *connection,
u8 device_id; u8 device_id;
device_id = intf->device_id; device_id = intf->device_id;
gb_interface_remove(hd, intf_id); gb_interface_remove(intf);
/* /*
* Destroy the two-way route between the AP and the interface. * Destroy the two-way route between the AP and the interface.
...@@ -497,7 +497,7 @@ static void svc_process_hotplug(struct work_struct *work) ...@@ -497,7 +497,7 @@ static void svc_process_hotplug(struct work_struct *work)
ida_put: ida_put:
ida_simple_remove(&svc->device_id_map, device_id); ida_simple_remove(&svc->device_id_map, device_id);
destroy_interface: destroy_interface:
gb_interface_remove(hd, intf_id); gb_interface_remove(intf);
free_svc_hotplug: free_svc_hotplug:
kfree(svc_hotplug); kfree(svc_hotplug);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment