diff options
| -rw-r--r-- | arch/powerpc/kernel/iommu.c | 21 |
1 files changed, 1 insertions, 20 deletions
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index c42219c0afda..8f1f4e539c4b 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c | |||
| @@ -453,9 +453,6 @@ void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, | |||
| 453 | struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) | 453 | struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) |
| 454 | { | 454 | { |
| 455 | unsigned long sz; | 455 | unsigned long sz; |
| 456 | unsigned long start_index, end_index; | ||
| 457 | unsigned long entries_per_4g; | ||
| 458 | unsigned long index; | ||
| 459 | static int welcomed = 0; | 456 | static int welcomed = 0; |
| 460 | struct page *page; | 457 | struct page *page; |
| 461 | 458 | ||
| @@ -477,6 +474,7 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) | |||
| 477 | 474 | ||
| 478 | #ifdef CONFIG_CRASH_DUMP | 475 | #ifdef CONFIG_CRASH_DUMP |
| 479 | if (ppc_md.tce_get) { | 476 | if (ppc_md.tce_get) { |
| 477 | unsigned long index; | ||
| 480 | unsigned long tceval; | 478 | unsigned long tceval; |
| 481 | unsigned long tcecount = 0; | 479 | unsigned long tcecount = 0; |
| 482 | 480 | ||
| @@ -507,23 +505,6 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid) | |||
| 507 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); | 505 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); |
| 508 | #endif | 506 | #endif |
| 509 | 507 | ||
| 510 | /* | ||
| 511 | * DMA cannot cross 4 GB boundary. Mark last entry of each 4 | ||
| 512 | * GB chunk as reserved. | ||
| 513 | */ | ||
| 514 | if (protect4gb) { | ||
| 515 | entries_per_4g = 0x100000000l >> IOMMU_PAGE_SHIFT; | ||
| 516 | |||
| 517 | /* Mark the last bit before a 4GB boundary as used */ | ||
| 518 | start_index = tbl->it_offset | (entries_per_4g - 1); | ||
| 519 | start_index -= tbl->it_offset; | ||
| 520 | |||
| 521 | end_index = tbl->it_size; | ||
| 522 | |||
| 523 | for (index = start_index; index < end_index - 1; index += entries_per_4g) | ||
| 524 | __set_bit(index, tbl->it_map); | ||
| 525 | } | ||
| 526 | |||
| 527 | if (!welcomed) { | 508 | if (!welcomed) { |
| 528 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", | 509 | printk(KERN_INFO "IOMMU table initialized, virtual merging %s\n", |
| 529 | novmerge ? "disabled" : "enabled"); | 510 | novmerge ? "disabled" : "enabled"); |
