Bladeren bron

qcacld-3.0: Mask sdio host controller interrupts in shutdown

Driver should mask the sdio host controller interrupts in ssr
shutdown callback, or routine mmc_signal_sdio_irq is called
unexpectedly and causes crash.

Change-Id: I8551a7d809bf115d2df9735c8c7a30045f717cd1
CRs-Fixed: 2076658
bings 7 jaren geleden
bovenliggende
commit
5f0ae149d9
1 gewijzigde bestanden met toevoegingen van 8 en 4 verwijderingen
  1. 8 4
      core/hdd/src/wlan_hdd_driver_ops.c

+ 8 - 4
core/hdd/src/wlan_hdd_driver_ops.c

@@ -488,6 +488,13 @@ static void wlan_hdd_shutdown(void)
 		return;
 	}
 
+	if (!hif_ctx) {
+		hdd_err("Failed to get HIF context, ignore SSR shutdown");
+		return;
+	}
+	/* mask the host controller interrupts */
+	hif_mask_interrupt_call(hif_ctx);
+
 	if (cds_is_load_or_unload_in_progress()) {
 		hdd_err("Load/unload in progress, ignore SSR shutdown");
 		return;
@@ -500,10 +507,7 @@ static void wlan_hdd_shutdown(void)
 		hdd_err("Host is not ready for SSR, attempting anyway");
 
 	if (!QDF_IS_EPPING_ENABLED(cds_get_conparam())) {
-		if (!hif_ctx)
-			hdd_err("Invalid hif ctx!");
-		else
-			hif_disable_isr(hif_ctx);
+		hif_disable_isr(hif_ctx);
 		hdd_wlan_shutdown();
 	}
 }