Commit b269825b authored by Ulrich Kunitz's avatar Ulrich Kunitz Committed by John W. Linville

[PATCH] zd1211rw: Fixed endianess issue with length info tag detection

Discovered a problem while accessing www.python.org on my PPC32.
The problem was pretty consistent for all sticks. The reason was
that while testing for the length info tag, I ignored the
endianess of the host system.

Please recognize that converting the constant to little endian, we
create faster code.
Signed-off-by: default avatarUlrich Kunitz <kune@deine-taler.de>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent b1162b63
...@@ -544,11 +544,11 @@ static void handle_rx_packet(struct zd_usb *usb, const u8 *buffer, ...@@ -544,11 +544,11 @@ static void handle_rx_packet(struct zd_usb *usb, const u8 *buffer,
* be padded. Unaligned access might also happen if the length_info * be padded. Unaligned access might also happen if the length_info
* structure is not present. * structure is not present.
*/ */
if (get_unaligned(&length_info->tag) == RX_LENGTH_INFO_TAG) { if (get_unaligned(&length_info->tag) == cpu_to_le16(RX_LENGTH_INFO_TAG))
{
unsigned int l, k, n; unsigned int l, k, n;
for (i = 0, l = 0;; i++) { for (i = 0, l = 0;; i++) {
k = le16_to_cpu(get_unaligned( k = le16_to_cpu(get_unaligned(&length_info->length[i]));
&length_info->length[i]));
n = l+k; n = l+k;
if (n > length) if (n > length)
return; return;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment