diff options
author | Larry Finger <Larry.Finger@lwfinger.net> | 2013-11-10 23:11:16 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2013-11-15 14:29:33 -0500 |
commit | eafbdde9c5629bea58df07275c5917eb42afbbe7 (patch) | |
tree | 8b815ebbab53445aeda81ccf6b1c88823263f4c8 /drivers/net/wireless | |
parent | 353d2a69ea2607acd80c6bea7da2ab9bb65d2622 (diff) |
rtlwifi: rtl8192cu: Fix more pointer arithmetic errors
This driver uses a number of macros to get and set various fields in the
RX and TX descriptors. To work correctly, a u8 pointer to the descriptor
must be used; however, in some cases a descriptor structure pointer is used
instead. In addition, a duplicated statement is removed.
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Reported-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
Cc: Stable <stable@vger.kernel.org>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 6 |
2 files changed, 6 insertions, 6 deletions
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c b/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c index 393685390f3e..e26312fb4356 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/mac.c | |||
@@ -769,7 +769,7 @@ static long _rtl92c_signal_scale_mapping(struct ieee80211_hw *hw, | |||
769 | 769 | ||
770 | static void _rtl92c_query_rxphystatus(struct ieee80211_hw *hw, | 770 | static void _rtl92c_query_rxphystatus(struct ieee80211_hw *hw, |
771 | struct rtl_stats *pstats, | 771 | struct rtl_stats *pstats, |
772 | struct rx_desc_92c *pdesc, | 772 | struct rx_desc_92c *p_desc, |
773 | struct rx_fwinfo_92c *p_drvinfo, | 773 | struct rx_fwinfo_92c *p_drvinfo, |
774 | bool packet_match_bssid, | 774 | bool packet_match_bssid, |
775 | bool packet_toself, | 775 | bool packet_toself, |
@@ -784,11 +784,11 @@ static void _rtl92c_query_rxphystatus(struct ieee80211_hw *hw, | |||
784 | u32 rssi, total_rssi = 0; | 784 | u32 rssi, total_rssi = 0; |
785 | bool in_powersavemode = false; | 785 | bool in_powersavemode = false; |
786 | bool is_cck_rate; | 786 | bool is_cck_rate; |
787 | u8 *pdesc = (u8 *)p_desc; | ||
787 | 788 | ||
788 | is_cck_rate = RX_HAL_IS_CCK_RATE(pdesc); | 789 | is_cck_rate = RX_HAL_IS_CCK_RATE(p_desc); |
789 | pstats->packet_matchbssid = packet_match_bssid; | 790 | pstats->packet_matchbssid = packet_match_bssid; |
790 | pstats->packet_toself = packet_toself; | 791 | pstats->packet_toself = packet_toself; |
791 | pstats->is_cck = is_cck_rate; | ||
792 | pstats->packet_beacon = packet_beacon; | 792 | pstats->packet_beacon = packet_beacon; |
793 | pstats->is_cck = is_cck_rate; | 793 | pstats->is_cck = is_cck_rate; |
794 | pstats->RX_SIGQ[0] = -1; | 794 | pstats->RX_SIGQ[0] = -1; |
diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c index b0c346a9e4b8..1bc21ccfa71b 100644 --- a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | |||
@@ -303,10 +303,10 @@ out: | |||
303 | bool rtl92cu_rx_query_desc(struct ieee80211_hw *hw, | 303 | bool rtl92cu_rx_query_desc(struct ieee80211_hw *hw, |
304 | struct rtl_stats *stats, | 304 | struct rtl_stats *stats, |
305 | struct ieee80211_rx_status *rx_status, | 305 | struct ieee80211_rx_status *rx_status, |
306 | u8 *p_desc, struct sk_buff *skb) | 306 | u8 *pdesc, struct sk_buff *skb) |
307 | { | 307 | { |
308 | struct rx_fwinfo_92c *p_drvinfo; | 308 | struct rx_fwinfo_92c *p_drvinfo; |
309 | struct rx_desc_92c *pdesc = (struct rx_desc_92c *)p_desc; | 309 | struct rx_desc_92c *p_desc = (struct rx_desc_92c *)pdesc; |
310 | u32 phystatus = GET_RX_DESC_PHY_STATUS(pdesc); | 310 | u32 phystatus = GET_RX_DESC_PHY_STATUS(pdesc); |
311 | 311 | ||
312 | stats->length = (u16) GET_RX_DESC_PKT_LEN(pdesc); | 312 | stats->length = (u16) GET_RX_DESC_PKT_LEN(pdesc); |
@@ -345,7 +345,7 @@ bool rtl92cu_rx_query_desc(struct ieee80211_hw *hw, | |||
345 | if (phystatus) { | 345 | if (phystatus) { |
346 | p_drvinfo = (struct rx_fwinfo_92c *)(skb->data + | 346 | p_drvinfo = (struct rx_fwinfo_92c *)(skb->data + |
347 | stats->rx_bufshift); | 347 | stats->rx_bufshift); |
348 | rtl92c_translate_rx_signal_stuff(hw, skb, stats, pdesc, | 348 | rtl92c_translate_rx_signal_stuff(hw, skb, stats, p_desc, |
349 | p_drvinfo); | 349 | p_drvinfo); |
350 | } | 350 | } |
351 | /*rx_status->qual = stats->signal; */ | 351 | /*rx_status->qual = stats->signal; */ |