Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c427c42c authored by David Hildenbrand's avatar David Hildenbrand Committed by Christian Borntraeger
Browse files

s390/mm: don't drop errors in get_guest_storage_key



Commit 1e133ab2 ("s390/mm: split arch/s390/mm/pgtable.c") changed
the return value of get_guest_storage_key to an unsigned char, resulting
in -EFAULT getting interpreted as a valid storage key.

Cc: stable@vger.kernel.org # 4.6+
Reviewed-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: default avatarDavid Hildenbrand <dahi@linux.vnet.ibm.com>
Signed-off-by: default avatarChristian Borntraeger <borntraeger@de.ibm.com>
parent dcc98ea6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -893,7 +893,7 @@ void ptep_zap_key(struct mm_struct *mm, unsigned long addr, pte_t *ptep);
bool test_and_clear_guest_dirty(struct mm_struct *mm, unsigned long address);
int set_guest_storage_key(struct mm_struct *mm, unsigned long addr,
			  unsigned char key, bool nq);
unsigned char get_guest_storage_key(struct mm_struct *mm, unsigned long addr);
unsigned long get_guest_storage_key(struct mm_struct *mm, unsigned long addr);

/*
 * Certain architectures need to do special things when PTEs
+1 −1
Original line number Diff line number Diff line
@@ -543,7 +543,7 @@ int set_guest_storage_key(struct mm_struct *mm, unsigned long addr,
}
EXPORT_SYMBOL(set_guest_storage_key);

unsigned char get_guest_storage_key(struct mm_struct *mm, unsigned long addr)
unsigned long get_guest_storage_key(struct mm_struct *mm, unsigned long addr)
{
	unsigned char key;
	spinlock_t *ptl;