瀏覽代碼

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>
Christian Borntraeger 12 年之前
父節點
當前提交
e86cbd8765
共有 1 個文件被更改,包括 1 次插入1 次删除
  1. 1 1
      arch/s390/mm/pgtable.c

+ 1 - 1
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;
 	mp = (struct gmap_pgtable *) page->index;
 	rmap->gmap = gmap;
 	rmap->gmap = gmap;
 	rmap->entry = segment_ptr;
 	rmap->entry = segment_ptr;
-	rmap->vmaddr = address;
+	rmap->vmaddr = address & PMD_MASK;
 	spin_lock(&mm->page_table_lock);
 	spin_lock(&mm->page_table_lock);
 	if (*segment_ptr == segment) {
 	if (*segment_ptr == segment) {
 		list_add(&rmap->list, &mp->mapper);
 		list_add(&rmap->list, &mp->mapper);