From: Yong Wu via iommu <iommu@lists.linux-foundation.org>
To: Miles Chen <miles.chen@mediatek.com>,
Joerg Roedel <joro@8bytes.org>, "Will Deacon" <will@kernel.org>,
Matthias Brugger <matthias.bgg@gmail.com>,
AngeloGioacchino Del Regno
<angelogioacchino.delregno@collabora.com>,
"Mauro Carvalho Chehab" <mchehab@kernel.org>,
Hans Verkuil <hverkuil-cisco@xs4all.nl>
Cc: Joerg Roedel <jroedel@suse.de>,
linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
linux-mediatek@lists.infradead.org,
Robin Murphy <robin.murphy@arm.com>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH v3] iommu/mediatek: Fix NULL pointer dereference when printing dev_name
Date: Fri, 6 May 2022 13:36:53 +0800 [thread overview]
Message-ID: <59df49f47ecf000ef40e432d82bd96338f4da69a.camel@mediatek.com> (raw)
In-Reply-To: <20220505132731.21628-1-miles.chen@mediatek.com>
On Thu, 2022-05-05 at 21:27 +0800, Miles Chen wrote:
> When larbdev is NULL (in the case I hit, the node is incorrectly set
> iommus = <&iommu NUM>), it will cause device_link_add() fail and
> kernel crashes when we try to print dev_name(larbdev).
>
> Let's fail the probe if a larbdev is NULL to avoid invalid inputs
> from
> dts.
>
> It should work for normal correct setting and avoid the crash caused
> by my incorrect setting.
>
> Error log:
> [ 18.189042][ T301] Unable to handle kernel NULL pointer
> dereference at virtual address 0000000000000050
> ...
> [ 18.344519][ T301] pstate: a0400005 (NzCv daif +PAN -UAO)
> [ 18.345213][ T301] pc : mtk_iommu_probe_device+0xf8/0x118
> [mtk_iommu]
> [ 18.346050][ T301] lr : mtk_iommu_probe_device+0xd0/0x118
> [mtk_iommu]
> [ 18.346884][ T301] sp : ffffffc00a5635e0
> [ 18.347392][ T301] x29: ffffffc00a5635e0 x28: ffffffd44a46c1d8
> [ 18.348156][ T301] x27: ffffff80c39a8000 x26: ffffffd44a80cc38
> [ 18.348917][ T301] x25: 0000000000000000 x24: ffffffd44a80cc38
> [ 18.349677][ T301] x23: ffffffd44e4da4c6 x22: ffffffd44a80cc38
> [ 18.350438][ T301] x21: ffffff80cecd1880 x20: 0000000000000000
> [ 18.351198][ T301] x19: ffffff80c439f010 x18: ffffffc00a50d0c0
> [ 18.351959][ T301] x17: ffffffffffffffff x16: 0000000000000004
> [ 18.352719][ T301] x15: 0000000000000004 x14: ffffffd44eb5d420
> [ 18.353480][ T301] x13: 0000000000000ad2 x12: 0000000000000003
> [ 18.354241][ T301] x11: 00000000fffffad2 x10: c0000000fffffad2
> [ 18.355003][ T301] x9 : a0d288d8d7142d00 x8 : a0d288d8d7142d00
> [ 18.355763][ T301] x7 : ffffffd44c2bc640 x6 : 0000000000000000
> [ 18.356524][ T301] x5 : 0000000000000080 x4 : 0000000000000001
> [ 18.357284][ T301] x3 : 0000000000000000 x2 : 0000000000000005
> [ 18.358045][ T301] x1 : 0000000000000000 x0 : 0000000000000000
> [ 18.360208][ T301] Hardware name: MT6873 (DT)
> [ 18.360771][ T301] Call trace:
> [ 18.361168][ T301] dump_backtrace+0xf8/0x1f0
> [ 18.361737][ T301] dump_stack_lvl+0xa8/0x11c
> [ 18.362305][ T301] dump_stack+0x1c/0x2c
> [ 18.362816][ T301] mrdump_common_die+0x184/0x40c [mrdump]
> [ 18.363575][ T301] ipanic_die+0x24/0x38 [mrdump]
> [ 18.364230][ T301] atomic_notifier_call_chain+0x128/0x2b8
> [ 18.364937][ T301] die+0x16c/0x568
> [ 18.365394][ T301] __do_kernel_fault+0x1e8/0x214
> [ 18.365402][ T301] do_page_fault+0xb8/0x678
> [ 18.366934][ T301] do_translation_fault+0x48/0x64
> [ 18.368645][ T301] do_mem_abort+0x68/0x148
> [ 18.368652][ T301] el1_abort+0x40/0x64
> [ 18.368660][ T301] el1h_64_sync_handler+0x54/0x88
> [ 18.368668][ T301] el1h_64_sync+0x68/0x6c
> [ 18.368673][ T301] mtk_iommu_probe_device+0xf8/0x118 [mtk_iommu]
> ...
>
> Cc: Robin Murphy <robin.murphy@arm.com>
> Cc: Yong Wu <yong.wu@mediatek.com>
> Reported-by: kernel test robot <lkp@intel.com>
> Fixes: 635319a4a744 ("media: iommu/mediatek: Add device_link between
> the consumer and the larb devices")
> Signed-off-by: Miles Chen <miles.chen@mediatek.com>
Reviewed-by: Yong Wu <yong.wu@mediatek.com>
And this doesn't conflict with the MT8195 patchset.
Thanks.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
next prev parent reply other threads:[~2022-05-06 5:37 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-05 13:27 [PATCH v3] iommu/mediatek: Fix NULL pointer dereference when printing dev_name Miles Chen via iommu
2022-05-05 14:57 ` AngeloGioacchino Del Regno
2022-05-06 5:36 ` Yong Wu via iommu [this message]
2022-05-13 12:57 ` Joerg Roedel
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=59df49f47ecf000ef40e432d82bd96338f4da69a.camel@mediatek.com \
--to=iommu@lists.linux-foundation.org \
--cc=angelogioacchino.delregno@collabora.com \
--cc=hverkuil-cisco@xs4all.nl \
--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=mchehab@kernel.org \
--cc=miles.chen@mediatek.com \
--cc=robin.murphy@arm.com \
--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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox