summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/staging/greybus/interface.c7
-rw-r--r--drivers/staging/greybus/interface.h1
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/staging/greybus/interface.c b/drivers/staging/greybus/interface.c
index 2553312dc332..e0c38f158435 100644
--- a/drivers/staging/greybus/interface.c
+++ b/drivers/staging/greybus/interface.c
@@ -409,6 +409,8 @@ int gb_interface_activate(struct gb_interface *intf)
if (ret)
return ret;
+ intf->active = true;
+
return 0;
}
@@ -419,7 +421,12 @@ int gb_interface_activate(struct gb_interface *intf)
*/
void gb_interface_deactivate(struct gb_interface *intf)
{
+ if (!intf->active)
+ return;
+
gb_interface_route_destroy(intf);
+
+ intf->active = false;
}
/*
diff --git a/drivers/staging/greybus/interface.h b/drivers/staging/greybus/interface.h
index 61399e7ea102..c9c1c92ece46 100644
--- a/drivers/staging/greybus/interface.h
+++ b/drivers/staging/greybus/interface.h
@@ -43,6 +43,7 @@ struct gb_interface {
bool disconnected;
bool ejected;
+ bool active;
bool enabled;
};
#define to_gb_interface(d) container_of(d, struct gb_interface, dev)