greybus: loopback: sort list of connections for masking purposes
authorBryan O'Donoghue <bryan.odonoghue@linaro.org>
Mon, 14 Sep 2015 09:48:46 +0000 (10:48 +0100)
committerGreg Kroah-Hartman <gregkh@google.com>
Tue, 15 Sep 2015 04:38:12 +0000 (21:38 -0700)
commit5015115def3ed9907fb018180be969cf2f2f116d
tree18bcc3e80bccef20af6db4f71b860ec3d36c653a
parent4a655ad4c2b83815ccab5057e29bf0f6c981a94e
greybus: loopback: sort list of connections for masking purposes

In user-space we specify a list of connections as a bit-mask with the
assumption that a list such is indexed as indicated below.

end0:3:3:1:1 = 1
end0:3:3:2:3 = 2
end0:3:3:3:4 = 4

Current code assigns bitmask ids based on the order of discovery, however
user-space has no idea what the order of discovery is. This patch sorts the
linked list of connections associated with the loopback driver and assigns
a bit-id based on the sorted list - not the order of discovery. This
change therefore enforces the end-users idea that end0:3:3:1:1 above is
always denoted by bit 1 - even if from the AP's perspective it was the last
entry discovered.

Signed-off-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Patrick Titiano <ptitiano@baylibre.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
drivers/staging/greybus/loopback.c