Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 190978
b: refs/heads/master
c: 12c7389
h: refs/heads/master
v: v3
  • Loading branch information
Joerg Roedel committed Mar 7, 2010
1 parent 5ea9f08 commit 27b304f
Show file tree
Hide file tree
Showing 4 changed files with 3 additions and 93 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 468e2366cdb80cf8a691b8bc212260cfbdbd518e
refs/heads/master: 12c7389abe5786349d3ea6da1961cf78d0c1c7cd
48 changes: 0 additions & 48 deletions trunk/arch/x86/kernel/amd_iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -2506,52 +2506,6 @@ static int amd_iommu_attach_device(struct iommu_domain *dom,
return ret;
}

static int amd_iommu_map_range(struct iommu_domain *dom,
unsigned long iova, phys_addr_t paddr,
size_t size, int iommu_prot)
{
struct protection_domain *domain = dom->priv;
unsigned long i, npages = iommu_num_pages(paddr, size, PAGE_SIZE);
int prot = 0;
int ret;

if (iommu_prot & IOMMU_READ)
prot |= IOMMU_PROT_IR;
if (iommu_prot & IOMMU_WRITE)
prot |= IOMMU_PROT_IW;

iova &= PAGE_MASK;
paddr &= PAGE_MASK;

for (i = 0; i < npages; ++i) {
ret = iommu_map_page(domain, iova, paddr, prot, PAGE_SIZE);
if (ret)
return ret;

iova += PAGE_SIZE;
paddr += PAGE_SIZE;
}

return 0;
}

static void amd_iommu_unmap_range(struct iommu_domain *dom,
unsigned long iova, size_t size)
{

struct protection_domain *domain = dom->priv;
unsigned long i, npages = iommu_num_pages(iova, size, PAGE_SIZE);

iova &= PAGE_MASK;

for (i = 0; i < npages; ++i) {
iommu_unmap_page(domain, iova, PAGE_SIZE);
iova += PAGE_SIZE;
}

iommu_flush_tlb_pde(domain);
}

static int amd_iommu_map(struct iommu_domain *dom, unsigned long iova,
phys_addr_t paddr, int gfp_order, int iommu_prot)
{
Expand Down Expand Up @@ -2616,8 +2570,6 @@ static struct iommu_ops amd_iommu_ops = {
.detach_dev = amd_iommu_detach_device,
.map = amd_iommu_map,
.unmap = amd_iommu_unmap,
.map_range = amd_iommu_map_range,
.unmap_range = amd_iommu_unmap_range,
.iova_to_phys = amd_iommu_iova_to_phys,
.domain_has_cap = amd_iommu_domain_has_cap,
};
Expand Down
26 changes: 2 additions & 24 deletions trunk/drivers/base/iommu.c
Original file line number Diff line number Diff line change
Expand Up @@ -80,20 +80,6 @@ void iommu_detach_device(struct iommu_domain *domain, struct device *dev)
}
EXPORT_SYMBOL_GPL(iommu_detach_device);

int iommu_map_range(struct iommu_domain *domain, unsigned long iova,
phys_addr_t paddr, size_t size, int prot)
{
return iommu_ops->map_range(domain, iova, paddr, size, prot);
}
EXPORT_SYMBOL_GPL(iommu_map_range);

void iommu_unmap_range(struct iommu_domain *domain, unsigned long iova,
size_t size)
{
iommu_ops->unmap_range(domain, iova, size);
}
EXPORT_SYMBOL_GPL(iommu_unmap_range);

phys_addr_t iommu_iova_to_phys(struct iommu_domain *domain,
unsigned long iova)
{
Expand All @@ -119,10 +105,7 @@ int iommu_map(struct iommu_domain *domain, unsigned long iova,

BUG_ON((iova | paddr) & invalid_mask);

if (iommu_ops->map)
return iommu_ops->map(domain, iova, paddr, gfp_order, prot);

return iommu_ops->map_range(domain, iova, paddr, size, prot);
return iommu_ops->map(domain, iova, paddr, gfp_order, prot);
}
EXPORT_SYMBOL_GPL(iommu_map);

Expand All @@ -136,11 +119,6 @@ int iommu_unmap(struct iommu_domain *domain, unsigned long iova, int gfp_order)

BUG_ON(iova & invalid_mask);

if (iommu_ops->unmap)
return iommu_ops->unmap(domain, iova, gfp_order);

iommu_ops->unmap_range(domain, iova, size);

return gfp_order;
return iommu_ops->unmap(domain, iova, gfp_order);
}
EXPORT_SYMBOL_GPL(iommu_unmap);
20 changes: 0 additions & 20 deletions trunk/include/linux/iommu.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,6 @@ struct iommu_ops {
phys_addr_t paddr, int gfp_order, int prot);
int (*unmap)(struct iommu_domain *domain, unsigned long iova,
int gfp_order);
int (*map_range)(struct iommu_domain *domain, unsigned long iova,
phys_addr_t paddr, size_t size, int prot);
void (*unmap_range)(struct iommu_domain *domain, unsigned long iova,
size_t size);
phys_addr_t (*iova_to_phys)(struct iommu_domain *domain,
unsigned long iova);
int (*domain_has_cap)(struct iommu_domain *domain,
Expand All @@ -60,10 +56,6 @@ extern int iommu_attach_device(struct iommu_domain *domain,
struct device *dev);
extern void iommu_detach_device(struct iommu_domain *domain,
struct device *dev);
extern int iommu_map_range(struct iommu_domain *domain, unsigned long iova,
phys_addr_t paddr, size_t size, int prot);
extern void iommu_unmap_range(struct iommu_domain *domain, unsigned long iova,
size_t size);
extern int iommu_map(struct iommu_domain *domain, unsigned long iova,
phys_addr_t paddr, int gfp_order, int prot);
extern int iommu_unmap(struct iommu_domain *domain, unsigned long iova,
Expand Down Expand Up @@ -104,18 +96,6 @@ static inline void iommu_detach_device(struct iommu_domain *domain,
{
}

static inline int iommu_map_range(struct iommu_domain *domain,
unsigned long iova, phys_addr_t paddr,
size_t size, int prot)
{
return -ENODEV;
}

static inline void iommu_unmap_range(struct iommu_domain *domain,
unsigned long iova, size_t size)
{
}

static inline int iommu_map(struct iommu_domain *domain, unsigned long iova,
phys_addr_t paddr, int gfp_order, int prot)
{
Expand Down

0 comments on commit 27b304f

Please sign in to comment.