From: Dan Carpenter Date: Wed, 29 May 2013 08:12:18 +0000 (+0300) Subject: Staging: rtl8192e: fix an endian bug X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=71c8d893aa22238184eaae95663b42cb122b9553;p=linux-beck.git 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 --- 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;