Message ID | 552ae7db-9c88-6f6b-aa6-45337d64447f@google.com (mailing list archive) |
---|---|
State | New |
Headers | show
Return-Path: <owner-linux-mm@kvack.org> 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 A251BC77B7C for <linux-mm@archiver.kernel.org>; Wed, 10 May 2023 05:06:02 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 232DA6B0075; Wed, 10 May 2023 01:06:02 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 1BBFD6B0078; Wed, 10 May 2023 01:06:02 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 036296B007B; Wed, 10 May 2023 01:06:01 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id E88B46B0075 for <linux-mm@kvack.org>; Wed, 10 May 2023 01:06:01 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B692716021C for <linux-mm@kvack.org>; Wed, 10 May 2023 05:06:01 +0000 (UTC) X-FDA: 80773158522.03.57B553C Received: from mail-yw1-f175.google.com (mail-yw1-f175.google.com [209.85.128.175]) by imf13.hostedemail.com (Postfix) with ESMTP id F085B20003 for <linux-mm@kvack.org>; Wed, 10 May 2023 05:05:59 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=N0ccCCld; spf=pass (imf13.hostedemail.com: domain of hughd@google.com designates 209.85.128.175 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=1683695160; 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=5V1nU3Kqzs/xawWKyc6+rxjcg3uMlDunTMtenGe5HoU=; b=HBPftqCccRVjgaRyqTZrcCP6knrouiOwA3pnhgoiYWJsYjyoAnsLKnTMQ2Zx3z2xjd4RAw EBSF46eOPD5cP5UPHRSqTXt7NyLbQW1y7ivPAZxpI48vyT/7Yx6LQyl9BFwCWTqsIqy+yD Q4735tELrhPwhiF1JOVVagtL5EvRCSk= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=google.com header.s=20221208 header.b=N0ccCCld; spf=pass (imf13.hostedemail.com: domain of hughd@google.com designates 209.85.128.175 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=1683695160; a=rsa-sha256; cv=none; b=dAqptEtQxdRkn179HoRMYi4dG1aWpBK/1z+cVbbPprQ9wDxG2Cm2kznYyCcQEpyr16bCV4 PHpDtFEJrkNJ38idaXgjanmwphFy6y4kOr/Q97HeIk2V0IkC7PFgyuezFq2EsZ2EUgC4bh iMQp48FPBv/BXquxx6sa4aJUhsl0r3Q= Received: by mail-yw1-f175.google.com with SMTP id 00721157ae682-55a8e9e2c53so64576527b3.1 for <linux-mm@kvack.org>; Tue, 09 May 2023 22:05:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683695159; x=1686287159; h=mime-version:references:message-id:in-reply-to:subject:cc:to:from :date:from:to:cc:subject:date:message-id:reply-to; bh=5V1nU3Kqzs/xawWKyc6+rxjcg3uMlDunTMtenGe5HoU=; b=N0ccCCldJapvDLseC6Ae/gJD9q2DIxAAw3KJfS7S7+Q6UO+MDy+UPXowXV56kKNmBh 3Mokmi2EfuhYkE861agEU1f2+N38vFtBHN3adZPFSiNymcRq542MbJVdXHAXiJKHJj6j PW5BTFVqGg6WFWoU7ktsXhOWcUHvRDHGQ80ER3IipejgH466kSQjsSlWFLeYSYGuMRUz 5wZRydrye3Efl1dYbQY0dngm8iOQ+1rBqJUd0qyj5Y3wp8X11XeCTxr6rq2XWmLrCq9U m9ccZupOhFtmx78yl7pPnJqam79iz8vb7MqRUPeR4jlUG408eYqlsqjsYTCBLZhrcSbS fkRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683695159; x=1686287159; 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=5V1nU3Kqzs/xawWKyc6+rxjcg3uMlDunTMtenGe5HoU=; b=QcfjKZrvj7lkDVVxrt0PhxmPwxFK3SFVclMIGA+gBQdy62in/yQalhshfeCoBKsaF4 C7FMIO7abbvSPrK0bDok0c6zNVz6Jv36t4O73+rjOjhmvYGO1p2ajZADS68dvQnh5Ipo 8RuXFNfz6LbZJIbbctB8lnbuGvAw7/gpjFzS5sWcKH0rsSMlL6puvCSyYqjC2QIuXiTN QEJEKyiMvtQTN8bGPRzg6W13IZ5YUVmVmuoQTKktGtRELy+wFQ3QHXvj1QerYpJwtEym iSyuTACqV+JznHkZGT6GGso1dp+CveMPR9rzFx7eGpVBUw71NoVbqyVCK+hEUqXzW/Q3 g3YQ== X-Gm-Message-State: AC+VfDyuhiIHrWq9TmYoU7nvoR+fmc9YTqDz4DLNnqpGCbDV7o3inGgz 3JLi2mSgY8LlO0blHZN8Vum3fA== X-Google-Smtp-Source: ACHHUZ4VqfeD37+8vGXb4Tz4frVt9EXwydQ25483WjEBunDFIHM7rsDjQYcLcdYu9I7uAgIFi9akfA== X-Received: by 2002:a81:4897:0:b0:55a:e0db:5604 with SMTP id v145-20020a814897000000b0055ae0db5604mr17598841ywa.26.1683695159017; Tue, 09 May 2023 22:05:59 -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 l186-20020a0dc9c3000000b0055d8768408dsm3772359ywd.105.2023.05.09.22.05.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 09 May 2023 22:05:58 -0700 (PDT) Date: Tue, 9 May 2023 22:05:55 -0700 (PDT) From: Hugh Dickins <hughd@google.com> X-X-Sender: hugh@ripple.attlocal.net To: Andrew Morton <akpm@linux-foundation.org> cc: Mike Kravetz <mike.kravetz@oracle.com>, Mike Rapoport <rppt@kernel.org>, "Kirill A. Shutemov" <kirill.shutemov@linux.intel.com>, Matthew Wilcox <willy@infradead.org>, David Hildenbrand <david@redhat.com>, Suren Baghdasaryan <surenb@google.com>, Qi Zheng <zhengqi.arch@bytedance.com>, Russell King <linux@armlinux.org.uk>, Catalin Marinas <catalin.marinas@arm.com>, Will Deacon <will@kernel.org>, Geert Uytterhoeven <geert@linux-m68k.org>, Greg Ungerer <gerg@linux-m68k.org>, Michal Simek <monstr@monstr.eu>, Thomas Bogendoerfer <tsbogend@alpha.franken.de>, Helge Deller <deller@gmx.de>, John David Anglin <dave.anglin@bell.net>, "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>, Michael Ellerman <mpe@ellerman.id.au>, Alexandre Ghiti <alexghiti@rivosinc.com>, Palmer Dabbelt <palmer@dabbelt.com>, Heiko Carstens <hca@linux.ibm.com>, Christian Borntraeger <borntraeger@linux.ibm.com>, Claudio Imbrenda <imbrenda@linux.ibm.com>, John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de>, "David S. Miller" <davem@davemloft.net>, Chris Zankel <chris@zankel.net>, Max Filippov <jcmvbkbc@gmail.com>, 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 19/23] sparc: allow pte_offset_map() to fail In-Reply-To: <77a5d8c-406b-7068-4f17-23b7ac53bc83@google.com> Message-ID: <552ae7db-9c88-6f6b-aa6-45337d64447f@google.com> References: <77a5d8c-406b-7068-4f17-23b7ac53bc83@google.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: F085B20003 X-Stat-Signature: aat9z69fqnj5iaq8hnhkxqqq3knicq4c X-HE-Tag: 1683695159-686234 X-HE-Meta: U2FsdGVkX1+R2Ukt4lvfGjAsi/epYzrHvlG/u8ese55kClwTzv1mwoF12VEjEdXs8v/dwLMgUq5Ei/C2xWcGMbwRKI13aTiOv/bXw2jL5BDo7clzXkUD+z+e6/KQ+QyADhNcDs+zK8m8FcguqRDclqWnoOLi8c7jBXz3U7nL9St9A/AFJcQrxPBdKL58ZYbEJ8ILwoY/7YQiCc018qiPSqEMtNq+8OSx2OB6/3qCDgw6AGim+ihEqH/P5hwgAD+jG1IkXB+P6Pue9yJbC1pYTAz8pthcJGiwea9kHTxwvbiGUz9xokkD7OWswk436dSpqz+4HI+vB1zsjdq4Y6kU81RKZhQKTWF+eB15DFp9M3OtPso1O+I6oCrs+UB68RrUKVsh1Xj5NO6rurJiHdDrLP6sT1y7+/ICQHROUWXbgWl8inr1P6+lmYf2vk+jerWFnTDA+St6p0K11EdryTbu5AHfhZWekgxQCIkYK18OannW1ZRIQpCv5UAxdE+s11VeSr20Vo7uVTIzOh+ml+om7Dz8mwXOjI69XuJOGfTFRIj1wxm7z+FDtGvgvhcnALiQlIYYzmkbrWcH2F+kfs6rU92HQaeGqslj3MO7o57UYYRs1XbN3BZhWzZX/r/wC8it7n4+RNWgn0p30SuWpOlITm66OXP2IawA3WzAWIgvwNWV0m4RXhfsUDtLeYEAuKn2JRBc8c3I6Jw7MXZ6WHlcZ/jxtj2fdiA1Hw/Oc9jAqGZ6edGpNI0z8D+qN8TMNtRedtmZCnZguBYvt1bvxJ6eJms455HDsFUTqECoN7BbfvuOLK/098X5LUg+QOm1C6yxQ36cp1xEDAlwf1w7O6hEwNu4qAKiA//FCWOQq+l0YaTCzWNEjRTDyEY3Ds0LZjoda6TZFr9Dcqv3x1zllQQuC6oRtZUBldY0K1lfL6Tpgn2KeVwCgO/72DCt3qT6k3ptZJbSbO0/2yeqppuIL/M qUPmTuei 9DKocdGNrR3pHjDZfCojliDAgRk7S6W+7pLGKJpqBZUCzQeIBhqFnKhLlczyNAetnXhPk1XS2uxzywxzJtxTRtZGqUtwLumYL3M/tVJB6ctE1/OtH40hRKHDnd0z5Rux+g5ro+nPuzw2knYlcFGKFZWVX3kPnVkC15UZHdqLbehhHIX9/W62VwAvpnUDRj5UDbqlZktgdAfYlbWvUSJJkkIgCFp6eavaUwhW5Wmg8PzcEQWUYo2RoMqc8aDx7ZX+sQD0UkSBdYYTrVF1+aMGc4M1+hUaXhKnwXtjAIwXzmRSPxLlr1KEWKa/kJqMyBvEQU08FwMQkoHpgM5Zzv4DFuFXbeVu4eRZw7aJ1E39Zhc+N6DhfAJ+wCueX1+NBzixll5AAK0spDKbZhuRr3DQY6wWw7Nq3zh/ON/Erg4lh0uklLrm4cp/+O7/lZg== 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: <linux-mm.kvack.org> |
Series |
arch: allow pte_offset_map[_lock]() to fail
|
expand
|
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c index dad38960d1a8..ca450c7bc53f 100644 --- a/arch/sparc/kernel/signal32.c +++ b/arch/sparc/kernel/signal32.c @@ -328,6 +328,8 @@ static void flush_signal_insns(unsigned long address) goto out_irqs_on; ptep = pte_offset_map(pmdp, address); + if (!ptep) + goto out_irqs_on; pte = *ptep; if (!pte_present(pte)) goto out_unmap; diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c index d91305de694c..d8a407fbe350 100644 --- a/arch/sparc/mm/fault_64.c +++ b/arch/sparc/mm/fault_64.c @@ -99,6 +99,7 @@ static unsigned int get_user_insn(unsigned long tpc) local_irq_disable(); pmdp = pmd_offset(pudp, tpc); +again: if (pmd_none(*pmdp) || unlikely(pmd_bad(*pmdp))) goto out_irq_enable; @@ -115,6 +116,8 @@ static unsigned int get_user_insn(unsigned long tpc) #endif { ptep = pte_offset_map(pmdp, tpc); + if (!ptep) + goto again; pte = *ptep; if (pte_present(pte)) { pa = (pte_pfn(pte) << PAGE_SHIFT); diff --git a/arch/sparc/mm/tlb.c b/arch/sparc/mm/tlb.c index 9a725547578e..7ecf8556947a 100644 --- a/arch/sparc/mm/tlb.c +++ b/arch/sparc/mm/tlb.c @@ -149,6 +149,8 @@ static void tlb_batch_pmd_scan(struct mm_struct *mm, unsigned long vaddr, pte_t *pte; pte = pte_offset_map(&pmd, vaddr); + if (!pte) + return; end = vaddr + HPAGE_SIZE; while (vaddr < end) { if (pte_val(*pte) & _PAGE_VALID) {
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 <hughd@google.com> --- arch/sparc/kernel/signal32.c | 2 ++ arch/sparc/mm/fault_64.c | 3 +++ arch/sparc/mm/tlb.c | 2 ++ 3 files changed, 7 insertions(+)