mirror of
https://github.com/commaai/agnos-kernel-sdm845.git
synced 2026-06-08 03:15:12 +08:00
don't reboot on wifi SMMU crash (#120)
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user