[edk2-devel] [PATCH 0/2] ArmPkg/ArmMmuLib AARCH64: correctness fix

Ard Biesheuvel posted 2 patches 4 years, 1 month ago
Failed in applying to current master (apply log)
There is a newer version of this series
.../Library/ArmMmuLib/AArch64/ArmMmuLibCore.c | 61 ++++++++++++++++---
1 file changed, 54 insertions(+), 7 deletions(-)
[edk2-devel] [PATCH 0/2] ArmPkg/ArmMmuLib AARCH64: correctness fix
Posted by Ard Biesheuvel 4 years, 1 month ago
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.

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 (#55643): https://edk2.groups.io/g/devel/message/55643
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]
-=-=-=-=-=-=-=-=-=-=-=-

Re: [edk2-devel] [PATCH 0/2] ArmPkg/ArmMmuLib AARCH64: correctness fix
Posted by Leif Lindholm 4 years, 1 month ago
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]
-=-=-=-=-=-=-=-=-=-=-=-