On 20/08/2021 13.39, Janosch Frank wrote:
UV home addresses don't require us to be in home space but we need to
have it set up so hw/fw can use the home asce to translate home
virtual addresses.
Hence we add a comment why we're setting up the home asce and remove
the address space since it's unneeded.
Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx>
Reviewed-by: Claudio Imbrenda <imbrenda@xxxxxxxxxxxxx>
---
s390x/uv-host.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/s390x/uv-host.c b/s390x/uv-host.c
index 426a67f6..28035707 100644
--- a/s390x/uv-host.c
+++ b/s390x/uv-host.c
@@ -444,13 +444,18 @@ static void test_clear(void)
static void setup_vmem(void)
{
- uint64_t asce, mask;
+ uint64_t asce;
setup_mmu(get_max_ram_size(), NULL);
+ /*
+ * setup_mmu() will enable DAT and set the primary address
+ * space but we need to have a valid home space since UV calls
+ * take home space virtual addresses.
+ *
+ * Hence we just copy the primary asce into the home space.
+ */
asce = stctg(1);
lctlg(13, asce);
- mask = extract_psw_mask() | 0x0000C00000000000UL;
- load_psw_mask(mask);
}
int main(void)
Acked-by: Thomas Huth <thuth@xxxxxxxxxx>