From: Roger Pau Monné Date: Tue, 12 Mar 2024 11:08:59 +0000 (+0100) Subject: x86/mm: fix detection of last L1 entry in modify_xen_mappings_lite() X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=1f94117bec55a7b934fed3dfd3529db624eb441f;p=people%2Faperard%2Fxen-unstable.git x86/mm: fix detection of last L1 entry in modify_xen_mappings_lite() The current logic to detect when to switch to the next L1 table is incorrectly using l2_table_offset() in order to notice when the last entry on the current L1 table has been reached. It should instead use l1_table_offset() to check whether the index has wrapped to point to the first entry, and so the next L1 table should be used. Fixes: 8676092a0f16 ('x86/livepatch: Fix livepatch application when CET is active') Signed-off-by: Roger Pau Monné Reviewed-by: Andrew Cooper master commit: 7c81558208de7858251b62f168a449be84305595 master date: 2024-03-11 11:09:42 +0000 --- diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c index e884a6fdbd..330c4abcd1 100644 --- a/xen/arch/x86/mm.c +++ b/xen/arch/x86/mm.c @@ -5963,7 +5963,7 @@ void init_or_livepatch modify_xen_mappings_lite( v += 1UL << L1_PAGETABLE_SHIFT; - if ( l2_table_offset(v) == 0 ) + if ( l1_table_offset(v) == 0 ) break; }