diff options
author | Dominik Dingel <dingel@linux.vnet.ibm.com> | 2014-10-15 09:29:01 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2014-10-27 08:27:29 -0400 |
commit | 6972cae523de728ad5e8dae01da4a631d98b874c (patch) | |
tree | 0da345f590cd16d51d4880fab91d252135b80533 /arch/s390/mm | |
parent | 7a5388de5c70f7a92de71e03ce72692c1827d162 (diff) |
s390/mm: missing pte for gmap_ipte_notify should trigger a VM_BUG
After fixup_user_fault does not fail we have a writeable pte.
That pte might transform but it should not vanish.
Signed-off-by: Dominik Dingel <dingel@linux.vnet.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/mm')
-rw-r--r-- | arch/s390/mm/pgtable.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c index b1871d39e46e..9c8a6dd8a49c 100644 --- a/arch/s390/mm/pgtable.c +++ b/arch/s390/mm/pgtable.c | |||
@@ -752,8 +752,7 @@ int gmap_ipte_notify(struct gmap *gmap, unsigned long gaddr, unsigned long len) | |||
752 | break; | 752 | break; |
753 | /* Walk the process page table, lock and get pte pointer */ | 753 | /* Walk the process page table, lock and get pte pointer */ |
754 | ptep = get_locked_pte(gmap->mm, addr, &ptl); | 754 | ptep = get_locked_pte(gmap->mm, addr, &ptl); |
755 | if (unlikely(!ptep)) | 755 | VM_BUG_ON(!ptep); |
756 | continue; | ||
757 | /* Set notification bit in the pgste of the pte */ | 756 | /* Set notification bit in the pgste of the pte */ |
758 | entry = *ptep; | 757 | entry = *ptep; |
759 | if ((pte_val(entry) & (_PAGE_INVALID | _PAGE_PROTECT)) == 0) { | 758 | if ((pte_val(entry) & (_PAGE_INVALID | _PAGE_PROTECT)) == 0) { |