From: "Ashish Singhal" <ashishsingha@nvidia.com>
To: Ard Biesheuvel <ard.biesheuvel@linaro.org>,
"devel@edk2.groups.io" <devel@edk2.groups.io>
Cc: Laszlo Ersek <lersek@redhat.com>, Leif Lindholm <leif@nuviainc.com>
Subject: Re: [PATCH v3 0/3] ArmPkg/ArmMmuLib AARCH64: correctness fix
Date: Wed, 25 Mar 2020 15:48:26 +0000 [thread overview]
Message-ID: <MW3PR12MB4457146698CD2CC5A884A82CBACE0@MW3PR12MB4457.namprd12.prod.outlook.com> (raw)
In-Reply-To: <20200325152940.1492-1-ard.biesheuvel@linaro.org>
[-- Attachment #1: Type: text/plain, Size: 2970 bytes --]
Patch set version 3 looks good to me. I have reviewed and tested the changes locally.
Reviewed-by: Ashish Singhal <ashishsingha@nvidia.com>
Tested-by: Ashish Singhal <ashishsingha@nvidia.com>
Thanks
Ashish
________________________________
From: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Sent: Wednesday, March 25, 2020 9:29 AM
To: devel@edk2.groups.io <devel@edk2.groups.io>
Cc: Ard Biesheuvel <ard.biesheuvel@linaro.org>; Laszlo Ersek <lersek@redhat.com>; Leif Lindholm <leif@nuviainc.com>; Ashish Singhal <ashishsingha@nvidia.com>
Subject: [PATCH v3 0/3] ArmPkg/ArmMmuLib AARCH64: correctness fix
External email: Use caution opening links or attachments
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.
Changes since v2:
- add patch to limit recursion to levels < 3 in FreePageTablesRecursive()
Changes since v1:
- zero newly allocated pages before splitting a block entry into a table
entry, to avoid garbage in that page being misidentified as entry type
attributes - this should fix the crash observed by Laszlo
Cc: Laszlo Ersek <lersek@redhat.com>
Cc: Leif Lindholm <leif@nuviainc.com>
Cc: Ashish Singhal <ashishsingha@nvidia.com>
Ard Biesheuvel (3):
ArmPkg/ArmMmuLib AARCH64: limit recursion when freeing page tables
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 | 83 +++++++++++++++----
1 file changed, 68 insertions(+), 15 deletions(-)
--
2.17.1
-----------------------------------------------------------------------------------
This email message is for the sole use of the intended recipient(s) and may contain
confidential information. Any unauthorized review, use, disclosure or distribution
is prohibited. If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
-----------------------------------------------------------------------------------
[-- Attachment #2: Type: text/html, Size: 5360 bytes --]
next prev parent reply other threads:[~2020-03-25 15:48 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-25 15:29 [PATCH v3 0/3] ArmPkg/ArmMmuLib AARCH64: correctness fix Ard Biesheuvel
2020-03-25 15:29 ` [PATCH v3 1/3] ArmPkg/ArmMmuLib AARCH64: limit recursion when freeing page tables Ard Biesheuvel
2020-03-25 15:47 ` Ashish Singhal
2020-03-26 10:22 ` Leif Lindholm
2020-03-26 10:25 ` Ard Biesheuvel
2020-03-25 15:29 ` [PATCH v3 2/3] ArmPkg/ArmMmuLib AARCH64: use helpers to determine table entry types Ard Biesheuvel
2020-03-25 15:47 ` Ashish Singhal
2020-03-25 15:29 ` [PATCH v3 3/3] ArmPkg/ArmMmuLib AARCH64: preserve attributes when replacing a table entry Ard Biesheuvel
2020-03-25 15:47 ` Ashish Singhal
2020-03-25 15:48 ` Ashish Singhal [this message]
2020-03-25 19:49 ` [edk2-devel] [PATCH v3 0/3] ArmPkg/ArmMmuLib AARCH64: correctness fix Laszlo Ersek
2020-03-26 10:35 ` Ard Biesheuvel
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=MW3PR12MB4457146698CD2CC5A884A82CBACE0@MW3PR12MB4457.namprd12.prod.outlook.com \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox