On Sat, Mar 07, 2020 at 14:34:13 +0100, Ard Biesheuvel wrote:
> Last one, I promise :-)
>
> The new ArmMmuLib code is easier to reason about, so that is what I did:
> currently, when we create mappings that cover existing table entries, we
> may end up overwriting those with block entries without taking the mapping
> attributes of the original table entries into account. So let's fix this.
>
> I honestly don't know whether the original code was better at dealing with
> this: I do remember some changes from Heyi that may have been related, but
> the old code is not easy to follow. In any case, I didn't manage to hit this
> case in practice, given that we typically start out with large mappings, and
> break them down later (to set permissions), rather than the other way around.
>
> Patch #1 adds some helpers to hide the insane way the type bits change
> meaning when you change to level 3.
>
> Patch #2 ensures that we only replace (and free) table entries with block
> entries if it is guaranteed that doing so will not lose any attribute
> information.
For the series:
Reviewed-by: Leif Lindholm <leif@nuviainc.com>
Thanks!
> Ard Biesheuvel (2):
> ArmPkg/ArmMmuLib AARCH64: use helpers to determine table entry types
> ArmPkg/ArmMmuLib AARCH64: preserve attributes when replacing a table
> entry
>
> .../Library/ArmMmuLib/AArch64/ArmMmuLibCore.c | 61 ++++++++++++++++---
> 1 file changed, 54 insertions(+), 7 deletions(-)
>
> --
> 2.17.1
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#55688): https://edk2.groups.io/g/devel/message/55688
Mute This Topic: https://groups.io/mt/71795102/1787277
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [importer@patchew.org]
-=-=-=-=-=-=-=-=-=-=-=-