]> 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)
commitbef5ed2e989caada44bd1b5f55fb112e1248a108
treea6a1e9d7a062704bfbec60d1442ca788029562a0
parent5410efd37506a8aff49bf130d80cb2466b9fb0b5
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: 56bdb1db0867 ("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