diff options
author | Marcel Holtmann <marcel@holtmann.org> | 2013-10-19 12:31:59 -0400 |
---|---|---|
committer | Johan Hedberg <johan.hedberg@intel.com> | 2013-10-19 13:46:12 -0400 |
commit | 58f01aa93ff590ddd6a77cde41c25b6022d93769 (patch) | |
tree | e7bb51d28951d744dc3c2c3718aed814bc69b12b /net/bluetooth/hci_core.c | |
parent | 4b4148e9acc1a51c454f133637e5dc7e298bd5bb (diff) |
Bluetooth: Fix UUID values in debugfs file
The uuid entry struct is used for the UUID byte stream. That is
actually the wrong value. The correct value is uuid->uuid.
Besides fixing this up, use the %pUb modifier to print the UUID
string. However since the UUID is stored in big endian with
reversed byte order, change the byte order before printing.
Signed-off-by: Marcel Holtmann <marcel@holtmann.org>
Signed-off-by: Johan Hedberg <johan.hedberg@intel.com>
Diffstat (limited to 'net/bluetooth/hci_core.c')
-rw-r--r-- | net/bluetooth/hci_core.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c index b5c8cb3c96d2..c5fb3a3a6a13 100644 --- a/net/bluetooth/hci_core.c +++ b/net/bluetooth/hci_core.c | |||
@@ -193,18 +193,16 @@ static int uuids_show(struct seq_file *f, void *p) | |||
193 | 193 | ||
194 | hci_dev_lock(hdev); | 194 | hci_dev_lock(hdev); |
195 | list_for_each_entry(uuid, &hdev->uuids, list) { | 195 | list_for_each_entry(uuid, &hdev->uuids, list) { |
196 | u32 data0, data5; | 196 | u8 i, val[16]; |
197 | u16 data1, data2, data3, data4; | 197 | |
198 | 198 | /* The Bluetooth UUID values are stored in big endian, | |
199 | data5 = get_unaligned_le32(uuid); | 199 | * but with reversed byte order. So convert them into |
200 | data4 = get_unaligned_le16(uuid + 4); | 200 | * the right order for the %pUb modifier. |
201 | data3 = get_unaligned_le16(uuid + 6); | 201 | */ |
202 | data2 = get_unaligned_le16(uuid + 8); | 202 | for (i = 0; i < 16; i++) |
203 | data1 = get_unaligned_le16(uuid + 10); | 203 | val[i] = uuid->uuid[15 - i]; |
204 | data0 = get_unaligned_le32(uuid + 12); | 204 | |
205 | 205 | seq_printf(f, "%pUb\n", val); | |
206 | seq_printf(f, "%.8x-%.4x-%.4x-%.4x-%.4x%.8x\n", | ||
207 | data0, data1, data2, data3, data4, data5); | ||
208 | } | 206 | } |
209 | hci_dev_unlock(hdev); | 207 | hci_dev_unlock(hdev); |
210 | 208 | ||