Index: kernel/generic/src/mm/as.c
===================================================================
--- kernel/generic/src/mm/as.c	(revision d078c9b9277b96156dc1b4fb5c5d262a25f198d5)
+++ kernel/generic/src/mm/as.c	(revision 560b81c47c7bd8b84ad01838e371562b523c1123)
@@ -1457,14 +1457,12 @@
 	pte_t pte;
 	bool found = page_mapping_find(AS, page, false, &pte);
-	if (found) {
-		if (PTE_PRESENT(&pte)) {
-			if (((access == PF_ACCESS_READ) && PTE_READABLE(&pte)) ||
-			    (access == PF_ACCESS_WRITE && PTE_WRITABLE(&pte)) ||
-			    (access == PF_ACCESS_EXEC && PTE_EXECUTABLE(&pte))) {
-				page_table_unlock(AS, false);
-				mutex_unlock(&area->lock);
-				mutex_unlock(&AS->lock);
-				return AS_PF_OK;
-			}
+	if (found && PTE_PRESENT(&pte)) {
+		if (((access == PF_ACCESS_READ) && PTE_READABLE(&pte)) ||
+		    (access == PF_ACCESS_WRITE && PTE_WRITABLE(&pte)) ||
+		    (access == PF_ACCESS_EXEC && PTE_EXECUTABLE(&pte))) {
+			page_table_unlock(AS, false);
+			mutex_unlock(&area->lock);
+			mutex_unlock(&AS->lock);
+			return AS_PF_OK;
 		}
 	}
Index: kernel/generic/src/mm/page.c
===================================================================
--- kernel/generic/src/mm/page.c	(revision d078c9b9277b96156dc1b4fb5c5d262a25f198d5)
+++ kernel/generic/src/mm/page.c	(revision 560b81c47c7bd8b84ad01838e371562b523c1123)
@@ -142,5 +142,6 @@
  * @param[out] pte Structure that will receive a copy of the found PTE.
  *
- * @return True if the mapping was found, false otherwise.
+ * @return True if a valid PTE is returned, false otherwise. Note that
+ *         the PTE is not guaranteed to be present.
  */
 NO_TRACE bool page_mapping_find(as_t *as, uintptr_t page, bool nolock,
