]> git.baikalelectronics.ru Git - kernel.git/commit
rtw88: refine napi deinit flow
authorPo-Hao Huang <phhuang@realtek.com>
Thu, 15 Apr 2021 08:47:03 +0000 (16:47 +0800)
committerKalle Valo <kvalo@codeaurora.org>
Wed, 21 Apr 2021 09:37:50 +0000 (12:37 +0300)
commit558dff5047d03be14e9c1356730b091b9a9f226c
treea6a1e9d7a062704bfbec60d1442ca788029562a0
parentd1139e4348bc2ae825a7b5e2aa2eee3560100250
rtw88: refine napi deinit flow

We used to stop napi before disabling irqs. And it turns out
to cause some problem when we try to stop device while interrupt arrives.

To safely stop pci, we do three steps:
1. disable interrupt
2. synchronize_irq
3. stop_napi
Since step 2 and 3 may not finish as expected when interrupt is enabled,
use rtwpci->running to decide whether interrupt should be re-enabled at
the time.

Fixes: 9f989e37c55f ("rtw88: add napi support")
Signed-off-by: Po-Hao Huang <phhuang@realtek.com>
Signed-off-by: Ping-Ke Shih <pkshih@realtek.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
Link: https://lore.kernel.org/r/20210415084703.27255-4-pkshih@realtek.com
drivers/net/wireless/realtek/rtw88/pci.c
drivers/net/wireless/realtek/rtw88/pci.h