linux/drivers/net/wireless
Larry Finger 4f62fb888d rtlwifi: rtl8821ae: Fix connection lost problem correctly
commit c713fb071e upstream.

There has been a coding error in rtl8821ae since it was first introduced,
namely that an 8-bit register was read using a 16-bit read in
_rtl8821ae_dbi_read(). This error was fixed with commit 40b368af4b
("rtlwifi: Fix alignment issues"); however, this change led to
instability in the connection. To restore stability, this change
was reverted in commit b8b8b16352 ("rtlwifi: rtl8821ae: Fix connection
lost problem").

Unfortunately, the unaligned access causes machine checks in ARM
architecture, and we were finally forced to find the actual cause of the
problem on x86 platforms. Following a suggestion from Pkshih
<pkshih@realtek.com>, it was found that increasing the ASPM L1
latency from 0 to 7 fixed the instability. This parameter was varied to
see if a smaller value would work; however, it appears that 7 is the
safest value. A new symbol is defined for this quantity, thus it can be
easily changed if necessary.

Fixes: b8b8b16352 ("rtlwifi: rtl8821ae: Fix connection lost problem")
Cc: Stable <stable@vger.kernel.org> # 4.14+
Fix-suggested-by: Pkshih <pkshih@realtek.com>
Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
Tested-by: James Cameron <quozl@laptop.org>  # x86_64 OLPC NL3
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-02-22 15:45:00 +01:00
..
ath ath9k: fix tx99 potential info leak 2017-12-20 10:05:01 +01:00
b43 driver core update for 4.4-rc1 2015-11-04 21:50:37 -08:00
b43legacy
brcm80211 brcmfmac: remove setting IBSS mode when stopping AP 2017-11-18 11:11:07 +01:00
cw1200 mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
hostap hostap: avoid uninitialized variable use in hfa384x_get_rid 2017-04-30 05:49:28 +02:00
ipw2x00 drivers/net: get rid of unnecessary initializations in .get_drvinfo() 2015-10-16 00:24:10 -07:00
iwlegacy mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
iwlwifi iwlwifi: mvm: use IWL_HCMD_NOCOPY for MCAST_FILTER_CMD 2017-10-18 09:20:41 +02:00
libertas spi: Drop owner assignment from spi_drivers 2015-10-28 10:30:17 +09:00
libertas_tf
mediatek mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
mwifiex mwifiex: correct channel stat buffer overflows 2017-09-13 14:09:45 -07:00
orinoco orinoco_usb: return error in ezusb_probe when alloc_orinocodev fails 2015-10-28 20:55:47 +02:00
p54 p54: memset(0) whole array 2017-09-02 07:06:51 +02:00
prism54
realtek rtlwifi: rtl8821ae: Fix connection lost problem correctly 2018-02-22 15:45:00 +01:00
rsi mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
rt2x00 mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
ti wl1251: add a missing spin_lock_init() 2017-09-07 08:34:09 +02:00
zd1211rw
adm8211.c
adm8211.h
airo_cs.c
airo.c airo: fix scan after SIOCSIWAP (airo_set_wap) 2015-10-28 20:54:39 +02:00
airo.h
at76c50x-usb.c
at76c50x-usb.h
atmel_cs.c
atmel_pci.c
atmel.c
atmel.h
Kconfig New driver: rtl8xxxu (mac80211) 2015-10-21 10:53:29 +03:00
mac80211_hwsim.c mac80211_hwsim: Fix memory leak in hwsim_new_radio_nl() 2017-12-16 10:33:54 +01:00
mac80211_hwsim.h
Makefile rtlwifi: rtl818x: Move drivers into new realtek directory 2015-10-14 13:33:10 +03:00
mwl8k.c mac80211: pass block ack session timeout to to driver 2017-05-20 14:27:03 +02:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c
wl3501_cs.c
wl3501.h
zd1201.c
zd1201.h