/* clear PDEs */
pd = page_address(as->pd);
- SetPageReserved(as->pd);
for (i = 0; i < SMMU_NUM_PDE; i++)
pd[i] = 0;
struct tegra_smmu_as *as = to_smmu_as(domain);
/* TODO: free page directory and page tables */
- ClearPageReserved(as->pd);
kfree(as);
}
as->pts[pde] = page;
- SetPageReserved(page);
-
pd[pde] = SMMU_MK_PDE(dma, SMMU_PDE_ATTR | SMMU_PDE_NEXT);
dma_sync_single_range_for_device(smmu->dev, as->pd_dma,
/* Finally, free the page */
dma_unmap_page(smmu->dev, pte_dma, SMMU_SIZE_PT, DMA_TO_DEVICE);
- ClearPageReserved(page);
__free_page(page);
as->pts[pde] = NULL;
}