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]]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to