don't reboot on wifi SMMU crash (#120)

This commit is contained in:
Robbe Derks
2026-05-05 12:43:05 +02:00
committed by GitHub
parent da9144d068
commit 9ddc4650a0
2 changed files with 13 additions and 2 deletions

View File

@@ -4487,7 +4487,7 @@ CONFIG_MSM_SYSMON_GLINK_COMM=y
CONFIG_MSM_PIL_SSR_GENERIC=y
CONFIG_MSM_PIL_MSS_QDSP6V5=y
CONFIG_ICNSS=y
CONFIG_ICNSS_DEBUG=y
# CONFIG_ICNSS_DEBUG is not set
CONFIG_QCOM_COMMAND_DB=y
CONFIG_MSM_PERFORMANCE=y
CONFIG_MSM_CDSP_LOADER=y

View File

@@ -1545,7 +1545,18 @@ static irqreturn_t arm_smmu_context_fault(int irq, void *dev)
}
ret = IRQ_NONE;
resume = RESUME_TERMINATE;
if (!non_fatal_fault) {
/* openpilot#35788: the WLAN host (icnss) periodically trips
* this fault during recovery from upstream blips. The original
* BUG() takes down the whole device; for WLAN we'd rather let
* firmware fail the DMA, trigger its own modem-PD SSR through
* icnss, and bring WLAN back ~7s later with the kernel intact.
* All other masters keep the original BUG(). */
if (smmu_domain->dev &&
of_device_is_compatible(smmu_domain->dev->of_node,
"qcom,icnss")) {
dev_err(smmu->dev,
"Unhandled WLAN context fault! (BUG suppressed; awaiting SSR)\n");
} else if (!non_fatal_fault) {
dev_err(smmu->dev,
"Unhandled arm-smmu context fault!\n");
BUG();