linux/drivers/net
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
..
appletalk net/appletalk: Fix kernel memory disclosure 2017-12-09 18:42:42 +01:00
arcnet
bonding bonding: discard lowest hash bit for 802.3ad layer3+4 2017-11-24 08:32:24 +01:00
caif
can can: peak: fix potential bug in packet fragmentation 2018-01-23 19:50:16 +01:00
cris
dsa net: dsa: bcm_sf2: Ensure we re-negotiate EEE during after link change 2016-12-10 19:07:23 +01:00
ethernet IB/mlx4: Fix incorrectly releasing steerable UD QPs when have only ETH ports 2018-02-22 15:44:58 +01:00
fddi
fjes fjes: Fix wrong netdevice feature flags 2017-12-20 10:04:55 +01:00
hamradio NET: mkiss: Fix panic 2017-06-17 06:39:35 +02:00
hippi
hyperv hv_netvsc: use skb_get_hash() instead of a homegrown implementation 2017-03-26 12:13:18 +02:00
ieee802154 fakelb: fix schedule while atomic 2017-03-15 09:57:15 +08:00
ipvlan ipvlan: fix ipv6 outbound device 2017-12-16 10:33:56 +01:00
irda irda: vlsi_ir: fix check for DMA mapping errors 2017-12-25 14:22:12 +01:00
phy net: phy: micrel: ksz9031: reconfigure autoneg after phy autoneg workaround 2018-01-02 20:33:26 +01:00
plip
ppp pppoe: take ->needed_headroom of lower device into account on xmit 2018-01-31 12:06:13 +01:00
slip
team team: fix memory leaks 2017-10-08 10:14:18 +02:00
usb net: cdc_ncm: initialize drvflags before usage 2018-02-16 20:09:36 +01:00
vmxnet3 vmxnet3: repair memory leak 2018-01-31 12:06:13 +01:00
wan farsync: fix off-by-one bug in fst_add_one 2016-04-20 15:42:03 +09:00
wimax net: wimax/i2400m: fix NULL-deref at probe 2017-12-20 10:04:54 +01:00
wireless rtlwifi: rtl8821ae: Fix connection lost problem correctly 2018-02-22 15:45:00 +01:00
xen-netback xen/netback: set default upper limit of tx/rx queues to 8 2017-11-15 17:13:09 +01:00
dummy.c
eql.c
geneve.c geneve: avoid use-after-free of skb->data 2016-12-10 19:07:24 +01:00
ifb.c
Kconfig
LICENSE.SRC
loopback.c net: introduce device min_header_len 2017-02-18 16:39:27 +01:00
macvlan.c macvlan: Only deliver one copy of the frame to the macvlan interface 2017-12-20 10:05:01 +01:00
macvtap.c tun/tap: sanitize TUNSETSNDBUF input 2017-11-18 11:11:05 +01:00
Makefile
mdio.c
mii.c
netconsole.c
nlmon.c
ntb_netdev.c
rionet.c rapidio/rionet: fix deadlock on SMP 2016-04-12 09:08:58 -07:00
sb1000.c
Space.c
sungem_phy.c
tun.c tun: allow positive return values on dev_get_valid_name() call 2017-11-18 11:11:06 +01:00
veth.c veth: don’t modify ip_summed; doing so treats packets with bad checksums as good. 2015-12-22 15:15:34 -05:00
virtio_net.c virtio_net: fix PAGE_SIZE > 64k 2017-07-05 14:37:19 +02:00
vrf.c vrf: fix bug_on triggered by rx when destroying a vrf 2017-07-21 07:44:55 +02:00
vxlan.c vxlan: do not age static remote mac entries 2017-07-05 14:37:19 +02:00
xen-netfront.c xen-netfront: remove warning when unloading module 2018-02-03 17:04:28 +01:00