s390x/mmu: Fix the check for the real-space designation bit
The real-space designation bits live in the ASCEs, not in the table entries, so the check must be done before we start walking the MMU table. Signed-off-by: Thomas Huth <thuth@linux.vnet.ibm.com> Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> Reviewed-by: David Hildenbrand <dahi@linux.vnet.ibm.com> Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
This commit is contained in:
parent
dfebd7a7a9
commit
89a41e0a37
@ -180,13 +180,6 @@ static int mmu_translate_asce(CPUS390XState *env, target_ulong vaddr,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (asce & _ASCE_REAL_SPACE) {
|
||||
/* direct mapping */
|
||||
|
||||
*raddr = vaddr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
origin = asce & _ASCE_ORIGIN;
|
||||
|
||||
switch (level) {
|
||||
@ -252,6 +245,12 @@ static int mmu_translate_asc(CPUS390XState *env, target_ulong vaddr,
|
||||
break;
|
||||
}
|
||||
|
||||
if (asce & _ASCE_REAL_SPACE) {
|
||||
/* direct mapping */
|
||||
*raddr = vaddr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
switch (asce & _ASCE_TYPE_MASK) {
|
||||
case _ASCE_TYPE_REGION1:
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user