From: josephl@nvidia.com (Joseph Lo)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH 4/5] arm64: add IOMMU dma_ops
Date: Mon, 26 Jan 2015 17:10:22 +0800 [thread overview]
Message-ID: <54C6047E.6070005@nvidia.com> (raw)
In-Reply-To: <aa7de3b1dd189c31eb8b14d0c0eea699183f8a2c.1421086706.git.robin.murphy@arm.com>
On 01/13/2015 04:48 AM, Robin Murphy wrote:
> Taking some inspiration from the arch/arm code, implement the
> arch-specific side of the DMA mapping ops using the new IOMMU-DMA layer.
>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> ---
[snip]
> static inline phys_addr_t dma_to_phys(struct device *dev, dma_addr_t dev_addr)
> {
> +#ifdef CONFIG_IOMMU_DMA
> + if (dev->archdata.mapping)
Hi Robin,
Report one more issue, it would be safer like this.
if (dev && dev->archdata.mapping)
I do some more tests with a generic buffer allocator (ION). Allocate
buffer from ION and then import by Tegra/DRM. I saw a crash in ION.
Please reference and follow the call stack below. You could find out it
could pass NULL of the dev pointer (ion_page_pool_alloc_pages).
[ 83.836688] Call trace:
[ 83.836694] [<ffffffc000422fd0>] swiotlb_sync_single+0xc/0xa4
[ 83.836707] [<ffffffc0004230dc>] swiotlb_sync_sg_for_device+0x44/0x70
[ 83.836713] [<ffffffc000211030>] __swiotlb_sync_sg_for_device+0x28/0xac
[ 83.836720] [<ffffffc0005eb934>] ion_pages_sync_for_device+0xfc/0x10c
[ 83.836724] [<ffffffc0005ecb6c>] ion_page_pool_alloc+0xc8/0xe0
[ 83.836729] [<ffffffc0005ed3d0>] ion_system_heap_allocate+0xfc/0x324
[ 83.836732] [<ffffffc0005eae98>] ion_alloc+0xf0/0x480
[ 83.836736] [<ffffffc0005eb3bc>] ion_ioctl+0x194/0x608
[ 83.836741] [<ffffffc0005eeae0>] compat_ion_ioctl+0x300/0x6e0
[ 83.836747] [<ffffffc000340280>] compat_sys_ioctl+0x108/0x139c
Thanks
-Joseph
> + return iova_to_phys(dev, dev_addr);
> +#endif
> return (phys_addr_t)dev_addr;
> }
next prev parent reply other threads:[~2015-01-26 9:10 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-01-12 20:48 [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Robin Murphy
2015-01-12 20:48 ` [RFC PATCH 1/5] arm64: Combine coherent and non-coherent swiotlb dma_ops Robin Murphy
2015-01-12 20:48 ` [RFC PATCH 2/5] arm64: implement generic IOMMU configuration Robin Murphy
2015-01-12 20:48 ` [RFC PATCH 3/5] iommu: implement common IOMMU ops for DMA mapping Robin Murphy
2015-01-23 17:42 ` Laura Abbott
2015-01-23 18:14 ` Robin Murphy
2015-01-27 0:21 ` Joerg Roedel
2015-01-27 12:27 ` Robin Murphy
2015-01-27 12:38 ` Joerg Roedel
2015-01-28 13:53 ` Will Deacon
2015-01-12 20:48 ` [RFC PATCH 4/5] arm64: add IOMMU dma_ops Robin Murphy
2015-01-23 15:26 ` Will Deacon
2015-01-23 17:33 ` Robin Murphy
2015-01-26 3:25 ` Joseph Lo
2015-01-27 17:30 ` Robin Murphy
2015-01-26 9:10 ` Joseph Lo [this message]
2015-01-28 2:22 ` Joseph Lo
2015-03-05 14:31 ` Marek Szyprowski
2015-01-12 20:48 ` [RFC PATCH 5/5] arm64: hook up " Robin Murphy
2015-01-13 8:02 ` [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Yingjoe Chen
2015-01-13 12:07 ` Robin Murphy
2015-01-15 18:35 ` Robin Murphy
2015-01-16 7:21 ` Yong Wu
2015-01-16 20:12 ` Robin Murphy
2015-01-13 11:08 ` Stefano Stabellini
2015-01-13 11:45 ` Robin Murphy
2015-01-23 16:47 ` Catalin Marinas
2015-01-23 17:41 ` Robin Murphy
2015-03-05 14:31 ` Marek Szyprowski
2015-03-05 16:42 ` Robin Murphy
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=54C6047E.6070005@nvidia.com \
--to=josephl@nvidia.com \
--cc=linux-arm-kernel@lists.infradead.org \
/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;
as well as URLs for NNTP newsgroup(s).