On Thu, 1 Jun 2023 at 09:57, Gerd Hoffmann <[email protected]> wrote:
>
> Older linux kernels have problems with phys-bits larger than 46,
> ubuntu 18.04 (kernel 4.15) has been reported to be affected.
>
> Reduce phys-bits limit from 47 to 46.
>
> Reported-by: Fiona Ebner <[email protected]>
> Signed-off-by: Gerd Hoffmann <[email protected]>
Thanks I'll queue this up
> ---
> OvmfPkg/Library/PlatformInitLib/MemDetect.c | 9 ++++++---
> 1 file changed, 6 insertions(+), 3 deletions(-)
>
> diff --git a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
> b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
> index 1102b00ecbf0..662e7e85bbc5 100644
> --- a/OvmfPkg/Library/PlatformInitLib/MemDetect.c
> +++ b/OvmfPkg/Library/PlatformInitLib/MemDetect.c
> @@ -646,16 +646,19 @@ PlatformAddressWidthFromCpuid (
> ));
>
> if (Valid) {
> - if (PhysBits > 47) {
> + if (PhysBits > 46) {
> /*
> * Avoid 5-level paging altogether for now, which limits
> * PhysBits to 48. Also avoid using address bit 48, due to sign
> * extension we can't identity-map these addresses (and lots of
> * places in edk2 assume we have everything identity-mapped).
> * So the actual limit is 47.
> + *
> + * Also some older linux kernels apparently have problems handling
> + * phys-bits > 46 correctly, so use that as limit.
> */
> - DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 47 (avoid 5-level
> paging)\n", __func__));
> - PhysBits = 47;
> + DEBUG ((DEBUG_INFO, "%a: limit PhysBits to 46 (avoid 5-level
> paging)\n", __func__));
> + PhysBits = 46;
> }
>
> if (!Page1GSupport && (PhysBits > 40)) {
> --
> 2.40.1
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#105540): https://edk2.groups.io/g/devel/message/105540
Mute This Topic: https://groups.io/mt/99259506/21656
Group Owner: [email protected]
Unsubscribe: https://edk2.groups.io/g/devel/unsub [[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-