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>
master commit:
7c81558208de7858251b62f168a449be84305595
master date: 2024-03-11 11:09:42 +0000
v += 1UL << L1_PAGETABLE_SHIFT;
- if ( l2_table_offset(v) == 0 )
+ if ( l1_table_offset(v) == 0 )
break;
}