return rc;
}
-static void put_data_page(
- struct page_info *page, int writeable)
+static void put_data_page(struct page_info *page, bool writeable)
{
if ( writeable )
put_page_and_type(page);
if ( l2e_get_flags(l2e) & _PAGE_PSE )
{
struct page_info *page = l2e_get_page(l2e);
+ bool writeable = l2e_get_flags(l2e) & _PAGE_RW;
unsigned int i;
+ ASSERT(!(mfn_x(page_to_mfn(page)) &
+ ((1UL << (L2_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)));
for ( i = 0; i < (1u << PAGETABLE_ORDER); i++, page++ )
- put_page_and_type(page);
+ put_data_page(page, writeable);
}
else
{
if ( unlikely(l3e_get_flags(l3e) & _PAGE_PSE) )
{
unsigned long mfn = l3e_get_pfn(l3e);
- int writeable = l3e_get_flags(l3e) & _PAGE_RW;
+ bool writeable = l3e_get_flags(l3e) & _PAGE_RW;
ASSERT(!(mfn & ((1UL << (L3_PAGETABLE_SHIFT - PAGE_SHIFT)) - 1)));
do {