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 3278DD5B85F for ; Tue, 29 Oct 2024 01:24:11 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id A3D336B0083; Mon, 28 Oct 2024 21:24:10 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 9ECAF6B00BA; Mon, 28 Oct 2024 21:24:10 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8661E6B00BD; Mon, 28 Oct 2024 21:24:10 -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 696926B0083 for ; Mon, 28 Oct 2024 21:24:10 -0400 (EDT) Received: from smtpin06.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 16BC21C5364 for ; Tue, 29 Oct 2024 01:24:10 +0000 (UTC) X-FDA: 82724892936.06.06995B1 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) by imf19.hostedemail.com (Postfix) with ESMTP id 370DA1A0014 for ; Tue, 29 Oct 2024 01:23:37 +0000 (UTC) Authentication-Results: imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Kf6pgmOa; spf=pass (imf19.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1730164889; h=from:from:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=s/mAWDikvIDQw+vWG+QrRFU5cEDrxs26l3aEcKfA+60=; b=viKJXxOiIKrb4kY4Mdv7ko84FMbovmjTNZHVpkua/yDPIpEGH5W87aT/z6oyPNlfEFpu08 49VVTaJq5IpbgjBawZSVOgMc1s4jgw199rya+/V2uspsxQdb/XbOL7KNSKTDBU1eYZezj5 KjGeiQ6lJmnPjQvHUh7aOPM4o8gAHOw= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1730164889; a=rsa-sha256; cv=none; b=IOSYGyNI7iA++lXYmVjZK7m/iCNPqVDk7FB5UiaNnOpIoxaNhCCeG3HklUMS29bP+USr9I EyDrHz0gKIDBvjz+DWa9IR8IANce5fkTTI2c2uqwt+7MZI6/rvvCypACXualmR3zzs3mR0 3WlNUA+NS5yJQte+DbvBy6cdlxE02Nw= ARC-Authentication-Results: i=1; imf19.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=Kf6pgmOa; spf=pass (imf19.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.218.46 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-a99f3a5a44cso591666466b.3 for ; Mon, 28 Oct 2024 18:24:07 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1730165047; x=1730769847; darn=kvack.org; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:to:from:date:from:to:cc:subject:date :message-id:reply-to; bh=s/mAWDikvIDQw+vWG+QrRFU5cEDrxs26l3aEcKfA+60=; b=Kf6pgmOa08zw7u3Rz/mfnIcehjE//FGaXrEgPm9fbdV3YLlvCiqGJw2zarEJ0yi81b nr5iqvOq91ktPHK+ZZc88ClCDl5S7W1w3PPW8vBYzPidsizB5Pwj3EgfG8FSGJNyxNwF 9Va9sFXwsQG8u2Vpx2lZz/LGyvi5zhpdO9utB/p3+AFLOyhT0WMImj3/Et7H6q/SNXAb mbHS75nsZWmf517wc5fIIs+vGzIjh3K2zph7TYfbjmcNamlK9DJSZdQdl8ks3Aqcg4Wj nSViUOQyiUn2zSyN7syIeB1/5bW4KNB0KJnqeS18+ZdDqC8XreTh5hk3cS1MnDU236Ru RINg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1730165047; x=1730769847; h=user-agent:in-reply-to:content-disposition:mime-version:references :reply-to:message-id:subject:to:from:date:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=s/mAWDikvIDQw+vWG+QrRFU5cEDrxs26l3aEcKfA+60=; b=kjLJmUi5N8YgM/X7OS07BEYtwciHNrQrycJQ9y8CZuckDrVwuX9nXPTh+FLkwDCr3s VUdjyq7R7HUZk7gwLNx7QYyUvJRwxFiqwBwK/JmjtGsnbKbn7N0ViQLCdn+M/ZPBw5Ft cyPu2ViqZbWTWZTocJzM9RJ1A6rHuJSff7Zvztw21okxfSEgaES7NxlbDjAnbWt1mOoB 4B078Znj1FywWXMAE4f1cZn7iBhZQHyadzlLDXVIUlHPLCkHizkrLFgpNV1UVD2wAbie 1ldoJLvddnL+FvRWA7+ssruHnAO1OhKN5b5W1YTw7upmCqAn4g674GGToEBLgxf+Qul0 Ipcg== X-Forwarded-Encrypted: i=1; AJvYcCXOmh9Xnkum+8fDL2KPzjU8LUnke8aDyM2yadYbYwUfO0fTVO1h6P3RjSSQbSicG3WRnfVGTxum6g==@kvack.org X-Gm-Message-State: AOJu0YwDZFoKKJJfLVpoE3PH7vFyvji91Qg19xfbbE6Km3XMmLglE2Os KQdHbKE7ofHOKWR0wgiDtW1mAj2Seae8149KISN6m2GU87NyvrkT X-Google-Smtp-Source: AGHT+IHK3aubRbgRaYLdcR7bNT1nVGNqr7Om4S8pl5QtTE406/X2ywglFxTqnscPyMG6gTbMZecstw== X-Received: by 2002:a17:907:7d8b:b0:a9a:1739:91e9 with SMTP id a640c23a62f3a-a9de5edb1efmr916394666b.24.1730165046500; Mon, 28 Oct 2024 18:24:06 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-a9b1f030193sm423364666b.85.2024.10.28.18.24.03 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 28 Oct 2024 18:24:04 -0700 (PDT) Date: Tue, 29 Oct 2024 01:24:03 +0000 From: Wei Yang To: "Liam R. Howlett" , Wei Yang , akpm@linux-foundation.org, vbabka@suse.cz, lorenzo.stoakes@oracle.com, linux-mm@kvack.org, Jann Horn , stable@vger.kernel.org Subject: Re: [PATCH hotfix 6.12 v2] mm/mlock: set the correct prev on failure Message-ID: <20241029012403.5h7sajuj5rxtoyn5@master> Reply-To: Wei Yang References: <20241027123321.19511-1-richard.weiyang@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 370DA1A0014 X-Stat-Signature: a6c3xr7dpk8h9m53zdxnti1cmee4s8yu X-HE-Tag: 1730165017-825780 X-HE-Meta: U2FsdGVkX1/iXRQNjeDjApvZwKUHj1B2WTB9AeAPAY+3trfVKkk9xXqvDAii9PX5tEVWIP0FMCU8OlBE6M3LTkv1sE1Coi/2fC4XH4wRc808gvZDEfy2vclLR/nMZiJk79fUc0qe0lPQpHigGHNomyRfokhybnhXGiY8pOKSMjkNSmTjF1cDfswmsbCb7NWtojM8OfWgMb99uNB7wyPIMrSnkuY0HeEEr3x4E+/3JZvJfVtsn81DMnFLOiPSUhUwfDh6ZSRFcWxTnTYPGkysSxSa11cawdBG45fk4rnaGwX2CT1c+3g2Kv3rFyCaJ1spkRL0oEPk6mwDxOQC+LEzk5lOdU83i6Lx/u3dFaw6AnkgfhSJ7atWpkQMAhdGujXeB1rKYlqvBB9mCFl75pdKHm1iPnRcYOG6ftFCLvBABNGf9I28biiPxRLKPsVcYZj7HttKZlWAmMR0TSRjELMh3I3T8PbHClspPfr1SullPut84kdMK36zHnIHdd4AodmjTQaSyO8y7M9LCLQN9NKUt0UtglkxYf7DnJWMW8nVIz6o6te55I+IBwzKe52UJMGXb6d2UeWQAzDg1DUtsCCbmittLZMestZh9cS9896adFrjRAnII/RpGcnJQPT+qqwh5/Bv3Zt44VHLGYr54Zj5o1TES/1dkKa+WGHnVyEkrxrqiRc8BP4IUVp5lmCM/CkmRi0FtFvzNSwXtwJtZfDhfA2kpWRjsKjNRv5NzDqZ2AJn/K4WZ6MRISGghQohFrCR4xZoSN6sBgvKebl5iUECl1Rvr8sU05XOt/Aa6LJhpj+3LBctRVpAtdkix59FDfZUZUFM0Yt7YKit5WkGU3RyQ0j0Gl0H02d9eTm39WNhg4NjuCj/bk42aL50IwQmp+/OgylB8WadIfFsbc4BgMDFLlo1lcOObIRJ7ABqvQW7X67tUe9olOBneb8YAKHJP38cJEs6o76yq4EL39SLyvF oWg5cfzn wP9A2+X1oszDp942/MzX/3TdDtK56agOfak3ktYNBKie0QOwNREGoNOQ0+XfYhixWLDcNgjb+CEVhZTS0eKIBh4ylLjVmj6NGf2HiMpvbt/R3GAiJZ70deYuT0okVw8i7Zksvu4zcV4lHUcf+Oo/hx6uwmJO5UioUaZXg76i7p+UZcWtEj2dAKPv+zQBqMx0iVUFppkmnoupGBxw7/ZH8oe4XK+03z2eRIiOn27bil7NumagZv3vILqSLfYuH4Fr9+kdFS3r9Ph6Xtc4X57jzZNMRuGQeWaym/QBtvuNLk+NYnMNcj9HGxci+u3eTMPPuTwRJuf1gbe0ay62IayQ1f/2iCNNsF3FXysLvYdA9SYnYcNjY16Dmzw2yZHP9ZL8kdauY+DFD+lCIc3jGrgRlv0IoFX7tFSZj4OojnUBkWcCC6s3hYBszlBKmRncOGJXbBidfLXFPRMGY4/DWpzd91KFzr47iYvsXO+3T/bYLtH9mMd3BsEv0H3uvSn1kspMsnKivhaoHafDc9dQNr3N6wi6vAnJyA+vnt6zO4MAIHRgW4lFSzXYJAcMvxMWi8T7FlWFmguceibAn0yYs+7+C/BvsP7h8bKcbjinLdXLs7IrNGKzkUlYU3m3ljCoWAk5IJcAlLC8ftZWW8OwFzajCLhj7hs7Sg6Tm9mkOJ8SJ3vg3xFTIHZPS7fOkGrXzdfa9+jZ/GFwC6rjSek6Pk36oTuzy0Q== 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 Mon, Oct 28, 2024 at 11:00:43AM -0400, Liam R. Howlett wrote: >* Wei Yang [241027 08:34]: >> After commit 94d7d9233951 ("mm: abstract the vma_merge()/split_vma() >> pattern for mprotect() et al."), if vma_modify_flags() return error, the >> vma is set to an error code. This will lead to an invalid prev be >> returned. >> >> Generally this shouldn't matter as the caller should treat an error as >> indicating state is now invalidated, however unfortunately >> apply_mlockall_flags() does not check for errors and assumes that >> mlock_fixup() correctly maintains prev even if an error were to occur. >> >> This patch fixes that assumption. >> >> [lorenzo: provide a better fix and rephrase the log] >> >> Fixes: 94d7d9233951 ("mm: abstract the vma_merge()/split_vma() pattern for mprotect() et al.") >> >> Signed-off-by: Wei Yang >> CC: Liam R. Howlett >> CC: Lorenzo Stoakes >> CC: Vlastimil Babka >> CC: Jann Horn >> Cc: >> >> --- >> v2: >> rearrange the fix and change log per Lorenzo's suggestion >> add fix tag and cc stable >> >> --- >> mm/mlock.c | 9 ++++++--- >> 1 file changed, 6 insertions(+), 3 deletions(-) >> >> diff --git a/mm/mlock.c b/mm/mlock.c >> index e3e3dc2b2956..cde076fa7d5e 100644 >> --- a/mm/mlock.c >> +++ b/mm/mlock.c >> @@ -725,14 +725,17 @@ static int apply_mlockall_flags(int flags) >> } >> >> for_each_vma(vmi, vma) { >> + int error; >> vm_flags_t newflags; >> >> newflags = vma->vm_flags & ~VM_LOCKED_MASK; >> newflags |= to_add; >> >> - /* Ignore errors */ >> - mlock_fixup(&vmi, vma, &prev, vma->vm_start, vma->vm_end, >> - newflags); >> + error = mlock_fixup(&vmi, vma, &prev, vma->vm_start, vma->vm_end, >> + newflags); >> + /* Ignore errors, but prev needs fixing up. */ >> + if (error) >> + prev = vma; > >I don't think we need a local variable for the error since it's not used >for anything besides ensuring there was a non-zero return here, but it >probably doesn't make a difference. I'd have to check the assembly to >be sure. > >Either way, > >Reviewed-by: Liam R. Howlett > Thanks >> cond_resched(); >> } >> out: >> -- >> 2.34.1 >> -- Wei Yang Help you, Help me