From: Corentin Labbe <clabbe.montjoie@gmail.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
hch@lst.de
Subject: Re: DMA mapping fill dma_address to 0
Date: Wed, 28 Apr 2021 12:25:35 +0200 [thread overview]
Message-ID: <YIk4H82yrx+Yzp/U@Red> (raw)
In-Reply-To: <6ce3614e-af79-2a36-de83-6cbb4d9fe9a4@arm.com>
Le Wed, Apr 28, 2021 at 11:06:10AM +0100, Robin Murphy a écrit :
> On 2021-04-28 09:42, Corentin Labbe wrote:
> > Hello
> >
> > I work on the crypto offloader driver of cortina/gemini SL3516 SoC.
> > I test it by filling a LUKS2 partition.
> > I got a reproductible problem when handling skcipher requests.
> > I use dma_map_sg() and when iterating other the result, sg_dma_address(sg) return 0.
> > But sg_dma_len(sg) is still correct (4096 in my case).
> >
> > Below is a simplified view of my code:
> > nr_sgs = dma_map_sg(ce->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE);
> > (nr_sgs = 1 in my case)
> > sg = areq->src;
> > if (!sg_dma_address(sg))
> > FAIL
>
> What is this check supposed to be for in the first place? 0 is a valid
> DMA address, because it's also a valid physical address, and I recall
> RAM at PA 0 on Hikey 960 flushing out some bugs in the past when we
> tried to use 0 for DMA_MAPPING_ERROR. All the Gemini DTs appear to show
> RAM starting at PA 0 too, so I'd have to guess that it's simply the case
> that your DMA buffer happened to end up using that particular page.
>
> Robin.
>
Yes, 0 is a valid DMA address.
I just find it by going further and printing mem_map value and testing it against sg_page() return.
So my original problem was not related to this.
Sorry for the noise.
Thanks
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
WARNING: multiple messages have this Message-ID (diff)
From: Corentin Labbe <clabbe.montjoie@gmail.com>
To: Robin Murphy <robin.murphy@arm.com>
Cc: hch@lst.de, m.szyprowski@samsung.com,
iommu@lists.linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: DMA mapping fill dma_address to 0
Date: Wed, 28 Apr 2021 12:25:35 +0200 [thread overview]
Message-ID: <YIk4H82yrx+Yzp/U@Red> (raw)
In-Reply-To: <6ce3614e-af79-2a36-de83-6cbb4d9fe9a4@arm.com>
Le Wed, Apr 28, 2021 at 11:06:10AM +0100, Robin Murphy a écrit :
> On 2021-04-28 09:42, Corentin Labbe wrote:
> > Hello
> >
> > I work on the crypto offloader driver of cortina/gemini SL3516 SoC.
> > I test it by filling a LUKS2 partition.
> > I got a reproductible problem when handling skcipher requests.
> > I use dma_map_sg() and when iterating other the result, sg_dma_address(sg) return 0.
> > But sg_dma_len(sg) is still correct (4096 in my case).
> >
> > Below is a simplified view of my code:
> > nr_sgs = dma_map_sg(ce->dev, areq->src, sg_nents(areq->src), DMA_TO_DEVICE);
> > (nr_sgs = 1 in my case)
> > sg = areq->src;
> > if (!sg_dma_address(sg))
> > FAIL
>
> What is this check supposed to be for in the first place? 0 is a valid
> DMA address, because it's also a valid physical address, and I recall
> RAM at PA 0 on Hikey 960 flushing out some bugs in the past when we
> tried to use 0 for DMA_MAPPING_ERROR. All the Gemini DTs appear to show
> RAM starting at PA 0 too, so I'd have to guess that it's simply the case
> that your DMA buffer happened to end up using that particular page.
>
> Robin.
>
Yes, 0 is a valid DMA address.
I just find it by going further and printing mem_map value and testing it against sg_page() return.
So my original problem was not related to this.
Sorry for the noise.
Thanks
next prev parent reply other threads:[~2021-04-28 10:25 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-28 8:42 DMA mapping fill dma_address to 0 Corentin Labbe
2021-04-28 8:42 ` Corentin Labbe
2021-04-28 10:06 ` Robin Murphy
2021-04-28 10:06 ` Robin Murphy
2021-04-28 10:25 ` Corentin Labbe [this message]
2021-04-28 10:25 ` Corentin Labbe
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=YIk4H82yrx+Yzp/U@Red \
--to=clabbe.montjoie@gmail.com \
--cc=hch@lst.de \
--cc=iommu@lists.linux-foundation.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robin.murphy@arm.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 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.