public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Larry Finger <Larry.Finger-tQ5ms3gMjBLk1uMJSBkQmQ@public•gmane.org>
To: David Laight <David.Laight-ZS65k/vG3HxXrIkS9f7CXA@public•gmane.org>
Cc: Joe Perches <joe-6d6DIl74uiNBDgjK7y7TUQ@public•gmane.org>,
	Andy Shevchenko
	<andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public•gmane.org>,
	Chaoming Li <chaoming_li-kXabqFNEczNtrwSWzY7KCg@public•gmane.org>,
	"David S. Miller" <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public•gmane.org>,
	linux-wireless-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
	netdev-u79uwXL29TY76Z2rM5mHXA@public•gmane.org
Subject: Re: [PATCH] rtlwifi: use %*ph[C] to dump small buffers
Date: Fri, 28 Sep 2012 11:41:19 -0500	[thread overview]
Message-ID: <5065D32F.9090107@lwfinger.net> (raw)
In-Reply-To: <AE90C24D6B3A694183C094C60CF0A2F6026B700D-CgBM+Bx2aUAnGFn1LkZF6NBPR1lH4CV8@public.gmane.org>

On 09/28/2012 04:04 AM, David Laight wrote:
>>> Index: wireless-testing-new/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
>>> ===================================================================
>>> --- wireless-testing-new.orig/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
>>> +++ wireless-testing-new/drivers/net/wireless/rtlwifi/rtl8192ce/hw.c
>>> @@ -1964,8 +1965,9 @@ static void rtl92ce_update_hal_rate_mask
>>>
>>>           RT_TRACE(rtlpriv, COMP_RATR, DBG_DMESG,
>>>                    "ratr_bitmap :%x\n", ratr_bitmap);
>>> -       *(u32 *)&rate_mask = (ratr_bitmap & 0x0fffffff) |
>>> -                                    (ratr_index << 28);
>>> +       for (i = 0; i < 3; i++)
>>> +               rate_mask[i] = ratr_bitmap & (0xff << (i * 4));
>>
>> rate_mask is u8, doesn't this needs (calc) >> (i * 8)
>>
>>> +       rate_mask[3] = (ratr_bitmap & 0x0f000000) | (ratr_index << 28);
>>
>> Perhaps you meant:
>>
>> 		((ratr_bitmap & 0x0f000000) >> 24) | (ratr_index << 4)
>
> I'd just do:
> 	rate_mask[0] = ratr_bitmap;
> 	rate_mask[1] = ratr_bitmap >>= 8;
> 	rate_mask[2] = ratr_bitmap >>= 8;
> 	rate_mask[3] = (ratr_bitmap >> 8) & 0xf | ratr_index << 4;
> which is, of course, little endian.
> Which means it is different from the original code on big-endian systems.
> So changing this here ought to require a change when the data is read.
> So this either fixes, or adds, an endianness bug.

Yes, the rate_mask array is little endian after this fragment is run, but the 
only use of the byte array is to write it to the device, and LE is what it needs 
no matter the platform. This change fixes an endianness bug.

As I tend to get confused when doing these things, I wrote a small test program 
and ran it on x86_64 and PPC-32 to confirm the result.

Thanks for teaching me about a = b >>= 8. I was not aware that C could do that.

Larry


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public•gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  parent reply	other threads:[~2012-09-28 16:41 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-26 13:57 [PATCH] rtlwifi: use %*ph[C] to dump small buffers Andy Shevchenko
     [not found] ` <1348667852-5957-1-git-send-email-andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2012-09-26 16:45   ` Joe Perches
2012-09-27 15:16     ` Larry Finger
2012-09-27 22:28     ` Larry Finger
     [not found]       ` <5064D318.6090705-tQ5ms3gMjBLk1uMJSBkQmQ@public.gmane.org>
2012-09-28  3:13         ` Joe Perches
2012-09-28  9:04           ` David Laight
     [not found]             ` <AE90C24D6B3A694183C094C60CF0A2F6026B700D-CgBM+Bx2aUAnGFn1LkZF6NBPR1lH4CV8@public.gmane.org>
2012-09-28 16:41               ` Larry Finger [this message]
2012-09-28 17:24                 ` Joe Perches
2012-09-27 15:10 ` Larry Finger

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5065D32F.9090107@lwfinger.net \
    --to=larry.finger-tq5ms3gmjblk1umjsbkqmq@public$(echo .)gmane.org \
    --cc=David.Laight-ZS65k/vG3HxXrIkS9f7CXA@public$(echo .)gmane.org \
    --cc=andriy.shevchenko-VuQAYsv1563Yd54FQh9/CA@public$(echo .)gmane.org \
    --cc=chaoming_li-kXabqFNEczNtrwSWzY7KCg@public$(echo .)gmane.org \
    --cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public$(echo .)gmane.org \
    --cc=joe-6d6DIl74uiNBDgjK7y7TUQ@public$(echo .)gmane.org \
    --cc=linux-wireless-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
    --cc=netdev-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox