From: muli@il.ibm.com
To: ak@suse.de
Cc: linux-kernel@vger.kernel.org, discuss@x86-64.org,
jdmason@kudzu.us, michaelv@il.ibm.com,
guillaume.thouvenin@ext.bull.net, muli@il.ibm.com
Subject: [PATCH 5/15] x86-64: Calgary - abstract how we find the iommu_table for a device
Date: Tue, 22 May 2007 04:05:54 -0400 [thread overview]
Message-ID: <11798211661041-git-send-email-muli@il.ibm.com> (raw)
In-Reply-To: <1179821166685-git-send-email-muli@il.ibm.com>
From: Muli Ben-Yehuda <muli@il.ibm.com>
... in preparation for doing it differently for CalIOC2.
Signed-off-by: Muli Ben-Yehuda <muli@il.ibm.com>
---
arch/x86_64/kernel/pci-calgary.c | 21 ++++++++++++++-------
1 files changed, 14 insertions(+), 7 deletions(-)
diff --git a/arch/x86_64/kernel/pci-calgary.c b/arch/x86_64/kernel/pci-calgary.c
index acee770..c5f92ea 100644
--- a/arch/x86_64/kernel/pci-calgary.c
+++ b/arch/x86_64/kernel/pci-calgary.c
@@ -344,6 +344,15 @@ static void iommu_free(struct iommu_tabl
spin_unlock_irqrestore(&tbl->it_lock, flags);
}
+static inline struct iommu_table *find_iommu_table(struct device *dev)
+{
+ struct iommu_table *tbl;
+
+ tbl = to_pci_dev(dev)->bus->self->sysdata;
+
+ return tbl;
+}
+
static void __calgary_unmap_sg(struct iommu_table *tbl,
struct scatterlist *sglist, int nelems, int direction)
{
@@ -365,7 +374,7 @@ void calgary_unmap_sg(struct device *dev
int nelems, int direction)
{
unsigned long flags;
- struct iommu_table *tbl = to_pci_dev(dev)->bus->self->sysdata;
+ struct iommu_table *tbl = find_iommu_table(dev);
if (!translate_phb(to_pci_dev(dev)))
return;
@@ -394,7 +403,7 @@ static int calgary_nontranslate_map_sg(s
int calgary_map_sg(struct device *dev, struct scatterlist *sg,
int nelems, int direction)
{
- struct iommu_table *tbl = to_pci_dev(dev)->bus->self->sysdata;
+ struct iommu_table *tbl = find_iommu_table(dev);
unsigned long flags;
unsigned long vaddr;
unsigned int npages;
@@ -448,7 +457,7 @@ dma_addr_t calgary_map_single(struct dev
dma_addr_t dma_handle = bad_dma_address;
unsigned long uaddr;
unsigned int npages;
- struct iommu_table *tbl = to_pci_dev(dev)->bus->self->sysdata;
+ struct iommu_table *tbl = find_iommu_table(dev);
uaddr = (unsigned long)vaddr;
npages = num_dma_pages(uaddr, size);
@@ -464,7 +473,7 @@ dma_addr_t calgary_map_single(struct dev
void calgary_unmap_single(struct device *dev, dma_addr_t dma_handle,
size_t size, int direction)
{
- struct iommu_table *tbl = to_pci_dev(dev)->bus->self->sysdata;
+ struct iommu_table *tbl = find_iommu_table(dev);
unsigned int npages;
if (!translate_phb(to_pci_dev(dev)))
@@ -480,9 +489,7 @@ void* calgary_alloc_coherent(struct devi
void *ret = NULL;
dma_addr_t mapping;
unsigned int npages, order;
- struct iommu_table *tbl;
-
- tbl = to_pci_dev(dev)->bus->self->sysdata;
+ struct iommu_table *tbl = find_iommu_table(dev);
size = PAGE_ALIGN(size); /* size rounded up to full pages */
npages = size >> PAGE_SHIFT;
--
1.4.4
next prev parent reply other threads:[~2007-05-22 8:06 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-22 8:05 Calgary updates for 2.6.23 muli
2007-05-22 8:05 ` [PATCH 1/15] x86-64: Calgary - generalize calgary_increase_split_completion_timeout muli
2007-05-22 8:05 ` [PATCH 2/15] x86-64: Calgary - update copyright notice muli
2007-05-22 8:05 ` [PATCH 3/15] x86-64: Calgary - introduce handle_quirks() for various chipset quirks muli
2007-05-22 8:05 ` [PATCH 4/15] x86-64: Calgary - introduce chipset specific ops muli
2007-05-22 8:05 ` muli [this message]
2007-05-22 8:05 ` [PATCH 6/15] x86-64: Calgary - introduce CalIOC2 support muli
2007-05-22 8:05 ` [PATCH 7/15] x86-64: Calgary - add chip_ops and a quirk function for CalIOC2 muli
2007-05-22 8:05 ` [PATCH 8/15] x86-64: Calgary - implement CalIOC2 TCE cache flush sequence muli
2007-05-22 8:05 ` [PATCH 9/15] x86-64: Calgary - make dump_error_regs a chip op muli
2007-05-22 8:05 ` [PATCH 10/15] x86-64: Calgary - grab PLSSR too when a DMA error occurs muli
2007-05-22 8:06 ` [PATCH 11/15] x86-64: Calgary - reserve TCEs with the same address as MEM regions muli
2007-05-22 8:06 ` [PATCH 12/15] x86-64: Calgary - cleanup of unneeded macros muli
2007-05-22 8:06 ` [PATCH 13/15] x86-64: Calgary - tabify and trim trailing whitespace muli
2007-05-22 8:06 ` [PATCH 14/15] x86-64: Calgary - only reserve the first 1MB of IO space for CalIOC2 muli
2007-05-22 8:06 ` [PATCH 15/15] x86-64: Calgary - tidy up debug printks muli
[not found] ` <20070604113344.0e71ca8c.akpm@linux-foundation.org>
2007-06-04 19:06 ` [PATCH 5/15] x86-64: Calgary - abstract how we find the iommu_table for a device Jeff Garzik
2007-06-04 19:13 ` Muli Ben-Yehuda
2007-06-04 19:31 ` Jeff Garzik
2007-06-04 21:05 ` [PATCH] stop x86 ->sysdata abuse; introduce pci_sysdata Jeff Garzik
2007-06-04 23:27 ` Keshavamurthy, Anil S
2007-06-05 10:29 ` Muli Ben-Yehuda
2007-06-06 21:03 ` Muli Ben-Yehuda
2007-06-06 21:21 ` Jeff Garzik
2007-06-06 21:26 ` Muli Ben-Yehuda
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=11798211661041-git-send-email-muli@il.ibm.com \
--to=muli@il.ibm.com \
--cc=ak@suse.de \
--cc=discuss@x86-64.org \
--cc=guillaume.thouvenin@ext.bull.net \
--cc=jdmason@kudzu.us \
--cc=linux-kernel@vger.kernel.org \
--cc=michaelv@il.ibm.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.