Commit fa8369c1 authored by Johan Hovold's avatar Johan Hovold Committed by Greg Kroah-Hartman

greybus: core: disable incoming operations pre disconnect

Disable and flush incoming operations before calling driver disconnect.

Bundle drivers are still responsible for disabling their connections
in their disconnect callback.

Note that specifically the legacy protocols must have incoming
operations disabled when their connection_exit callback is called as
that is where their state is deallocated.
Reviewed-by: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarJohan Hovold <johan@hovoldconsulting.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@google.com>
parent beb6b7fe
...@@ -159,6 +159,10 @@ static int greybus_remove(struct device *dev) ...@@ -159,6 +159,10 @@ static int greybus_remove(struct device *dev)
{ {
struct greybus_driver *driver = to_greybus_driver(dev->driver); struct greybus_driver *driver = to_greybus_driver(dev->driver);
struct gb_bundle *bundle = to_gb_bundle(dev); struct gb_bundle *bundle = to_gb_bundle(dev);
struct gb_connection *connection;
list_for_each_entry(connection, &bundle->connections, bundle_links)
gb_connection_disable_rx(connection);
driver->disconnect(bundle); driver->disconnect(bundle);
return 0; return 0;
......
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