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 AADE3CD1284 for ; Thu, 11 Apr 2024 09:59:32 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4319C6B0098; Thu, 11 Apr 2024 05:59:32 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 3BA3B6B0099; Thu, 11 Apr 2024 05:59:32 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 25AF36B009A; Thu, 11 Apr 2024 05:59:32 -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 F308D6B0098 for ; Thu, 11 Apr 2024 05:59:31 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A533CA0B1D for ; Thu, 11 Apr 2024 09:59:31 +0000 (UTC) X-FDA: 81996803742.12.A4063A5 Received: from sin.source.kernel.org (sin.source.kernel.org [145.40.73.55]) by imf26.hostedemail.com (Postfix) with ESMTP id 8B4F7140005 for ; Thu, 11 Apr 2024 09:59:29 +0000 (UTC) Authentication-Results: imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1712829570; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=UN6tlmEZrl+nF+S91XKHrsUMAPtHxi+2Eq5oEAly4Ts=; b=t3FsX2RCtKV8WrdHyt9fZ0EIbYmD1BtTFJ58RY7WndzktmdH0GmE6jsl0zVCAAucc27Kts cK/FURUTt80PQyCmV/7PN0eTISGVMVE2aAbq1KK4jM/KwspyhIcW0zFm9VUHKs1CCISPsH gI3YltojsV+bXwF6MYyIX7cMjwnMxEk= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1712829570; a=rsa-sha256; cv=none; b=bmh6s48Yyul7DY2bnpV32wvzJ/WW/k1ZzvjkNZpYsRr9x1pdojRxOiMfTqtpjdHxUCvkEU Kga6daRHDVLQY8K6fxdlH6cuOLhdMchhTw288pkZvZrQNsCRDxoFyhssRXzXNeZKrOY3vM Ouso2rG77DF/aWg/LlZMKeGsbhxIB78= ARC-Authentication-Results: i=1; imf26.hostedemail.com; dkim=none; spf=pass (imf26.hostedemail.com: domain of cmarinas@kernel.org designates 145.40.73.55 as permitted sender) smtp.mailfrom=cmarinas@kernel.org; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=arm.com (policy=none) Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by sin.source.kernel.org (Postfix) with ESMTP id 904CECE2FC1; Thu, 11 Apr 2024 09:59:25 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 804BFC433C7; Thu, 11 Apr 2024 09:59:23 +0000 (UTC) Date: Thu, 11 Apr 2024 10:59:21 +0100 From: Catalin Marinas To: Kefeng Wang Cc: Andrew Morton , Russell King , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-mm@kvack.org Subject: Re: [PATCH 1/2] arm64: mm: drop VM_FAULT_BADMAP/VM_FAULT_BADACCESS Message-ID: References: <20240407081211.2292362-1-wangkefeng.wang@huawei.com> <20240407081211.2292362-2-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-Rspamd-Queue-Id: 8B4F7140005 X-Rspam-User: X-Rspamd-Server: rspam11 X-Stat-Signature: hisrixzgbde4f87k3runiabknm4s3d19 X-HE-Tag: 1712829569-476693 X-HE-Meta: U2FsdGVkX19NTg2ag5/zoM5ehXQfqSKHLNWgVkQy9sJedXspooXKWRTf5aJSEXTEYUwYqss/Pr289JvvxwYX8ehZVamQIZ8p9rLIgSVzwIwDr+IwcNncUZpwgEYAhpMRhUnhmFh9XmhhN5vTIGwUYBf3758q+sUFMIqYhOvnELxx9QXBlaAOna8y1C00hs16kDL8ddB879ffsJCwpq3jc9CYm/dTdR/ih2y9C0vWzdmMWUfGyUfFELii5uudCs0pAnMrOroFyRqwk8IE/7D3TtnkPdMsoa85BIAir6spZQVvYigFQcnf+ZT/7E6kYeVqXzizBw110tpG0g+o35+MNJ6u6yQPFNCaKpS9bnlGGXZ3sokMaAzeWDM421FK102HueF8QsZlAip4l7V9FgX1Chxk+IYOndzjqfhXLTx8e6vZegd1ExPZEpfaVPri5DBOH8azcFZN1J022WjS3Ajn/sifqjMXNXoli/Y9Ecqq0/1pFyVCGAdZx4Db7ol0VYJfG52sQHJUvoOJaeEb+nvcqWPGpjEWAF+rYQG9SPSdLqSQBHzo/XZJMbALKS9EemKsJVq11Gg23rIVP2mUD2bhJpurEW52QZ10kbjLA5SA0cjHkK51VhBBM0Mgi+kzFlsmD+7rErcdyMWBfq4GPe9W9rlBwBdnqmzXQ+KJeCAE0+nT6lZXdngu8ygJdhiNLqzhi/XxrRYLfqJN9/WoNSUaDbDKdBZ1mfDezAH3VIGU+KLtUhkYVqtCjpN5ZFUPs1gUGhipuoArf8RT97k3vxeX1RprOogKwGAuyTQ7SQvsRMw4s9CKbjkHYRvSfLUQveN3rKm+X6FUGoOUp8fGMQRxiWU0uoze4pAG1MZ3ZD7O7+ngRDBKZKW3ShQwrhNSvRBGIZbbePHtrkq9dnEi9Pf8CGN1G83QOosiUBzX2+GmkPolAHiOZAmNETclNI0GC/fyy/kPM6S16YdH8nYN0Vi kG6LJcHj D9q7HoBNQXODRP1yTaf2O/biRvRwB3AOnsWsml3BjWOEvOHleOEAXYnVUCRbec4L4yJFR7prMl7uye6T22DwgpI4q5Mlnh8Cc8V2BRO+U3w2zLJGtyT0hl2gjoD+neWRHR8WH+iGvfMdhq23HZ4zTSwHNsHI6mGz+UcMFGPxFEqLWsNQRxed0rZCKnpq06EDdCbrMeAxdqBkdrD6zofnommpCC3ElFGOzebvJic/nNGD4Wv5GSu3Fn0YgyVOEth7dpjcmgaHkQ0zbJoby44P7ALGbkg2TnEo1wDhMgHAEhN1IlZsgAWco3DD/yfTmOuB3uOG4DkxB0cwqkctfuFO5SqtS/sUg0qxs8ftQxDfi2XaD4HQ= 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: List-Subscribe: List-Unsubscribe: On Wed, Apr 10, 2024 at 06:58:27PM +0800, Kefeng Wang wrote: > On 2024/4/10 9:30, Kefeng Wang wrote: > > On 2024/4/9 22:28, Catalin Marinas wrote: > > > On Sun, Apr 07, 2024 at 04:12:10PM +0800, Kefeng Wang wrote: > > > > diff --git a/arch/arm64/mm/fault.c b/arch/arm64/mm/fault.c > > > > index 405f9aa831bd..61a2acae0dca 100644 > > > > --- a/arch/arm64/mm/fault.c > > > > +++ b/arch/arm64/mm/fault.c > > > > @@ -500,9 +500,6 @@ static bool is_write_abort(unsigned long esr) > > > >       return (esr & ESR_ELx_WNR) && !(esr & ESR_ELx_CM); > > > >   } > > > > -#define VM_FAULT_BADMAP        ((__force vm_fault_t)0x010000) > > > > -#define VM_FAULT_BADACCESS    ((__force vm_fault_t)0x020000) > > > > - > > > >   static int __kprobes do_page_fault(unsigned long far, unsigned > > > > long esr, > > > >                      struct pt_regs *regs) > > > >   { > > > > @@ -513,6 +510,7 @@ static int __kprobes do_page_fault(unsigned > > > > long far, unsigned long esr, > > > >       unsigned int mm_flags = FAULT_FLAG_DEFAULT; > > > >       unsigned long addr = untagged_addr(far); > > > >       struct vm_area_struct *vma; > > > > +    int si_code; > > > > > > I think we should initialise this to 0. Currently all paths seem to set > > > si_code to something meaningful but I'm not sure the last 'else' close > > > in this patch is guaranteed to always cover exactly those earlier code > > > paths updating si_code. I'm not talking about the 'goto bad_area' paths > > > since they set 'fault' to 0 but the fall through after the second (under > > > the mm lock) handle_mm_fault(). [...] > > > > +    fault = handle_mm_fault(vma, addr, mm_flags, regs); > > > >       /* Quick path to respond to signals */ > > > >       if (fault_signal_pending(fault, regs)) { > > > >           if (!user_mode(regs)) > > > > @@ -626,13 +628,11 @@ static int __kprobes do_page_fault(unsigned long far, unsigned long esr, > > > >       mmap_read_unlock(mm); > > > >   done: > > > > -    /* > > > > -     * Handle the "normal" (no error) case first. > > > > -     */ > > > > -    if (likely(!(fault & (VM_FAULT_ERROR | VM_FAULT_BADMAP | > > > > -                  VM_FAULT_BADACCESS)))) > > > > +    /* Handle the "normal" (no error) case first. */ > > > > +    if (likely(!(fault & VM_FAULT_ERROR))) > > > >           return 0; > > Another choice, we set si_code = SEGV_MAPERR here, since normal > pagefault don't use si_code, only the error patch need to initialize. Yes, I think initialising it here would be fine. That's the fall-through case I was concerned about. All the other goto bad_area places already initialise si_code. -- Catalin