Skip to content

Commit

Permalink
uwb: order IEs by element ID
Browse files Browse the repository at this point in the history
ECMA-368 requires that IEs in a beacon must be sorted by element ID.  Most
hardware uses the ordering in the Set IE URC command so get the ordering
right on the host.

Also refactor the IE management code:
  - use uwb_ie_next() instead of uwb_ie_for_each().
  - remove unnecessary functions.
  - API is now only uwb_rc_ie_add() and uwb_rc_ie_rm().

Signed-off-by: David Vrabel <david.vrabel@csr.com>
  • Loading branch information
David Vrabel committed Oct 28, 2008
1 parent 4d2bea4 commit 1cde7f6
Show file tree
Hide file tree
Showing 6 changed files with 172 additions and 378 deletions.
24 changes: 12 additions & 12 deletions drivers/uwb/beacon.c
Original file line number Diff line number Diff line change
Expand Up @@ -349,22 +349,22 @@ ssize_t uwb_bce_print_IEs(struct uwb_dev *uwb_dev, struct uwb_beca_e *bce,
ssize_t result = 0;
struct uwb_rc_evt_beacon *be;
struct uwb_beacon_frame *bf;
struct uwb_buf_ctx ctx = {
.buf = buf,
.bytes = 0,
.size = size
};
int ies_len;
struct uwb_ie_hdr *ies;

mutex_lock(&bce->mutex);

be = bce->be;
if (be == NULL)
goto out;
bf = (void *) be->BeaconInfo;
uwb_ie_for_each(uwb_dev, uwb_ie_dump_hex, &ctx,
bf->IEData, be->wBeaconInfoLength - sizeof(*bf));
result = ctx.bytes;
out:
if (be) {
bf = (struct uwb_beacon_frame *)bce->be->BeaconInfo;
ies_len = be->wBeaconInfoLength - sizeof(struct uwb_beacon_frame);
ies = (struct uwb_ie_hdr *)bf->IEData;

result = uwb_ie_dump_hex(ies, ies_len, buf, size);
}

mutex_unlock(&bce->mutex);

return result;
}

Expand Down
Loading

0 comments on commit 1cde7f6

Please sign in to comment.