x86/amd-iommu: Change iommu_map_page to support multiple page sizes