diff --git a/drivers/staging/greybus/bundle.c b/drivers/staging/greybus/bundle.c index d7975edb3230..c2dbd24a80d5 100644 --- a/drivers/staging/greybus/bundle.c +++ b/drivers/staging/greybus/bundle.c @@ -65,6 +65,19 @@ static struct attribute *bundle_attrs[] = { ATTRIBUTE_GROUPS(bundle); +static struct gb_bundle *gb_bundle_find(struct gb_interface *intf, + u8 bundle_id) +{ + struct gb_bundle *bundle; + + list_for_each_entry(bundle, &intf->bundles, links) { + if (bundle->id == bundle_id) + return bundle; + } + + return NULL; +} + static void gb_bundle_release(struct device *dev) { struct gb_bundle *bundle = to_gb_bundle(dev); @@ -78,9 +91,6 @@ struct device_type greybus_bundle_type = { .release = gb_bundle_release, }; -/* XXX This could be per-host device or per-module */ -static DEFINE_SPINLOCK(gb_bundles_lock); - /* * Create a gb_bundle structure to represent a discovered * bundle. Returns a pointer to the new bundle or a null @@ -127,9 +137,7 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id, return NULL; } - spin_lock_irq(&gb_bundles_lock); list_add(&bundle->links, &intf->bundles); - spin_unlock_irq(&gb_bundles_lock); return bundle; } @@ -149,25 +157,10 @@ static void gb_bundle_connections_exit(struct gb_bundle *bundle) */ void gb_bundle_destroy(struct gb_bundle *bundle) { - spin_lock_irq(&gb_bundles_lock); list_del(&bundle->links); - spin_unlock_irq(&gb_bundles_lock); gb_bundle_connections_exit(bundle); device_unregister(&bundle->dev); } -struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id) -{ - struct gb_bundle *bundle; - spin_lock_irq(&gb_bundles_lock); - list_for_each_entry(bundle, &intf->bundles, links) - if (bundle->id == bundle_id) - goto found; - bundle = NULL; -found: - spin_unlock_irq(&gb_bundles_lock); - - return bundle; -} diff --git a/drivers/staging/greybus/bundle.h b/drivers/staging/greybus/bundle.h index 70d7b9d897da..eae375c12100 100644 --- a/drivers/staging/greybus/bundle.h +++ b/drivers/staging/greybus/bundle.h @@ -33,6 +33,4 @@ struct gb_bundle *gb_bundle_create(struct gb_interface *intf, u8 bundle_id, u8 class); void gb_bundle_destroy(struct gb_bundle *bundle); -struct gb_bundle *gb_bundle_find(struct gb_interface *intf, u8 bundle_id); - #endif /* __BUNDLE_H */