For full pages this is (meant to be) more efficient. Also change the
type and reduce the scope of the involved local variable.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
uint64_t alloc_pgtable_maddr(unsigned long npages, nodeid_t node)
{
struct page_info *pg, *cur_pg;
- u64 *vaddr;
unsigned int i;
pg = alloc_domheap_pages(NULL, get_order_from_pages(npages),
cur_pg = pg;
for ( i = 0; i < npages; i++ )
{
- vaddr = __map_domain_page(cur_pg);
- memset(vaddr, 0, PAGE_SIZE);
+ void *vaddr = __map_domain_page(cur_pg);
+
+ clear_page(vaddr);
if ( (iommu_ops.init ? &iommu_ops : &vtd_ops)->sync_cache )
sync_cache(vaddr, PAGE_SIZE);