mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-15 16:24:13 +08:00
iommu/mediatek: Fix crash on isr after kexec()
If the system is rebooted via isr(), the IRQ handler might be triggered before the domain is initialized. Resulting on an invalid memory access error. Fix: [ 0.500930] Unable to handle kernel read from unreadable memory at virtual address 0000000000000070 [ 0.501166] Call trace: [ 0.501174] report_iommu_fault+0x28/0xfc [ 0.501180] mtk_iommu_isr+0x10c/0x1c0 Signed-off-by: Ricardo Ribalda <ribalda@chromium.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Robin Murphy <robin.murphy@arm.com> Link: https://lore.kernel.org/r/20221125-mtk-iommu-v2-0-e168dff7d43e@chromium.org [ joro: Fixed spelling in commit message ] Signed-off-by: Joerg Roedel <jroedel@suse.de>
This commit is contained in:
parent
9ff894edd5
commit
00ef8885a9
@ -462,7 +462,7 @@ static irqreturn_t mtk_iommu_isr(int irq, void *dev_id)
|
||||
fault_larb = data->plat_data->larbid_remap[fault_larb][sub_comm];
|
||||
}
|
||||
|
||||
if (report_iommu_fault(&dom->domain, bank->parent_dev, fault_iova,
|
||||
if (!dom || report_iommu_fault(&dom->domain, bank->parent_dev, fault_iova,
|
||||
write ? IOMMU_FAULT_WRITE : IOMMU_FAULT_READ)) {
|
||||
dev_err_ratelimited(
|
||||
bank->parent_dev,
|
||||
|
Loading…
Reference in New Issue
Block a user