Message ID | 1472053193355.82012@qti.qualcomm.com (mailing list archive) |
---|---|
State | Not Applicable |
Delegated to: | Kalle Valo |
Headers | show |
"Manoharan, Rajkumar" <rmanohar@qti.qualcomm.com> writes: >>> If possible, could you please try below change? >>> >>> diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c >>> index 33380fba5948..29fc9052e51a 100644 >>> --- a/drivers/net/wireless/ath/ath10k/pci.c >>> +++ b/drivers/net/wireless/ath/ath10k/pci.c >>> @@ -1759,6 +1759,7 @@ void ath10k_pci_ce_deinit(struct ath10k *ar) >>> >>> void ath10k_pci_flush(struct ath10k *ar) >>> { >>> + napi_synchronize(&ar->napi); >>> ath10k_pci_rx_retry_sync(ar); >>> ath10k_pci_buffer_cleanup(ar); >>> } >> >> Sorry, didn't help: >> > It seems napi synchronization alone is not sufficient. NAPI should be disabled. Need your help again. ;) > With below change WARNING & KASAN BUG is gone. Could you please help to verify below change? > > diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c > index 6e21fa1478ea..04ff45deb173 100644 > --- a/drivers/net/wireless/ath/ath10k/pci.c > +++ b/drivers/net/wireless/ath/ath10k/pci.c > @@ -1775,6 +1775,8 @@ static void ath10k_pci_hif_stop(struct ath10k *ar) > */ > ath10k_pci_safe_chip_reset(ar); > > + napi_synchronize(&ar->napi); > + napi_disable(&ar->napi); > ath10k_pci_irq_disable(ar); > ath10k_pci_irq_sync(ar); > ath10k_pci_flush(ar); > @@ -2531,6 +2533,7 @@ static int ath10k_pci_hif_power_up(struct ath10k *ar) > ath10k_err(ar, "could not wake up target CPU: %d\n", ret); > goto err_ce; > } > + napi_enable(&ar->napi); > > return 0; > > @@ -2878,7 +2881,6 @@ void ath10k_pci_init_napi(struct ath10k *ar) > { > netif_napi_add(&ar->napi_dev, &ar->napi, ath10k_pci_napi_poll, > ATH10K_NAPI_BUDGET); > - napi_enable(&ar->napi); > } The patch was corrupted but I did the same changes manually. And now I can't get it to crash anymore, earlier that was really easy.
diff --git a/drivers/net/wireless/ath/ath10k/pci.c b/drivers/net/wireless/ath/ath10k/pci.c index 6e21fa1478ea..04ff45deb173 100644 --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c @@ -1775,6 +1775,8 @@ static void ath10k_pci_hif_stop(struct ath10k *ar) */ ath10k_pci_safe_chip_reset(ar); + napi_synchronize(&ar->napi); + napi_disable(&ar->napi); ath10k_pci_irq_disable(ar); ath10k_pci_irq_sync(ar); ath10k_pci_flush(ar); @@ -2531,6 +2533,7 @@ static int ath10k_pci_hif_power_up(struct ath10k *ar) ath10k_err(ar, "could not wake up target CPU: %d\n", ret); goto err_ce; } + napi_enable(&ar->napi); return 0; @@ -2878,7 +2881,6 @@ void ath10k_pci_init_napi(struct ath10k *ar) { netif_napi_add(&ar->napi_dev, &ar->napi, ath10k_pci_napi_poll, ATH10K_NAPI_BUDGET); - napi_enable(&ar->napi); } -Rajkumar _______________________________________________