break;
case EVENT_SYSMMU_IOMMU_ALLOCSLPD:
case EVENT_SYSMMU_IOMMU_FREESLPD:
- seq_printf(s, " @ %#010x\n", log->eventdata.addr);
+ seq_printf(s, " @ [iova:%#010x, entry:%#010x)\n",
+ log->eventdata.range.start,
+ log->eventdata.range.end);
break;
case EVENT_SYSMMU_TLB_INV_RANGE:
case EVENT_SYSMMU_IOMMU_UNMAP:
DEFINE_SYSMMU_EVENT_LOG(POWERON)
DEFINE_SYSMMU_EVENT_LOG(POWEROFF)
-DEFINE_SYSMMU_EVENT_LOG_1ADDR(IOMMU_ALLOCSLPD)
-DEFINE_SYSMMU_EVENT_LOG_1ADDR(IOMMU_FREESLPD)
+DEFINE_SYSMMU_EVENT_LOG_2ADDR(IOMMU_ALLOCSLPD)
+DEFINE_SYSMMU_EVENT_LOG_2ADDR(IOMMU_FREESLPD)
DEFINE_SYSMMU_EVENT_LOG_2ADDR(TLB_INV_RANGE)
DEFINE_SYSMMU_EVENT_LOG_2ADDR(IOMMU_UNMAP)
pgtable_flush(pent, pent + NUM_LV2ENTRIES);
pgtable_flush(sent, sent + 1);
SYSMMU_EVENT_LOG_IOMMU_ALLOCSLPD(IOMMU_PRIV_TO_LOG(domain),
- iova & SECT_MASK);
+ iova & SECT_MASK, *sent);
} else {
/* Pre-allocated entry is not used, so free it. */
kmem_cache_free(lv2table_kmem_cache, pent);
kmem_cache_free(lv2table_kmem_cache,
page_entry(sent, 0));
atomic_set(lv2entcnt, 0);
- *sent = 0;
SYSMMU_EVENT_LOG_IOMMU_FREESLPD(
- IOMMU_PRIV_TO_LOG(domain),
- iova_from_sent(domain->pgtable, sent));
+ IOMMU_PRIV_TO_LOG(domain),
+ iova_from_sent(domain->pgtable, sent), *sent);
+
+ *sent = 0;
}
spin_unlock_irqrestore(&domain->pgtablelock, flags);
}