From patchwork Sat Feb 8 01:18:50 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 13966201 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 64C98C0219B for ; Sat, 8 Feb 2025 01:26:08 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D6F446B0095; Fri, 7 Feb 2025 20:26:07 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id CF7D36B0096; Fri, 7 Feb 2025 20:26:07 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id BC0706B0098; Fri, 7 Feb 2025 20:26:07 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id 949726B0095 for ; Fri, 7 Feb 2025 20:26:07 -0500 (EST) Received: from smtpin14.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id 388424C696 for ; Sat, 8 Feb 2025 01:26:07 +0000 (UTC) X-FDA: 83095036374.14.DE12219 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf04.hostedemail.com (Postfix) with ESMTP id 704874000A for ; Sat, 8 Feb 2025 01:26:05 +0000 (UTC) Authentication-Results: imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=mCDX8jOx; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 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=1738977965; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:content-type: content-transfer-encoding:in-reply-to:in-reply-to: references:references:dkim-signature; bh=fLDMeSZyah2fkrjijPxL4OtrUZg2XamYMH3/3OG/eCg=; b=wr4UlfLUmu1eJ2+VJuYuiMoZJVl4hmcy/35sLvfrb61WX9CY1Y9Cy65msQNz7m0Zrxg1hL ukp9T1ed63ZgPqjSkq2dRUkKX1l9dw713EkfK44fCg3KNB+KhrPh43+r+vnY7Fn+X0XOKC Uq+lXOI/JmAvfxdoHZfgynyRgn1hdCY= ARC-Authentication-Results: i=1; imf04.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=mCDX8jOx; spf=pass (imf04.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1738977965; a=rsa-sha256; cv=none; b=iGziN1/8tGyOjnSyWYhTNR92fUN4kThsaCOsfhw0xRMEK0ELFAw9nuUy/85cNDKCl55EDL emMm7uOmkWDQolJa6M6sgWC8s4jqw8+fT/zu6GQCURrXF/4PdPhasNXwNzyxjSib9MxPR+ NdgRh4KTMnIVI/2x4SO1TDL7bPrxJ+0= Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5dcedee4f7bso4747737a12.0 for ; Fri, 07 Feb 2025 17:26:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738977964; x=1739582764; darn=kvack.org; h=references:in-reply-to:message-id:date:subject:cc:to:from:from:to :cc:subject:date:message-id:reply-to; bh=fLDMeSZyah2fkrjijPxL4OtrUZg2XamYMH3/3OG/eCg=; b=mCDX8jOxHobuOz7s0tGYDZgQis1JQ+dB8cedTWsPdiCQjHjndRW4dBgJRDSYk8Ieml x8GesWI56BCc4ma7JbaH8ZlHw6sD1nqPRZ0gHtrVjeyqViXyV6AWmsHXdh9j0g0nsOnn xhTS4qPcmjpV8dcKzRaPzxK8UuYHAwoSvkci1crFyDpGxsCEDZh7bj4uVShjHNAxFsv3 mHoMf0QWZpkcDAuj9SYae6//wfZ+ai60NNd2frpVCxslHKY7zMEYxgHdp5gWpJbynjuM PyhQFZBdmOvygmGytUyW9Qi4pltLZWq1iRMSw1Otfn89UpZS8bX5QmnmQq7ZFQN5lZMg cDgA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738977964; x=1739582764; h=references:in-reply-to:message-id:date:subject:cc:to:from :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fLDMeSZyah2fkrjijPxL4OtrUZg2XamYMH3/3OG/eCg=; b=Wcww4TAKvi1yll1PVpDeQHOSnQvdEfQHLQnRGfeLOT547l9EbUki13lib3H4Zq56zj n1B9QxvXLlU7hdbm7PfLt7D3u9wmaIKwkH8j5ODLKjJn+zkD5Wod5UZXP671Nnxc0SQx 5HB+4rmBKwCC3RyK/dGUjxapJh0gpv+Aqh1XU2Mbs5jIAuuLgg93eIhnHQ6D3sL+3rWd WlEhtCh+pYaiKi9KWsM0Mz2GcTTSYjpOHA2kDQRvR7HiQyoxFSAVsDgaNccI6svF2Z8Y 0mLftEBMGeRYffCJDMJmV9XX3xgkBX0wTUrlog2En+ZkGGd0caHm3y/2kqdgJIvSQTri 1LyA== X-Forwarded-Encrypted: i=1; AJvYcCVjV6ofY/g26h2DUWWdhVmdgeRn95YfRMr7tqQ63Jgq7AlYYC/BlQTbRJ++m+1Ov4xdrm9SZO52CA==@kvack.org X-Gm-Message-State: AOJu0YzMHvrCA7FuOp5GbDrtogNvqaVNRd7r1RZPLJkzQgVs3/O+8j+j ShLitPAeNGNl7x6Cup7P0IKThYJPyAagMg2mYZyd5pPNugkezAPz X-Gm-Gg: ASbGnctG0PA4UhUta1yrt4HjJ9JB+NSr9UWd5deW+001s+4SlTSGq3qOzD5ZJHdn1wk NXZ0ffUk5jTtntAnYHMsyzC7rtPDjiSdh/2LHy+PHJMZElrHhP1+RouYleSnU/7MLiKjt32x/1G iCrVmfIqeOSkA/PJb0eelIGuckZPihxFpQaqrDAEdPRmns838KNu6XlnFOhA3ay6Rq47KPSKx2m hzE3jnRPLiPyZRBum2YGrJQrbqk5P3ATQp6oNnzdOoGArO6x43G9yGNk5oiZyWzYTwGIuJhJwG6 O9ywP3S00pT26oY= X-Google-Smtp-Source: AGHT+IEPtwi0N2AbvtnTVVyyBxTDyMu15TivVjy+pf1TDfT9vTvLYpAMwscrZ0qLSeZw8OB0RdcALw== X-Received: by 2002:a17:907:7f1e:b0:ab7:ca9:44e4 with SMTP id a640c23a62f3a-ab789ac11b5mr517843166b.15.1738977963829; Fri, 07 Feb 2025 17:26:03 -0800 (PST) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ab772f49551sm362874466b.21.2025.02.07.17.26.02 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Fri, 07 Feb 2025 17:26:02 -0800 (PST) From: Wei Yang To: akpm@linux-foundation.org, Liam.Howlett@oracle.com Cc: maple-tree@lists.infradead.org, linux-mm@kvack.org, Wei Yang , "Liam R . Howlett" , stable@vger.kernel.org Subject: [PATCH 1/3] maple_tree: may miss to set node dead on destroy Date: Sat, 8 Feb 2025 01:18:50 +0000 Message-Id: <20250208011852.31434-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250208011852.31434-1-richard.weiyang@gmail.com> References: <20250208011852.31434-1-richard.weiyang@gmail.com> X-Rspam-User: X-Rspamd-Queue-Id: 704874000A X-Stat-Signature: gha7tde78s438j6334d56zxye5p4yoxe X-Rspamd-Server: rspam03 X-HE-Tag: 1738977965-383446 X-HE-Meta: U2FsdGVkX19mZI41GHyUfxVOM5NjCUF8BhzXp/HaLxRp//wLZOoDey3i/ppJ4X1CTqhrkjfDdQAPwytHpeVEQjMQZyX3+O2KTFKsnjB2yj3GKaM0c7STZvr40lx5rC7e4GLXffL/K6zJ3PB9jwE7C0w+zmALej3GZiHA9x/90iJ6ejjLoF6jV0q6uUNXK4Wj+oxnW5HY/sFWv3mVVOeO/rQ4lRA7bA9Im9Cjg+W9hrlvLZrdcKm0tCDlOHuLhC+rc1RXGRaVMdba5kHB+HwYFy4K91JiAAsvfb1+mam9TMtMw6rwA5JIfS6c0Xs5liXintIh4R4TXptxniH+eKke7jbAPcF60nhKPabefHWrX7mkVbs9H49jGicVOXIrCDA6I5SASrI12Hs91ex9FosdQWKrKTIewTirmS6ApiH3o/ieRmCN+q9brycZ/ILAQ/XGVavKt+VTj5XcarvFObfPivOKpZp09/mFb24YVALuQsba8S5xpkdneaPyZG/1ZdfSqn0plr+VVnxetrys3k+5leYgl0Jgn7ZlX7trDrrIVLoN8AaTqPbj2THKIZLzhrWM5VD9ySbA3FVc0BrxDy1emfthznvdeQ/3fPKYUndxJRgYMjVvGYu248+pQphMCdS9B+e6AGASWJdPI8sYJN0fDFHzE4iquXZE9kFEGYQk+YPFXlYFE96hcdVY4LLOSU4g2Ym9ikDtEH02/49PH3nNv1xbtdWjdf+nnGR1EooPVfPNj5SB1GrQzy63HD9oG7JLzoMDgA3Aeu9vqpX+cNEDSSNZqP+llX0xz4X1mg26M3yCIhfYloNzjl2iTCvirwhmDFwDfv6l0V2nDqmDHe7lfH/+935NU2EZvhcSDt/I1KBgkVAzQ9sUiMLTdqFrtd3/96N/dgQRdQ+tZ23JW1/wmE4gInf2lgko2tl/9MSifBUUHiNaD+M5PZIMMZemMw7dVZSD7cEJD7Ge9gNKw8K 5v/VHwrH WrPou6M9f7rL2TZD9fxfBHJFisVJ46k1L+hviy396BL/RcN9tphljJjLk42nGsTNM4FGrxZw6VKJXffwA/HAn7VizMbEph/agG1UBc8dXmGaFnvLszwTDjBqkqUA4SwqiRIvp7wmCBZrNuAtYiO4AbOFivzzcf1m9vHSwEOU1hyHY4YzQmn2GN/QmOsgXbsunS4HlvZhZwO2F4WH4ssfy3g4K/Ly4bIn8nudSNclLiPITmKkl/DaeqqwcZCf4rZtwhdeXQymamvpFb1drFivuJOfQulxEDOya86Hk200JvyEoIpDrsAaTW9NVMQOQfzc240qO1F9TWNlDV2IKsA1sngfiboSvPEuDKBdZw6Sd3HIPuoJZGGIlgiL4bYp+U9TI2X529OfnGRdzP1987HCcOJVHvSlkPQj5Xl7GHZZ39SInJ9j7JbfZidat+9buOpvv/0WSEo53aMSdEbOj70+C6r4LQJ5itHVSjmxovSU0hi9lN8FbBZadtS/GSWMURmoxwEYKq68om060sDlWR7yguQbR5MdOYYSUprKivgfyqTCw3W5YbxxMvpdxY5815sMwasJ5dEn2qSPnri0= 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 destroy, we should set each node dead. But current code miss this when the maple tree has only the root node. The reason is mt_destroy_walk() leverage mte_destroy_descend() to set node dead, but this is skipped since the only root node is a leaf. This patch fixes this by setting the root dead before mt_destroy_walk(). Fixes: 54a611b60590 ("Maple Tree: add new data structure") Signed-off-by: Wei Yang CC: Liam R. Howlett Cc: --- lib/maple_tree.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 198c14dd3377..d31f0a2858f7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5347,6 +5347,8 @@ static inline void mte_destroy_walk(struct maple_enode *enode, { struct maple_node *node = mte_to_node(enode); + mte_set_node_dead(enode); + if (mt_in_rcu(mt)) { mt_destroy_walk(enode, mt, false); call_rcu(&node->rcu, mt_free_walk);