diff --git a/arch/s390/mm/gmap.c b/arch/s390/mm/gmap.c
index 19ee8355b2a7f3e6fb060f97b9aa35e5abb1b4e7..5c41d1ab2a6224d269f06ebff563012e080bbd86 100644
--- a/arch/s390/mm/gmap.c
+++ b/arch/s390/mm/gmap.c
@@ -2610,7 +2610,7 @@ static int __s390_enable_skey_hugetlb(pte_t *pte, unsigned long addr,
 		return 0;
 
 	start = pmd_val(*pmd) & HPAGE_MASK;
-	end = start + HPAGE_SIZE - 1;
+	end = start + HPAGE_SIZE;
 	__storage_key_init_range(start, end);
 	set_bit(PG_arch_1, &page->flags);
 	cond_resched();