summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Borntraeger <borntraeger@de.ibm.com>2013-05-29 13:08:39 +0200
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2013-05-31 17:23:53 +0200
commite86cbd8765bd2e1f9eeb209822449c9b1e5958cf (patch)
treeb9cc9f2bb71a890d4661d852304d13d522cff808
parents390/dasd: fix handling of gone paths (diff)
downloadlinux-e86cbd8765bd2e1f9eeb209822449c9b1e5958cf.tar.xz
linux-e86cbd8765bd2e1f9eeb209822449c9b1e5958cf.zip
s390/pgtable: Fix gmap notifier address
The address of the gmap notifier was broken, resulting in unhandled validity intercepts in KVM. Fix the rmap->vmaddr to be on a segment boundary. Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
-rw-r--r--arch/s390/mm/pgtable.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
index 18dc417aaf79..a938b548f07e 100644
--- a/arch/s390/mm/pgtable.c
+++ b/arch/s390/mm/pgtable.c
@@ -492,7 +492,7 @@ static int gmap_connect_pgtable(unsigned long address, unsigned long segment,
mp = (struct gmap_pgtable *) page->index;
rmap->gmap = gmap;
rmap->entry = segment_ptr;
- rmap->vmaddr = address;
+ rmap->vmaddr = address & PMD_MASK;
spin_lock(&mm->page_table_lock);
if (*segment_ptr == segment) {
list_add(&rmap->list, &mp->mapper);