File 65eee676-x86-mm-last-L1e-detection-in-mxml.patch of Package xen.33142
# Commit 7c81558208de7858251b62f168a449be84305595
# Date 2024-03-11 11:09:42 +0000
# Author Roger Pau Monne <roger.pau@citrix.com>
# Committer Andrew Cooper <andrew.cooper3@citrix.com>
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é <roger.pau@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
--- a/xen/arch/x86/mm.c
+++ b/xen/arch/x86/mm.c
@@ -5963,7 +5963,7 @@ void init_or_livepatch modify_xen_mappin
v += 1UL << L1_PAGETABLE_SHIFT;
- if ( l2_table_offset(v) == 0 )
+ if ( l1_table_offset(v) == 0 )
break;
}