Staging: rtl8192e: fix an endian bug
Subsystems (2)
PATCH 1/1 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 <[email protected]>
drivers/staging/rtl8192e/rtl8192e/r8192E_dev.c +3 -2
@@ -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 ;