From 71c8d893aa22238184eaae95663b42cb122b9553 Mon Sep 17 00:00:00 2001 From: Dan Carpenter Date: Wed, 29 May 2013 11:12:18 +0300 Subject: [PATCH] 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 Signed-off-by: Greg Kroah-Hartman --- drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c | 5 +++-- 1 file 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; -- 2.20.1