linux_dsm_epyc7002/drivers/net/wireless
Johannes Berg bf8b286f86 iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART
A hardware/firmware error may happen at any point in time. In
particular, it might happen while mac80211 is in the middle of
a flow. We observed the following situation:
 * mac80211 is in authentication flow, in ieee80211_prep_connection()
 * iwlwifi firmware crashes, but no error can be reported at this
   precise point (mostly because the driver method is void, but even
   if it wasn't we'd just shift to a race condition)
 * mac80211 continues the flow, trying to add the AP station
 * iwlwifi has already set its internal restart flag, and so thinks
   that adding the station is part of the restart and already set up,
   so it uses the information that's supposed to already be in the
   struct

This can happen with any flow in mac80211 and with any information
we try to preserve across hardware restarts.

To fix this, only set a new HW_RESTART_REQUESTED flag and translate
that to IN_HW_RESTART once mac80211 actually starts the restart by
calling our start() method. As a consequence, any mac80211 flow in
progress at the time of the restart will properly finish (certainly
with errors), before the restart is attempted.

This fixes https://bugzilla.kernel.org/show_bug.cgi?id=195299.

Reported-by: djagoo <dev@djagoo.io>
Reported-by: Łukasz Siudut <lsiudut@gmail.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
2017-07-21 12:26:39 +03:00
..
admtek networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
ath ath9k: remove useless variable assignment in ath_mci_intr() 2017-06-28 19:56:36 +03:00
atmel networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
broadcom brcmfmac: fix regression in brcmf_sdio_txpkt_hdalign() 2017-07-21 10:40:48 +03:00
cisco Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
intel iwlwifi: mvm: defer setting IWL_MVM_STATUS_IN_HW_RESTART 2017-07-21 12:26:39 +03:00
intersil Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next 2017-07-05 12:31:59 -07:00
marvell pci-v4.13-changes 2017-07-08 15:51:57 -07:00
mediatek networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
quantenna qtnfmac: fix uninitialized return code in ret 2017-06-28 20:50:12 +03:00
ralink rt2x00: make const array glrt_table static 2017-07-13 09:23:56 -07:00
realtek Revert "rtlwifi: btcoex: rtl8723be: fix ant_sel not work" 2017-07-21 10:41:43 +03:00
rsi rsi: add in missing RSI_FSM_STATES into array fsm_state 2017-06-28 20:54:14 +03:00
st cw1200: add const to hwbus_ops structures 2017-06-28 21:17:46 +03:00
ti wl18xx: add checks on wl18xx_top_reg_write() return value 2017-06-28 21:18:40 +03:00
zydas networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
Kconfig qtnfmac: introduce new FullMAC driver for Quantenna chipsets 2017-05-24 17:04:13 +03:00
mac80211_hwsim.c networking: make skb_push & __skb_push return void pointers 2017-06-16 11:48:40 -04:00
mac80211_hwsim.h
Makefile qtnfmac: introduce new FullMAC driver for Quantenna chipsets 2017-05-24 17:04:13 +03:00
ray_cs.c
ray_cs.h
rayctl.h
rndis_wlan.c
wl3501_cs.c
wl3501.h