diff options
Diffstat (limited to 'arch/powerpc/kernel/iommu.c')
-rw-r--r-- | arch/powerpc/kernel/iommu.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c index 0cfcf98aafca..359f078571c7 100644 --- a/arch/powerpc/kernel/iommu.c +++ b/arch/powerpc/kernel/iommu.c | |||
@@ -39,6 +39,7 @@ | |||
39 | #include <asm/pci-bridge.h> | 39 | #include <asm/pci-bridge.h> |
40 | #include <asm/machdep.h> | 40 | #include <asm/machdep.h> |
41 | #include <asm/kdump.h> | 41 | #include <asm/kdump.h> |
42 | #include <asm/fadump.h> | ||
42 | 43 | ||
43 | #define DBG(...) | 44 | #define DBG(...) |
44 | 45 | ||
@@ -445,7 +446,12 @@ void iommu_unmap_sg(struct iommu_table *tbl, struct scatterlist *sglist, | |||
445 | 446 | ||
446 | static void iommu_table_clear(struct iommu_table *tbl) | 447 | static void iommu_table_clear(struct iommu_table *tbl) |
447 | { | 448 | { |
448 | if (!is_kdump_kernel()) { | 449 | /* |
450 | * In case of firmware assisted dump system goes through clean | ||
451 | * reboot process at the time of system crash. Hence it's safe to | ||
452 | * clear the TCE entries if firmware assisted dump is active. | ||
453 | */ | ||
454 | if (!is_kdump_kernel() || is_fadump_active()) { | ||
449 | /* Clear the table in case firmware left allocations in it */ | 455 | /* Clear the table in case firmware left allocations in it */ |
450 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); | 456 | ppc_md.tce_free(tbl, tbl->it_offset, tbl->it_size); |
451 | return; | 457 | return; |