| From 9473ca6e920a3b9ca902753ce52833657f9221cc Mon Sep 17 00:00:00 2001 |
| From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> |
| Date: Tue, 8 Oct 2013 10:18:20 -0500 |
| Subject: rtlwifi: rtl8192cu: Fix error in pointer arithmetic |
| |
| From: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> |
| |
| commit 9473ca6e920a3b9ca902753ce52833657f9221cc upstream. |
| |
| An error in calculating the offset in an skb causes the driver to read |
| essential device info from the wrong locations. The main effect is that |
| automatic gain calculations are nonsense. |
| |
| Signed-off-by: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk> |
| Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net> |
| Signed-off-by: John W. Linville <linville@tuxdriver.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| drivers/net/wireless/rtlwifi/rtl8192cu/trx.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c |
| +++ b/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c |
| @@ -343,7 +343,8 @@ bool rtl92cu_rx_query_desc(struct ieee80 |
| (bool)GET_RX_DESC_PAGGR(pdesc)); |
| rx_status->mactime = GET_RX_DESC_TSFL(pdesc); |
| if (phystatus) { |
| - p_drvinfo = (struct rx_fwinfo_92c *)(pdesc + RTL_RX_DESC_SIZE); |
| + p_drvinfo = (struct rx_fwinfo_92c *)(skb->data + |
| + stats->rx_bufshift); |
| rtl92c_translate_rx_signal_stuff(hw, skb, stats, pdesc, |
| p_drvinfo); |
| } |