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:
@@ -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;
|
||||
|
Odkázat v novém úkolu
Zablokovat Uživatele