Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1581102 > unrolled thread
| Started by | maomao xu <albert008.xu@gmail.com> |
|---|---|
| First post | 2017-02-15 09:00 +0100 |
| Last post | 2017-02-18 05:10 +0100 |
| Articles | 4 — 4 participants |
Back to article view | Back to linux.kernel
[PATCH] staging: rtl8192u: Fix warnings about endianness maomao xu <albert008.xu@gmail.com> - 2017-02-15 09:00 +0100
Re: [PATCH] staging: rtl8192u: Fix warnings about endianness Arnd Bergmann <arnd@arndb.de> - 2017-02-15 09:40 +0100
Re: [PATCH] staging: rtl8192u: Fix warnings about endianness Dan Carpenter <dan.carpenter@oracle.com> - 2017-02-15 21:40 +0100
Re: [PATCH] staging: rtl8192u: Fix warnings about endianness maomao <albert008.xu@gmail.com> - 2017-02-18 05:10 +0100
| From | maomao xu <albert008.xu@gmail.com> |
|---|---|
| Date | 2017-02-15 09:00 +0100 |
| Subject | [PATCH] staging: rtl8192u: Fix warnings about endianness |
| Message-ID | <tb2Fk-5kr-1@gated-at.bofh.it> |
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
Signed-off-by: maomao xu <albert008.xu@gmail.com>
diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
index 2453413..fb171bd 100644
--- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
+++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
@@ -172,7 +172,7 @@ static inline u16 Mk16(u8 hi, u8 lo)
}
-static inline u16 Mk16_le(u16 *v)
+static inline u16 Mk16_le(__le16 *v)
{
return le16_to_cpu(*v);
}
@@ -264,15 +264,15 @@ static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK,
PPK[5] = TTAK[4] + IV16;
/* Step 2 - 96-bit bijective mixing using S-box */
- PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) &TK[0]));
- PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) &TK[2]));
- PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) &TK[4]));
- PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) &TK[6]));
- PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) &TK[8]));
- PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) &TK[10]));
-
- PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) &TK[12]));
- PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) &TK[14]));
+ PPK[0] += _S_(PPK[5] ^ Mk16_le((__le16 *) &TK[0]));
+ PPK[1] += _S_(PPK[0] ^ Mk16_le((__le16 *) &TK[2]));
+ PPK[2] += _S_(PPK[1] ^ Mk16_le((__le16 *) &TK[4]));
+ PPK[3] += _S_(PPK[2] ^ Mk16_le((__le16 *) &TK[6]));
+ PPK[4] += _S_(PPK[3] ^ Mk16_le((__le16 *) &TK[8]));
+ PPK[5] += _S_(PPK[4] ^ Mk16_le((__le16 *) &TK[10]));
+
+ PPK[0] += RotR1(PPK[5] ^ Mk16_le((__le16 *) &TK[12]));
+ PPK[1] += RotR1(PPK[0] ^ Mk16_le((__le16 *) &TK[14]));
PPK[2] += RotR1(PPK[1]);
PPK[3] += RotR1(PPK[2]);
PPK[4] += RotR1(PPK[3]);
@@ -285,7 +285,7 @@ static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK,
WEPSeed[0] = Hi8(IV16);
WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
WEPSeed[2] = Lo8(IV16);
- WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((u16 *) &TK[0])) >> 1);
+ WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((__le16 *) &TK[0])) >> 1);
#ifdef __BIG_ENDIAN
{
--
1.7.9.5
[toc] | [next] | [standalone]
| From | Arnd Bergmann <arnd@arndb.de> |
|---|---|
| Date | 2017-02-15 09:40 +0100 |
| Message-ID | <tb3i2-5YV-7@gated-at.bofh.it> |
| In reply to | #1581102 |
On Wed, Feb 15, 2017 at 8:54 AM, maomao xu <albert008.xu@gmail.com> wrote:
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
> drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c:177:16: warning: cast to restricted __le16
>
> Signed-off-by: maomao xu <albert008.xu@gmail.com>
>
> diff --git a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
> index 2453413..fb171bd 100644
> --- a/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
> +++ b/drivers/staging/rtl8192u/ieee80211/ieee80211_crypt_tkip.c
> @@ -172,7 +172,7 @@ static inline u16 Mk16(u8 hi, u8 lo)
> }
>
>
> -static inline u16 Mk16_le(u16 *v)
> +static inline u16 Mk16_le(__le16 *v)
> {
> return le16_to_cpu(*v);
> }
> @@ -264,15 +264,15 @@ static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK,
> PPK[5] = TTAK[4] + IV16;
>
> /* Step 2 - 96-bit bijective mixing using S-box */
> - PPK[0] += _S_(PPK[5] ^ Mk16_le((u16 *) &TK[0]));
> - PPK[1] += _S_(PPK[0] ^ Mk16_le((u16 *) &TK[2]));
> - PPK[2] += _S_(PPK[1] ^ Mk16_le((u16 *) &TK[4]));
> - PPK[3] += _S_(PPK[2] ^ Mk16_le((u16 *) &TK[6]));
> - PPK[4] += _S_(PPK[3] ^ Mk16_le((u16 *) &TK[8]));
> - PPK[5] += _S_(PPK[4] ^ Mk16_le((u16 *) &TK[10]));
> -
> - PPK[0] += RotR1(PPK[5] ^ Mk16_le((u16 *) &TK[12]));
> - PPK[1] += RotR1(PPK[0] ^ Mk16_le((u16 *) &TK[14]));
> + PPK[0] += _S_(PPK[5] ^ Mk16_le((__le16 *) &TK[0]));
> + PPK[1] += _S_(PPK[0] ^ Mk16_le((__le16 *) &TK[2]));
> + PPK[2] += _S_(PPK[1] ^ Mk16_le((__le16 *) &TK[4]));
> + PPK[3] += _S_(PPK[2] ^ Mk16_le((__le16 *) &TK[6]));
> + PPK[4] += _S_(PPK[3] ^ Mk16_le((__le16 *) &TK[8]));
> + PPK[5] += _S_(PPK[4] ^ Mk16_le((__le16 *) &TK[10]));
> +
> + PPK[0] += RotR1(PPK[5] ^ Mk16_le((__le16 *) &TK[12]));
> + PPK[1] += RotR1(PPK[0] ^ Mk16_le((__le16 *) &TK[14]));
> PPK[2] += RotR1(PPK[1]);
> PPK[3] += RotR1(PPK[2]);
> PPK[4] += RotR1(PPK[3]);
> @@ -285,7 +285,7 @@ static void tkip_mixing_phase2(u8 *WEPSeed, const u8 *TK, const u16 *TTAK,
> WEPSeed[0] = Hi8(IV16);
> WEPSeed[1] = (Hi8(IV16) | 0x20) & 0x7F;
> WEPSeed[2] = Lo8(IV16);
> - WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((u16 *) &TK[0])) >> 1);
> + WEPSeed[3] = Lo8((PPK[5] ^ Mk16_le((__le16 *) &TK[0])) >> 1);
>
> #ifdef __BIG_ENDIAN
> {
I see the same warning was addressed very differently in 99277c1f9962
("Staging: rtl8192e: Fix Sparse warning of cast to restricted __le16 in
rtllib_crypt_tkip.c"), which was for a close relative of that driver.
Only one of the two approaches (at most) can be correct, so we
regardless of your patch either rtl8192e or rtl8192u is broken on
big-endian machines.
I suspect rtl8192e is broken, and your patch is relatively harmless
(we could debate whether it is the cleanest approach, but it doesn't
change behavior and it avoids the warning), but maybe Peter
Waskiewicz knows something about the tkip algorithm that I don't
see.
Arnd
[toc] | [prev] | [next] | [standalone]
| From | Dan Carpenter <dan.carpenter@oracle.com> |
|---|---|
| Date | 2017-02-15 21:40 +0100 |
| Message-ID | <tbewO-4G5-5@gated-at.bofh.it> |
| In reply to | #1581121 |
On Wed, Feb 15, 2017 at 09:33:15AM +0100, Arnd Bergmann wrote:
> I see the same warning was addressed very differently in 99277c1f9962
> ("Staging: rtl8192e: Fix Sparse warning of cast to restricted __le16 in
> rtllib_crypt_tkip.c"), which was for a close relative of that driver.
>
> Only one of the two approaches (at most) can be correct, so we
> regardless of your patch either rtl8192e or rtl8192u is broken on
> big-endian machines.
99277c1f9962 ("Staging: rtl8192e: Fix Sparse warning of cast to restricted __le16 in
rtllib_crypt_tkip.c") is obviously broken. Can you send a patch to
change it back?
regards,
dan carpenter
[toc] | [prev] | [next] | [standalone]
| From | maomao <albert008.xu@gmail.com> |
|---|---|
| Date | 2017-02-18 05:10 +0100 |
| Message-ID | <tc4vn-5lj-5@gated-at.bofh.it> |
| In reply to | #1581639 |
On February 16, 2017 4:31:16 AM GMT+08:00, Dan Carpenter <dan.carpenter@oracle.com> wrote:
>On Wed, Feb 15, 2017 at 09:33:15AM +0100, Arnd Bergmann wrote:
>> I see the same warning was addressed very differently in 99277c1f9962
>> ("Staging: rtl8192e: Fix Sparse warning of cast to restricted __le16
>in
>> rtllib_crypt_tkip.c"), which was for a close relative of that
>driver.
>>
>> Only one of the two approaches (at most) can be correct, so we
>> regardless of your patch either rtl8192e or rtl8192u is broken on
>> big-endian machines.
>
>99277c1f9962 ("Staging: rtl8192e: Fix Sparse warning of cast to
>restricted __le16 in
>rtllib_crypt_tkip.c") is obviously broken. Can you send a patch to
>change it back?
>
>regards,
>dan carpenter
yes,I have done.But I have receive nothing about this patch from lkml for days
--
Sent from Kaiten Mail. Please excuse my brevity.
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web