From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6E62FC7EE23 for ; Thu, 8 Jun 2023 19:11:06 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id F295A8E0003; Thu, 8 Jun 2023 15:11:05 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id EFFDE8E0001; Thu, 8 Jun 2023 15:11:05 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id DC8DA8E0003; Thu, 8 Jun 2023 15:11:05 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id CD75C8E0001 for ; Thu, 8 Jun 2023 15:11:05 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id A10F516045F for ; Thu, 8 Jun 2023 19:11:05 +0000 (UTC) X-FDA: 80880523290.25.9FB3FA1 Received: from mail-ot1-f53.google.com (mail-ot1-f53.google.com [209.85.210.53]) by imf14.hostedemail.com (Postfix) with ESMTP id 9FA0D100019 for ; Thu, 8 Jun 2023 19:11:03 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=zI2n2c7O; spf=pass (imf14.hostedemail.com: domain of hughd@google.com designates 209.85.210.53 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1686251463; a=rsa-sha256; cv=none; b=3ZDdUJLSMEPoXGJmVJ8vsE+HFeuFpJhAJ5HSMCL+4k+x7W2Zthd/IK+fE0ZrRlD6zNFSF8 vk+2FlpUiQlOfh7tLjMEgl0Ip7s6sw2UQX7gYO4JZNrPWIftx8SDLyg6yFcuww8ufqRSoN XGxdAA8/kB0UHRCHqFUj0ePdvkJcMPA= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=zI2n2c7O; spf=pass (imf14.hostedemail.com: domain of hughd@google.com designates 209.85.210.53 as permitted sender) smtp.mailfrom=hughd@google.com; dmarc=pass (policy=reject) header.from=google.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1686251463; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=1YvWeTkG3kfP7WDkFLxY3Kk7w85fUEyISH4lFagFGGw=; b=KdsE56mUCj2jf7CAL64Tj6DAWLv23jTglJiOUDtqIjodDJcTe/Sca6zjiygTeflzJ0qU+z m1/6KHhS8w5mmJKs48Q8PmuVG6BVrazW5su1voD4LmR+AdoY2f7/6OhQYtTzA+FEPjjw52 1aPjGvgiHUpxnKllVO3e+ssJ0uaZZt4= Received: by mail-ot1-f53.google.com with SMTP id 46e09a7af769-6af8b25fc72so28243a34.3 for ; Thu, 08 Jun 2023 12:11:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1686251462; x=1688843462; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=1YvWeTkG3kfP7WDkFLxY3Kk7w85fUEyISH4lFagFGGw=; b=zI2n2c7OkddkeoVughk/breFog0Z+EugvTVCVE29AxlIwAuw/EXjuVVrGwHMRC2bhf x0zQuSLbArDGG85kKSwsyOqR0pmFFom/E7xSbaqroxyuObbaGosDK+M/+SoF1AtELCEy bwiSK0YoqwXYs8RFX4mr6F5bpRQfVt01fhKCwqENzESWm7Dhrz7vfiQry977lpQgtzrZ wnC//NTYAzqdTpQsJYqSSYM/JJ1rR9aCAEjxg8RoVlpIwLkFMrqySi29YtVXSpE8PojR NAOs9BLAS5JJ+VzpPEvMOGrhcKbJ9tQKHA0AjGKdBMYv+rB/+u255TZMPygFcoEpIAK5 9xvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1686251462; x=1688843462; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=1YvWeTkG3kfP7WDkFLxY3Kk7w85fUEyISH4lFagFGGw=; b=EBAbGjZsFb4Y9nCegkJ7moFo7qlpNgr+vst9Ru4h8AnGGxBG9XwNsJMiPgDA5jgxlG jOynwfYmoKUWkqkBdavGHZ6T91pRXwAg8iRc6d1dYyqecEfcvSJliD3Nx6RsG5DnqMVO sPpaPp+o1iE7w5lAevMTd1XozG/siUei7jHgis+yQlfIcOppoI0rOrb4yh8z8YjJSJRr ZgTFziDgzu2eGkyhKlYuU834c0rP3fCLF+mXi1dNdTHBEpNgfdjWVVVXVZboFTHY3Vsy v4hOHA70luYML82s40W1qgd79gJzze93Kw45liICrD+XiOkL52zU6XkW+++hzvT4eaOg F4rg== X-Gm-Message-State: AC+VfDwvGvFYhwDd1bzJwIJoAGSTmJkCeMMdWeCzIrSFH8M1FeLUv24M +N4uYCAsZspbGXcEwIHJHJNlFg== X-Google-Smtp-Source: ACHHUZ5JMT1Kov7YopWmoAdbj6VCmy1YpW57EN24ghxD3DbymGPoxfTUoK+9WA1xlwUdsIzRTkW8Cg== X-Received: by 2002:a05:6359:38f:b0:128:7ef8:805f with SMTP id eg15-20020a056359038f00b001287ef8805fmr5080226rwb.6.1686251462249; Thu, 08 Jun 2023 12:11:02 -0700 (PDT) Received: from ripple.attlocal.net (172-10-233-147.lightspeed.sntcca.sbcglobal.net. [172.10.233.147]) by smtp.gmail.com with ESMTPSA id a17-20020a81bb51000000b00545a08184fdsm87881ywl.141.2023.06.08.12.10.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 08 Jun 2023 12:11:01 -0700 (PDT) Date: Thu, 8 Jun 2023 12:10:57 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@ripple.attlocal.net To: Andrew Morton cc: Mike Kravetz , Mike Rapoport , "Kirill A. Shutemov" , Matthew Wilcox , David Hildenbrand , Suren Baghdasaryan , Qi Zheng , Peter Zijlstra , Russell King , Catalin Marinas , Will Deacon , Geert Uytterhoeven , Greg Ungerer , Michal Simek , Thomas Bogendoerfer , Helge Deller , John David Anglin , "Aneesh Kumar K.V" , Michael Ellerman , Alexandre Ghiti , Palmer Dabbelt , Heiko Carstens , Christian Borntraeger , Claudio Imbrenda , Alexander Gordeev , John Paul Adrian Glaubitz , "David S. Miller" , Chris Zankel , Max Filippov , x86@kernel.org, linux-arm-kernel@lists.infradead.org, linux-ia64@vger.kernel.org, linux-m68k@lists.linux-m68k.org, linux-mips@vger.kernel.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH v2 01/23] arm: allow pte_offset_map[_lock]() to fail In-Reply-To: Message-ID: <813429a1-204a-1844-eeae-7fd72826c28@google.com> References: MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspamd-Server: rspam08 X-Rspamd-Queue-Id: 9FA0D100019 X-Stat-Signature: 4p6ekrig3fn98zedqiy38on4pkygnejm X-Rspam-User: X-HE-Tag: 1686251463-422904 X-HE-Meta: U2FsdGVkX18D2DS2XaIgNdqKsuqm3isUuHncYp95jD1+Yuy3cKRJnmiGq04DaYaALcU289bXCjapgGn60p5lo8WCtwBBdp3EC2URKcVeZGVnDpfQtX6ZeE7Ipn7uXQQL+GMdRJBTC4wU+094uLbFTAAjqNfzUuzIDhAx8sRPDSleHVqB7S4PHbHIEEr7sET/kbGHnnY9/pd3D95yOQJgqD8xtZ0+2u2fXEWvOU2Qx/1yAjnlL0otKwdDRw7sB370jvDEpde0DvIu0wJTPdcZxlOZLj+iTR1ekce5qOAZOGcwx6yN32ZlKYBOTchQNreuMwPpPIhYBr5dI4OVV7Hcu4I5VOkHODsRQNRRxjXN7u1trxcanw57dvuPwFeb9XzUGD4a0BsxgjA2y8z9+qNkoIL6FoWTPQqrgShjBtGHW0KRHgKDcbDcFCun47iutyuqIl+a2IZ5T/oARBfCzaGuQQ0nFSvX9XKnljHH3LI7a+duSA8ZNCukmQ10eK/NeXaLgf2oUsgRFWwLOsmdbRQ0Q+qNFWme3pdlmXFMGDOqnrVLGAfD8ZZ7lnQqqiR6YlcN/4N7e1r7LWs2dgpwLOr8/BZx7KqXOM5/s4T1V8j+qiuWFPenLmKgmkoJflJ1SL06vy9h5/zf2iZuG2SH5454JHzWbYDzOqNq1STpUxvTxUg2ua6bVtKUKNoHcuKp4e2HNGHZEibXsh91EllZUsTZpJiwYd2gesB1xoIFJM2M6DYdqvCo4bzGpNUEN4SYRLMEAZBugbX1T1aZ31OMcn9jwCyIH8E55CZhh+KtoVzqQkhisCZn8tQEc4Q7gSpi2hzs+qFTUnMiiz38mX8+pGsKUcdWPod+LpoYle33TDMWtVXHrmf5KE1qDiA6fNBdVfEn/O/meRZWzHctDyWziRNAH36RwKl/4BFg6FzoCkBbL2GX7aOg88EK32pWE3MsFmrhItiWIJP/Iydr+4glrXd 9kYu4uLA uY+pHdoml+6jfsTNexHMSJLwD+d5E72XQh83uhFrz61XyNfRhBkg6+r0yWGQ89DIy2+RhalGdj4q1ISwml9RMYdOKFfxzNC3IoGkS4c9DaVFk/Ks7XF6I0qv5z7TPu1qdcYjbBsAqRqtZKwwliLUoH0Oz1ROEcjbJXVVaXMxrstx0TL3gffJS8pRsGRHlsnTYlRcrvysgRypzjZEKU1YIZxZxAgNPeCFUEUZS23k3Lh3icQ960T8xIZQ7vVEAWa7er4TAcnjBuifOqNnJKCfxbOGf3HxAUAFlnz4ved3vzI1SQBDWkK1WuohaSaQ1xrG2irnVHq36IplxP76ENRN6F+MPQw== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: In rare transient cases, not yet made possible, pte_offset_map() and pte_offset_map_lock() may not find a page table: handle appropriately. Signed-off-by: Hugh Dickins --- arch/arm/lib/uaccess_with_memcpy.c | 3 +++ arch/arm/mm/fault-armv.c | 5 ++++- arch/arm/mm/fault.c | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c index e4c2677cc1e9..2f6163f05e93 100644 --- a/arch/arm/lib/uaccess_with_memcpy.c +++ b/arch/arm/lib/uaccess_with_memcpy.c @@ -74,6 +74,9 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp) return 0; pte = pte_offset_map_lock(current->mm, pmd, addr, &ptl); + if (unlikely(!pte)) + return 0; + if (unlikely(!pte_present(*pte) || !pte_young(*pte) || !pte_write(*pte) || !pte_dirty(*pte))) { pte_unmap_unlock(pte, ptl); diff --git a/arch/arm/mm/fault-armv.c b/arch/arm/mm/fault-armv.c index 0e49154454a6..ca5302b0b7ee 100644 --- a/arch/arm/mm/fault-armv.c +++ b/arch/arm/mm/fault-armv.c @@ -117,8 +117,11 @@ static int adjust_pte(struct vm_area_struct *vma, unsigned long address, * must use the nested version. This also means we need to * open-code the spin-locking. */ - ptl = pte_lockptr(vma->vm_mm, pmd); pte = pte_offset_map(pmd, address); + if (!pte) + return 0; + + ptl = pte_lockptr(vma->vm_mm, pmd); do_pte_lock(ptl); ret = do_adjust_pte(vma, address, pfn, pte); diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c index 2418f1efabd8..83598649a094 100644 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@ -85,6 +85,9 @@ void show_pte(const char *lvl, struct mm_struct *mm, unsigned long addr) break; pte = pte_offset_map(pmd, addr); + if (!pte) + break; + pr_cont(", *pte=%08llx", (long long)pte_val(*pte)); #ifndef CONFIG_ARM_LPAE pr_cont(", *ppte=%08llx", -- 2.35.3