qcacld-3.0: Donot do SSR if driver is unloading

Issue is triggered as driver/psoc trans both null
in hdd_soc_recovery_reinit. it happens in below
scenario.
1 driver begin unloading
2 fw assert and ssr begin
3 hdd_soc_recovery_shutdown return directly as driver
  trans.
4 checking driver/psoc trans in hdd_soc_recovery_reinit->
  osif_psoc_sync_trans_resume will expose issue.

Fix is to avoid SSR when unloading driver.

Change-Id: Ide520bc8adb4a0fc2bcfaf187905fdd3975cb314
CRs-Fixed: 2782035
Tento commit je obsažen v:
Jingxiang Ge
2020-09-22 14:21:18 +08:00
odevzdal snandini
rodič 10cb19154c
revize 763d089577

Zobrazit soubor

@@ -666,6 +666,12 @@ static int hdd_soc_recovery_reinit(struct device *dev,
struct osif_psoc_sync *psoc_sync;
int errno;
/* if driver is unloading, there is no need to do SSR */
if (qdf_is_driver_unloading()) {
hdd_info("driver is unloading, avoid SSR");
return 0;
}
/* SSR transition is initiated at the beginning of soc shutdown */
errno = osif_psoc_sync_trans_resume(dev, &psoc_sync);
QDF_BUG(!errno);
@@ -902,6 +908,12 @@ static void hdd_soc_recovery_shutdown(struct device *dev)
struct osif_psoc_sync *psoc_sync;
int errno;
/* if driver is unloading, there is no need to do SSR */
if (qdf_is_driver_unloading()) {
hdd_info("driver is unloading, avoid SSR");
return;
}
errno = osif_psoc_sync_trans_start_wait(dev, &psoc_sync);
if (errno)
return;