s390/pgtable: Fix gmap notifier address
authorChristian Borntraeger <borntraeger@de.ibm.com>
Wed, 29 May 2013 11:08:39 +0000 (13:08 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 31 May 2013 15:23:53 +0000 (17:23 +0200)
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>
arch/s390/mm/pgtable.c

index 18dc417aaf79dfc99bd17c48f427bda08ccb6fc5..a938b548f07e2d18c5510dbe99e47cdf231265a8 100644 (file)
@@ -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);