diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2013-05-29 11:12:18 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2013-05-30 20:46:29 +0900 |
commit | 71c8d893aa22238184eaae95663b42cb122b9553 (patch) | |
tree | 7fb9205679529d3c0a9d16339a896fac2aa31c93 | |
parent | 03e71d6b91d970900747cd64bbd9bbbe0e9489f8 (diff) | |
download | linux-71c8d893aa22238184eaae95663b42cb122b9553.tar.gz linux-71c8d893aa22238184eaae95663b42cb122b9553.tar.bz2 linux-71c8d893aa22238184eaae95663b42cb122b9553.zip |
Staging: rtl8192e: fix an endian bug
Passing the high bits of "ratr_value" to rtl8192_config_rate() only
works on little endian systems. We should be passing a u16 value.
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r-- | drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c index a9d78e9651c6..50c7bb773984 100644 --- a/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +++ b/drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c @@ -2128,10 +2128,11 @@ void rtl8192_update_ratr_table(struct net_device *dev) struct rtllib_device *ieee = priv->rtllib; u8 *pMcsRate = ieee->dot11HTOperationalRateSet; u32 ratr_value = 0; + u16 rate_config = 0; u8 rate_index = 0; - rtl8192_config_rate(dev, (u16 *)(&ratr_value)); - ratr_value |= (*(u16 *)(pMcsRate)) << 12; + rtl8192_config_rate(dev, &rate_config); + ratr_value = rate_config | *pMcsRate << 12; switch (ieee->mode) { case IEEE_A: ratr_value &= 0x00000FF0; |