All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joerg Roedel <joerg.roedel@amd.com>
To: FUJITA Tomonori <fujita.tomonori@lab.ntt.co.jp>
Cc: tglx@linutronix.de, mingo@redhat.com,
	linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
	bhavna.sarathy@amd.com, Sebastian.Biemueller@amd.com,
	robert.richter@amd.com, joro@8bytes.org
Subject: Re: [PATCH 26/34] AMD IOMMU: add mapping functions for scatter gather lists
Date: Mon, 30 Jun 2008 15:25:45 +0200	[thread overview]
Message-ID: <20080630132545.GP1303@amd.com> (raw)
In-Reply-To: <20080630000023F.fujita.tomonori@lab.ntt.co.jp>

On Mon, Jun 30, 2008 at 12:07:16AM +0900, FUJITA Tomonori wrote:
> On Thu, 26 Jun 2008 21:28:02 +0200
> Joerg Roedel <joerg.roedel@amd.com> wrote:
> 
> > This patch adds the dma_ops functions for mapping and unmapping scatter gather
> > lists.
> > 
> > Signed-off-by: Joerg Roedel <joerg.roedel@amd.com>
> > ---
> >  arch/x86/kernel/amd_iommu.c |   98 +++++++++++++++++++++++++++++++++++++++++++
> >  1 files changed, 98 insertions(+), 0 deletions(-)
> > 
> > diff --git a/arch/x86/kernel/amd_iommu.c b/arch/x86/kernel/amd_iommu.c
> > index b4079f6..f4747fe 100644
> > --- a/arch/x86/kernel/amd_iommu.c
> > +++ b/arch/x86/kernel/amd_iommu.c
> > @@ -700,3 +700,101 @@ static void unmap_single(struct device *dev, dma_addr_t dma_addr,
> >  	spin_unlock_irqrestore(&domain->lock, flags);
> >  }
> >  
> > +static int map_sg_no_iommu(struct device *dev, struct scatterlist *sglist,
> > +			   int nelems, int dir)
> > +{
> > +	struct scatterlist *s;
> > +	int i;
> > +
> > +	for_each_sg(sglist, s, nelems, i) {
> > +		s->dma_address = (dma_addr_t)sg_phys(s);
> > +		s->dma_length  = s->length;
> > +	}
> > +
> > +	return nelems;
> > +}
> > +
> > +static int map_sg(struct device *dev, struct scatterlist *sglist,
> > +		  int nelems, int dir)
> > +{
> > +	unsigned long flags;
> > +	struct amd_iommu *iommu;
> > +	struct protection_domain *domain;
> > +	u16 devid;
> > +	int i;
> > +	struct scatterlist *s;
> > +	phys_addr_t paddr;
> > +	int mapped_elems = 0;
> > +
> > +	get_device_resources(dev, &iommu, &domain, &devid);
> > +
> > +	if (!iommu || !domain)
> > +		return map_sg_no_iommu(dev, sglist, nelems, dir);
> 
> VT-d put a pointer in struct dev_archdata to store IOMMU info per
> device. Is is useful for you too?

Hmm yes. Thank you for that hint. I can save at least one of my arrays
with that method.

Joerg


-- 
           |           AMD Saxony Limited Liability Company & Co. KG
 Operating |         Wilschdorfer Landstr. 101, 01109 Dresden, Germany
 System    |                  Register Court Dresden: HRA 4896
 Research  |              General Partner authorized to represent:
 Center    |             AMD Saxony LLC (Wilmington, Delaware, US)
           | General Manager of AMD Saxony LLC: Dr. Hans-R. Deppe, Thomas McCoy


  reply	other threads:[~2008-06-30 13:26 UTC|newest]

Thread overview: 124+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-26 19:27 [PATCH 00/34] AMD IOMMU driver Joerg Roedel
2008-06-26 19:27 ` [PATCH 01/34] AMD IOMMU: add Kconfig entry Joerg Roedel
2008-06-27 14:25   ` Adrian Bunk
2008-06-27 14:47     ` Andi Kleen
2008-06-27 16:39       ` Muli Ben-Yehuda
2008-06-27 16:54         ` Joerg Roedel
2008-06-27 16:59           ` Muli Ben-Yehuda
2008-06-27 17:05             ` Joerg Roedel
2008-06-27 17:12               ` Muli Ben-Yehuda
2008-06-27 17:20                 ` Joerg Roedel
2008-06-27 17:31                   ` Muli Ben-Yehuda
2008-06-27 17:40                     ` Joerg Roedel
2008-06-27 17:44                       ` Muli Ben-Yehuda
2008-06-27 17:52                         ` Joerg Roedel
2008-07-02  5:45                       ` Amit Shah
2008-07-02  8:12                         ` Alan Cox
2008-06-27 20:39               ` Duran, Leo
2008-06-27 22:29                 ` Muli Ben-Yehuda
2008-06-27 22:47                   ` Duran, Leo
2008-06-28 11:04                     ` Joerg Roedel
2008-06-28 14:40                       ` Duran, Leo
2008-06-28 16:27                         ` Joerg Roedel
2008-06-28 14:58                       ` Duran, Leo
2008-06-27 18:54           ` Andi Kleen
2008-06-28 10:52             ` Joerg Roedel
2008-06-27 16:40     ` Joerg Roedel
2008-07-08 12:45   ` Pavel Machek
2008-07-09  8:48     ` Ingo Molnar
2008-07-10  0:50       ` FUJITA Tomonori
2008-07-10  8:44         ` Ingo Molnar
2008-06-26 19:27 ` [PATCH 02/34] AMD IOMMU: add header file for driver data structures and defines Joerg Roedel
2008-06-29 15:07   ` FUJITA Tomonori
2008-06-29 15:14     ` Joerg Roedel
2008-06-29 23:11       ` FUJITA Tomonori
2008-06-30 12:22         ` Ingo Molnar
2008-07-10  1:38   ` Andrew Morton
2008-07-10  1:50     ` Arjan van de Ven
2008-07-10  2:36       ` Andrew Morton
2008-07-10 12:12         ` Joerg Roedel
2008-07-10 12:59           ` Andrew Morton
2008-06-26 19:27 ` [PATCH 03/34] AMD IOMMU: add defines and structures for ACPI scanning code Joerg Roedel
2008-07-10  1:41   ` Andrew Morton
2008-07-10 12:17     ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 04/34] AMD IOMMU: add data structures to manage the IOMMUs in the system Joerg Roedel
2008-07-10  1:43   ` Andrew Morton
2008-07-10 12:25     ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 05/34] AMD IOMMU: add functions to find last possible PCI device for IOMMU Joerg Roedel
2008-06-26 19:27 ` [PATCH 06/34] AMD IOMMU: add amd_iommu_init.c to Makefile Joerg Roedel
2008-06-26 19:27 ` [PATCH 07/34] AMD IOMMU: add functions for mapping/unmapping the MMIO space Joerg Roedel
2008-06-26 19:27 ` [PATCH 08/34] AMD IOMMU: add functions for programming IOMMU " Joerg Roedel
2008-06-26 19:27 ` [PATCH 09/34] AMD IOMMU: add command buffer (de-)allocation Joerg Roedel
2008-07-10  1:47   ` Andrew Morton
2008-06-26 19:27 ` [PATCH 10/34] AMD IOMMU: add device table initialization functions Joerg Roedel
2008-06-26 19:27 ` [PATCH 11/34] AMD IOMMU: add functions for IOMMU hardware initialization from ACPI Joerg Roedel
2008-07-10  1:49   ` Andrew Morton
2008-06-26 19:27 ` [PATCH 12/34] AMD IOMMU: add detect code for AMD IOMMU hardware Joerg Roedel
2008-07-10  1:51   ` Andrew Morton
2008-06-26 19:27 ` [PATCH 13/34] AMD IOMMU: add functions to parse IOMMU memory mapping requirements for devices Joerg Roedel
2008-07-10  1:51   ` Andrew Morton
2008-06-26 19:27 ` [PATCH 14/34] AMD IOMMU: clue initialization code together Joerg Roedel
2008-07-10  1:55   ` Andrew Morton
2008-07-10 12:37     ` Joerg Roedel
2008-07-10 13:03       ` Andrew Morton
2008-07-10 13:31         ` Joerg Roedel
2008-07-10 18:37           ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 15/34] AMD IOMMU: add early detection code Joerg Roedel
2008-06-26 19:27 ` [PATCH 16/34] AMD IOMMU: add kernel command line parameters for AMD IOMMU Joerg Roedel
2008-07-10  1:56   ` Andrew Morton
2008-07-10  4:25     ` FUJITA Tomonori
2008-07-10  4:39       ` Andrew Morton
2008-07-10  6:26         ` Ingo Molnar
2008-07-10 20:42           ` Randy Dunlap
2008-07-14 23:56           ` FUJITA Tomonori
2008-07-10  7:04   ` Yinghai Lu
2008-07-10 12:41     ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 17/34] AMD IOMMU: add generic defines and structures for mapping code Joerg Roedel
2008-07-10  2:01   ` Andrew Morton
2008-07-10  2:38     ` Andrew Morton
2008-07-10  4:25     ` FUJITA Tomonori
2008-07-10 12:44       ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 18/34] AMD IOMMU: add amd_iommu.c to Makefile Joerg Roedel
2008-06-26 19:27 ` [PATCH 19/34] AMD IOMMU: add functions to send IOMMU commands Joerg Roedel
2008-07-10  2:04   ` Andrew Morton
2008-07-10 12:53     ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 20/34] AMD IOMMU: add functions to initialize unity mappings Joerg Roedel
2008-06-26 19:27 ` [PATCH 21/34] AMD IOMMU: add address allocation and deallocation functions Joerg Roedel
2008-06-29 15:07   ` FUJITA Tomonori
2008-06-29 15:17     ` Joerg Roedel
2008-06-29 23:11       ` FUJITA Tomonori
2008-06-26 19:27 ` [PATCH 22/34] AMD IOMMU: add domain " Joerg Roedel
2008-07-10  2:14   ` Andrew Morton
2008-07-10 12:54     ` Joerg Roedel
2008-06-26 19:27 ` [PATCH 23/34] AMD IOMMU: add functions to find IOMMU device resources Joerg Roedel
2008-07-10  2:18   ` Andrew Morton
2008-07-10 16:46     ` Joerg Roedel
2008-07-10 23:59       ` Andrew Morton
2008-06-26 19:28 ` [PATCH 24/34] AMD IOMMU: add generic dma_ops mapping functions Joerg Roedel
2008-06-26 19:28 ` [PATCH 25/34] AMD IOMMU: add dma_ops mapping functions for single mappings Joerg Roedel
2008-07-10  2:26   ` Andrew Morton
2008-07-10 13:20     ` Joerg Roedel
2008-06-26 19:28 ` [PATCH 26/34] AMD IOMMU: add mapping functions for scatter gather lists Joerg Roedel
2008-06-29 15:07   ` FUJITA Tomonori
2008-06-30 13:25     ` Joerg Roedel [this message]
2008-06-26 19:28 ` [PATCH 27/34] AMD IOMMU: add mapping functions for coherent mappings Joerg Roedel
2008-06-26 19:28 ` [PATCH 28/34] AMD IOMMU: add pre-allocation of protection domains Joerg Roedel
2008-06-26 19:28 ` [PATCH 29/34] AMD IOMMU: add dma_ops initialization function Joerg Roedel
2008-06-26 19:28 ` [PATCH 30/34] AMD IOMMU: add amd_iommu.h to export functions to the generic x86 dma code Joerg Roedel
2008-06-26 19:28 ` [PATCH 31/34] AMD IOMMU: initialize dma_ops from IOMMU initialization and enable IOMMUs Joerg Roedel
2008-06-26 19:28 ` [PATCH 32/34] AMD_IOMMU: call detect and initialization functions from dma code Joerg Roedel
2008-06-26 19:28 ` [PATCH 33/34] AMD IOMMU: add MAINTAINERS entry Joerg Roedel
2008-06-26 19:28 ` [PATCH 34/34] AMD IOMMU: add documentation for kernel parameters Joerg Roedel
2008-06-29 15:07   ` FUJITA Tomonori
2008-06-30 12:25     ` Ingo Molnar
2008-06-26 20:37 ` [PATCH 00/34] AMD IOMMU driver Rafael J. Wysocki
2008-06-26 20:37   ` Joerg Roedel
2008-06-26 21:02     ` Rafael J. Wysocki
2008-06-27  8:18 ` Ingo Molnar
2008-06-27 10:07   ` Ingo Molnar
2008-06-27 10:15     ` Joerg Roedel
2008-06-27 10:59   ` Joerg Roedel
2008-07-11 10:22 ` Eric W. Biederman
2008-07-11 14:11   ` Joerg Roedel
2008-07-11 16:23   ` Duran, Leo
2008-07-11 17:20     ` Eric W. Biederman

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=20080630132545.GP1303@amd.com \
    --to=joerg.roedel@amd.com \
    --cc=Sebastian.Biemueller@amd.com \
    --cc=bhavna.sarathy@amd.com \
    --cc=fujita.tomonori@lab.ntt.co.jp \
    --cc=iommu@lists.linux-foundation.org \
    --cc=joro@8bytes.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@redhat.com \
    --cc=robert.richter@amd.com \
    --cc=tglx@linutronix.de \
    /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.