From: Jan Beulich Date: Tue, 12 Dec 2017 13:27:34 +0000 (+0100) Subject: x86: don't wrongly trigger linear page table assertion (2) X-Git-Tag: archive/raspbian/4.11.1-1+rpi1~1^2~66^2~943 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=e40b0219a8c77741ae48989efb520f4a762a5be3;p=xen.git x86: don't wrongly trigger linear page table assertion (2) _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 Tested-by: Andrew Cooper Reviewed-by: George Dunlap --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index e919956919..0daedec10d 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -2436,7 +2436,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); - set_tlbflush_timestamp(page); smp_wmb(); page->u.inuse.type_info |= PGT_validated; }