From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ricardo Ribalda <ribalda@chromium.org>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Robin Murphy <robin.murphy@arm.com>, Joerg Roedel <jroedel@suse.de>, Sasha Levin <sashal@kernel.org>, yong.wu@mediatek.com, joro@8bytes.org, will@kernel.org, matthias.bgg@gmail.com, iommu@lists.linux.dev, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 6.1 20/28] iommu/mediatek: Fix crash on isr after kexec() Date: Tue, 27 Dec 2022 15:32:41 -0500 [thread overview] Message-ID: <20221227203249.1213526-20-sashal@kernel.org> (raw) In-Reply-To: <20221227203249.1213526-1-sashal@kernel.org> From: Ricardo Ribalda <ribalda@chromium.org> [ Upstream commit 00ef8885a945c37551547d8ac8361cacd20c4e42 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org> --- drivers/iommu/mtk_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 2ab2ecfe01f8..3d913ab5029c 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -454,7 +454,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, -- 2.35.1
WARNING: multiple messages have this Message-ID (diff)
From: Sasha Levin <sashal@kernel.org> To: linux-kernel@vger.kernel.org, stable@vger.kernel.org Cc: Ricardo Ribalda <ribalda@chromium.org>, AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>, Robin Murphy <robin.murphy@arm.com>, Joerg Roedel <jroedel@suse.de>, Sasha Levin <sashal@kernel.org>, yong.wu@mediatek.com, joro@8bytes.org, will@kernel.org, matthias.bgg@gmail.com, iommu@lists.linux.dev, linux-mediatek@lists.infradead.org, linux-arm-kernel@lists.infradead.org Subject: [PATCH AUTOSEL 6.1 20/28] iommu/mediatek: Fix crash on isr after kexec() Date: Tue, 27 Dec 2022 15:32:41 -0500 [thread overview] Message-ID: <20221227203249.1213526-20-sashal@kernel.org> (raw) In-Reply-To: <20221227203249.1213526-1-sashal@kernel.org> From: Ricardo Ribalda <ribalda@chromium.org> [ Upstream commit 00ef8885a945c37551547d8ac8361cacd20c4e42 ] 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> Signed-off-by: Sasha Levin <sashal@kernel.org> --- drivers/iommu/mtk_iommu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/iommu/mtk_iommu.c b/drivers/iommu/mtk_iommu.c index 2ab2ecfe01f8..3d913ab5029c 100644 --- a/drivers/iommu/mtk_iommu.c +++ b/drivers/iommu/mtk_iommu.c @@ -454,7 +454,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, -- 2.35.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2022-12-27 20:35 UTC|newest] Thread overview: 39+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-12-27 20:32 [PATCH AUTOSEL 6.1 01/28] fs/ntfs3: Validate BOOT record_size Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 02/28] fs/ntfs3: Add overflow check for attribute size Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 03/28] fs/ntfs3: Validate data run offset Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 04/28] fs/ntfs3: Add null pointer check to attr_load_runs_vcn Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 05/28] fs/ntfs3: Fix memory leak on ntfs_fill_super() error path Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 06/28] fs/ntfs3: Add null pointer check for inode operations Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 07/28] fs/ntfs3: Validate attribute name offset Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 08/28] fs/ntfs3: Validate buffer length while parsing index Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 09/28] fs/ntfs3: Validate resident attribute name Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 10/28] fs/ntfs3: Fix slab-out-of-bounds read in run_unpack Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 11/28] soundwire: dmi-quirks: add quirk variant for LAPBC710 NUC15 Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 12/28] phy: sun4i-usb: Introduce port2 SIDDQ quirk Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 13/28] phy: sun4i-usb: Add support for the H616 USB PHY Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 14/28] fs/ntfs3: Validate index root when initialize NTFS security Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 15/28] fs/ntfs3: Use __GFP_NOWARN allocation at wnd_init() Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 16/28] fs/ntfs3: Use __GFP_NOWARN allocation at ntfs_fill_super() Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 17/28] fs/ntfs3: Delete duplicate condition in ntfs_read_mft() Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 18/28] fs/ntfs3: Fix slab-out-of-bounds in r_page Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 19/28] objtool: Fix SEGFAULT Sasha Levin 2022-12-27 20:32 ` Sasha Levin [this message] 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 20/28] iommu/mediatek: Fix crash on isr after kexec() Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 21/28] powerpc/rtas: avoid device tree lookups in rtas_os_term() Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 22/28] powerpc/rtas: avoid scheduling " Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 23/28] rtc: msc313: Fix function prototype mismatch in msc313_rtc_probe() Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 24/28] NFSD: fix use-after-free in __nfs42_ssc_open() Sasha Levin 2023-01-23 18:39 ` Oleksandr Tymoshenko 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 25/28] kprobes: kretprobe events missing on 2-core KVM guest Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 26/28] powerpc/msi: Fix deassociation of MSI descriptors Sasha Levin 2022-12-27 20:32 ` Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 27/28] HID: multitouch: fix Asus ExpertBook P2 P2451FA trackpoint Sasha Levin 2022-12-27 20:32 ` [PATCH AUTOSEL 6.1 28/28] HID: plantronics: Additional PIDs for double volume key presses quirk Sasha Levin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20221227203249.1213526-20-sashal@kernel.org \ --to=sashal@kernel.org \ --cc=angelogioacchino.delregno@collabora.com \ --cc=iommu@lists.linux.dev \ --cc=joro@8bytes.org \ --cc=jroedel@suse.de \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mediatek@lists.infradead.org \ --cc=matthias.bgg@gmail.com \ --cc=ribalda@chromium.org \ --cc=robin.murphy@arm.com \ --cc=stable@vger.kernel.org \ --cc=will@kernel.org \ --cc=yong.wu@mediatek.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.