Currently, the MFN will be incremented even if it is invalid. This will
result to have a valid MFN after the first iteration.
While this is not a major problem today, this will be in the future if
the code expect an invalid MFN at every iteration.
Such behavior is prevented by avoiding to increment an invalid MFN.
Signed-off-by: Julien Grall <julien.grall@arm.com>
Reviewed-by: Andrii Anisov <andrii_anisov@epam.com>
Acked-by: Stefano Stabellini <sstabellini@kernel.org>
spin_lock(&xen_pt_lock);
- for(; addr < addr_end; addr += PAGE_SIZE, mfn = mfn_add(mfn, 1))
+ for( ; addr < addr_end; addr += PAGE_SIZE )
{
rc = xen_pt_update_entry(op, addr, mfn, flags);
if ( rc )
break;
+
+ if ( !mfn_eq(mfn, INVALID_MFN) )
+ mfn = mfn_add(mfn, 1);
}
/*