On my arm platform with CONFIG_SPARSEMEM=y, when the virtual address comes from ioremap, which map to a reserved memory region, rproc_va_to_pa returns a invalid address. (no iommu) It's because the corresponding struct page and section not present. And then __page_to_pfn read the page->flags in the returned page which is actually an invalid address. (When CONFIG_SPARSMEM=y && CONFIG_SPARSEMEM_VMEMMAP=n, kernel get the section the page belong to in flags field.) I'm looking for suggestion to properly fix this problem. Could you please give us some suggestion?