]> xenbits.xensource.com Git - xen.git/commitdiff
x86: don't wrongly trigger linear page table assertion (2)
authorJan Beulich <jbeulich@suse.com>
Tue, 12 Dec 2017 14:07:17 +0000 (15:07 +0100)
committerJan Beulich <jbeulich@suse.com>
Tue, 12 Dec 2017 14:07:17 +0000 (15:07 +0100)
_put_final_page_type(), when free_page_type() has exited early to allow
for preemption, should not update the time stamp, as the page continues
to retain the typ which is in the process of being unvalidated. I can't
see why the time stamp update was put on that path in the first place
(albeit it may well have been me who had put it there years ago).

This is part of XSA-240.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: George Dunlap <george.dunlap.com>
master commit: e40b0219a8c77741ae48989efb520f4a762a5be3
master date: 2017-12-12 14:27:34 +0100

xen/arch/x86/mm.c

index 189ea17c71177d76e1a548cc8f16eafc78bffc49..a79a0ab77555e74b39c02c68a572dd1ce0071678 100644 (file)
@@ -2445,9 +2445,6 @@ static int _put_final_page_type(struct page_info *page, unsigned long type,
     {
         ASSERT((page->u.inuse.type_info &
                 (PGT_count_mask|PGT_validated|PGT_partial)) == 1);
-        if ( !(shadow_mode_enabled(page_get_owner(page)) &&
-               (page->count_info & PGC_page_table)) )
-            page_set_tlbflush_timestamp(page);
         wmb();
         page->u.inuse.type_info |= PGT_validated;
     }