greybus: use a simple list of hd connections
First of all, there's a bug in _gb_hd_connection_insert, which
Viresh found. But pointing out that problem just called attention
to the fact that I have planning to to remove the affected block of
code.
The set of connections associated with a host device is currently
maintained in a red-black tree. The number of connections we're
likely to have is on the order of a hundred, and at least for now
isn't even going to approach that. When this code first went in,
Greg asserted that using a list is speedier than a red-black tree
for smallish numbers of elements (maybe up to a few hundred?).
So this patch just removes the host device's red-black tree of
connections, using a simple list instead.
Signed-off-by: Alex Elder <elder@linaro.org>
Signed-off-by: Greg Kroah-Hartman <greg@kroah.com>
diff --git a/drivers/staging/greybus/connection.h b/drivers/staging/greybus/connection.h
index 3aa8695..5e96967 100644
--- a/drivers/staging/greybus/connection.h
+++ b/drivers/staging/greybus/connection.h
@@ -28,7 +28,7 @@
u16 hd_cport_id;
u16 interface_cport_id;
- struct rb_node hd_node;
+ struct list_head hd_links;
struct list_head interface_links;
struct gb_protocol *protocol;