From: Bjorn Helgaas <bhelgaas@google.com>
To: wdavis@nvidia.com
Cc: joro@8bytes.org, iommu@lists.linux-foundation.org,
linux-pci@vger.kernel.org, tripperda@nvidia.com,
jhubbard@nvidia.com, jglisse@redhat.com
Subject: Re: [PATCH 6/6] x86: add pci-nommu implementation of map_resource
Date: Thu, 7 May 2015 10:08:04 -0500 [thread overview]
Message-ID: <20150507150804.GJ24643@google.com> (raw)
In-Reply-To: <1430505138-2877-7-git-send-email-wdavis@nvidia.com>
On Fri, May 01, 2015 at 01:32:18PM -0500, wdavis@nvidia.com wrote:
> From: Will Davis <wdavis@nvidia.com>
>
> Simply pass through the physical address as the DMA address.
>
> Signed-off-by: Will Davis <wdavis@nvidia.com>
> Reviewed-by: Terence Ripperda <tripperda@nvidia.com>
> Reviewed-by: John Hubbard <jhubbard@nvidia.com>
> ---
> arch/x86/kernel/pci-nommu.c | 17 +++++++++++++++++
> 1 file changed, 17 insertions(+)
>
> diff --git a/arch/x86/kernel/pci-nommu.c b/arch/x86/kernel/pci-nommu.c
> index da15918..6e9e66d 100644
> --- a/arch/x86/kernel/pci-nommu.c
> +++ b/arch/x86/kernel/pci-nommu.c
> @@ -38,6 +38,22 @@ static dma_addr_t nommu_map_page(struct device *dev, struct page *page,
> return bus;
> }
>
> +static dma_addr_t nommu_map_resource(struct device *dev, struct resource *res,
> + unsigned long offset, size_t size,
> + enum dma_data_direction dir,
> + struct dma_attrs *attrs)
> +{
> + dma_addr_t bus = res->start + offset;
"res->start" is the CPU physical address, not the bus address. There is a
pci_bus_address() interface to get the bus address.
On many, but not all, x86 platforms the CPU physical address is identical
to the PCI bus address.
> +
> + WARN_ON(size == 0);
> +
> + if (!check_addr("map_resource", dev, bus, size))
> + return DMA_ERROR_CODE;
> + flush_write_buffers();
> + return bus;
> +}
> +
> +
> /* Map a set of buffers described by scatterlist in streaming
> * mode for DMA. This is the scatter-gather version of the
> * above pci_map_single interface. Here the scatter gather list
> @@ -93,6 +109,7 @@ struct dma_map_ops nommu_dma_ops = {
> .free = dma_generic_free_coherent,
> .map_sg = nommu_map_sg,
> .map_page = nommu_map_page,
> + .map_resource = nommu_map_resource,
> .sync_single_for_device = nommu_sync_single_for_device,
> .sync_sg_for_device = nommu_sync_sg_for_device,
> .is_phys = 1,
> --
> 2.3.7
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-pci" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-05-07 15:08 UTC|newest]
Thread overview: 34+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-01 18:32 [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer wdavis-DDmLM1+adcrQT0dZR+AlfA
2015-05-01 18:32 ` wdavis
2015-05-01 18:32 ` [PATCH 1/6] dma-debug: add checking for map/unmap_resource wdavis
2015-05-01 18:32 ` [PATCH 2/6] DMA-API: Introduce dma_(un)map_resource wdavis
2015-05-07 15:09 ` Bjorn Helgaas
2015-05-07 16:10 ` William Davis
2015-05-01 18:32 ` [PATCH 3/6] dma-mapping: pci: add pci_(un)map_resource wdavis
[not found] ` <1430505138-2877-4-git-send-email-wdavis-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-05-07 15:19 ` Bjorn Helgaas
2015-05-07 15:19 ` Bjorn Helgaas
[not found] ` <20150507151905.GL24643-hpIqsD4AKlfQT0dZR+AlfA@public.gmane.org>
2015-05-11 14:30 ` Konrad Rzeszutek Wilk
2015-05-11 14:30 ` Konrad Rzeszutek Wilk
2015-05-11 15:27 ` Bjorn Helgaas
2015-05-01 18:32 ` [PATCH 4/6] iommu/amd: Implement (un)map_resource wdavis
2015-05-01 18:32 ` [PATCH 5/6] iommu/vt-d: implement (un)map_resource wdavis
2015-05-01 18:32 ` [PATCH 6/6] x86: add pci-nommu implementation of map_resource wdavis
2015-05-07 15:08 ` Bjorn Helgaas [this message]
2015-05-07 16:07 ` William Davis
2015-05-06 22:18 ` [PATCH 0/6] IOMMU/DMA map_resource support for peer-to-peer Bjorn Helgaas
2015-05-06 22:30 ` Alex Williamson
2015-05-07 1:48 ` Yijing Wang
2015-05-07 1:48 ` Yijing Wang
2015-05-07 13:13 ` Bjorn Helgaas
2015-05-07 16:23 ` William Davis
2015-05-07 16:23 ` William Davis
2015-05-07 17:16 ` Bjorn Helgaas
2015-05-07 18:11 ` Jerome Glisse
[not found] ` <20150507181110.GB5966-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
2015-05-11 19:21 ` Don Dutile
2015-05-11 19:21 ` Don Dutile
2015-05-08 20:21 ` Konrad Rzeszutek Wilk
2015-05-08 20:46 ` Mark Hounschell
[not found] ` <554D2099.2030907-n2QNKt385d+sTnJN9+BGXg@public.gmane.org>
2015-05-11 14:32 ` Konrad Rzeszutek Wilk
2015-05-11 14:32 ` Konrad Rzeszutek Wilk
2015-05-11 20:05 ` William Davis
2015-05-11 19:49 ` William Davis
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=20150507150804.GJ24643@google.com \
--to=bhelgaas@google.com \
--cc=iommu@lists.linux-foundation.org \
--cc=jglisse@redhat.com \
--cc=jhubbard@nvidia.com \
--cc=joro@8bytes.org \
--cc=linux-pci@vger.kernel.org \
--cc=tripperda@nvidia.com \
--cc=wdavis@nvidia.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.