From patchwork Mon Apr 7 23:13:52 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14041952 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 3E035C369A1 for ; Mon, 7 Apr 2025 23:14:26 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D44F46B0007; Mon, 7 Apr 2025 19:14:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id CF3586B0008; Mon, 7 Apr 2025 19:14:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B6B426B000A; Mon, 7 Apr 2025 19:14:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0011.hostedemail.com [216.40.44.11]) by kanga.kvack.org (Postfix) with ESMTP id 991476B0007 for ; Mon, 7 Apr 2025 19:14:22 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id F29FD1CC739 for ; Mon, 7 Apr 2025 23:14:23 +0000 (UTC) X-FDA: 83308803606.29.4899C97 Received: from mail-ed1-f48.google.com (mail-ed1-f48.google.com [209.85.208.48]) by imf13.hostedemail.com (Postfix) with ESMTP id 2884220002 for ; Mon, 7 Apr 2025 23:14:21 +0000 (UTC) Authentication-Results: imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ltHfY8xF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744067662; 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=/e/GdwvLDoquOr0Afl2EN0vAREZXM36EPXG5G+ON0Dg=; b=kiezXuZfDjXED5CZWqAyy4Q/2FWac7k0TgfFDHNiIz9+SGxanD7rAiK87BoyjoAFtEGkUj KKZs7RCe1oaywkY+uxDUC+u1rdiFMPZvQr8yqvQFLY/3KfRBAAXbhlPirORVZ7sEA1oehI 7EtLue52uXTDL64/6hG+jU5OAuLTV2Q= ARC-Authentication-Results: i=1; imf13.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=ltHfY8xF; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf13.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.48 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744067662; a=rsa-sha256; cv=none; b=54eqmc2QJ8gPW+Gw3e8ManOAohtNYqiQ1u23Azb3qOUVmOGcIcdb8hyCAluksnZs9pbY6E EsKA6z+Yho+6dAvHpYm69qjZXQGnFyIcc7PoHx7vQrVmsmkRiuCdKpJhx9bT40UC4hyUoq T6B89irBMSoJmaxwK2rEsr2Xa76Tr+0= Received: by mail-ed1-f48.google.com with SMTP id 4fb4d7f45d1cf-5e60cfef9cfso8156412a12.2 for ; Mon, 07 Apr 2025 16:14:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744067660; x=1744672460; 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=/e/GdwvLDoquOr0Afl2EN0vAREZXM36EPXG5G+ON0Dg=; b=ltHfY8xFZy8WVOEMhJrNgeyPNWLngZgZ2lktNQkaLcMOkOCojq2mzbM0j0Q0QK9dpx sacN0r2opO8jwLhDaKoo5YH2D7F1qN23GmlHNdY5MKhRX6pM4YGEWjFCkBoFdnEk1U30 l3lGufXofiEweAbZlD9fV1HlAF+qBGkFs3RTD0IhxvHMU9t6IKCvTtjer0A1DU+6ZfQg wvL/Eh/w6SuKyLhQTYYbTiurFh5G9njZwiJpZMorxPgK7YRUOdC6O5vgtqWjPjr6YJI1 mLwivhVItWhASA9gLnx12bUJ+9X6RO1iLpIDp0jhh4npfOp/W+XqnBZrwe29xdwRuovW 6clA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744067660; x=1744672460; 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=/e/GdwvLDoquOr0Afl2EN0vAREZXM36EPXG5G+ON0Dg=; b=WbxLUxQbRmtgZqUozKvqWs4TnIVtcu15RSMREVhOc1JMaJuQh9lS7r4RWi+KQVoQ7S OvQxZEfbQvoEl1e+bzKdayCzB1aneQEbzPiSA9LDonn7eNpByiv+jQRGPpFw2pDylnzA 2hb9fA8oFMg3BlbUe/rCc4sR+zteaXcaok3Ip0sSAxYCg2eCBCPcMfoDb+fDUAGAgDDH 7IVdwVNd8RrgeWWUh7IN3qleMXnHLHNmUkZKI3jcJS7giHW/caoVoqydx0ccjhPj3E/b m8WYuq/7ziA1cEmmsejyT1cj+7sGRFx7lCFj3lQRwF4EqPADNwGk+JSrXH+466255APB oT6g== X-Forwarded-Encrypted: i=1; AJvYcCVtibV5eqE/FUTIMKklo56/RSRduAW0pyu2mfEF5FQUvlD73cu6ueDsZ3U98lpQcdvgkSRu/HhLjA==@kvack.org X-Gm-Message-State: AOJu0Yzi/Zgm5sc4PEuQbM0Ex/iXyBhejo+2K1DRU1ikbnbCdSqWwKWl FhyBUBgXiBYyH+7nS+UqKIx5EnPLhu2yDzedaxB9PcqmANNZr6aL X-Gm-Gg: ASbGnctTarn7PDbZ623oisWb+XfTSti8/upNFVQdVxtNP3KrCg6fRtR+ea39xHD42EM EKTTpr5mNoWTi3AzcepW8mnwNPbY4JtaCmbPY7akac6l+Zc6wid6TjjxgshNUtxErOyuE1Z0tVA DyXS1YL1LobF1usjI3XNeNA16injYIXQQRf+DJwa/MCBL6NSwHjRLXArpSXUAVT9r+ZzUsWZ+0T SSUyCdk6ASc+wxkU8R+l8O7IcbK4ZpEmrPaOuH8Y4dfH5xvWGRTaVufKFpMVd+1HBi4t1znogXp VtPl/YNUX7fIpKpF6vaXnrS93l7Q0Bg+x48XnumFz33c8fIHnon2AXQ= X-Google-Smtp-Source: AGHT+IEizGkSgcvWbtRztjIhWVy9nYG+6Q1+YXuX+viOwFgo+QuD+47ezAE0MB7BT51RcdiPpVzD+w== X-Received: by 2002:a17:907:7206:b0:ac7:cbe2:87f5 with SMTP id a640c23a62f3a-ac7e6ef17ffmr1014917266b.0.1744067660454; Mon, 07 Apr 2025 16:14:20 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac7c013f730sm831204166b.92.2025.04.07.16.14.19 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 07 Apr 2025 16:14:20 -0700 (PDT) From: Wei Yang To: Liam.Howlett@oracle.com, akpm@linux-foundation.org, willy@infradead.org Cc: linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, linux-mm@kvack.org, Wei Yang , "Liam R . Howlett" , stable@vger.kernel.org Subject: [RESEND Patch v2 1/3] maple_tree: Fix mt_destroy_walk() on root leaf node Date: Mon, 7 Apr 2025 23:13:52 +0000 Message-Id: <20250407231354.11771-2-richard.weiyang@gmail.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20250407231354.11771-1-richard.weiyang@gmail.com> References: <20250407231354.11771-1-richard.weiyang@gmail.com> X-Rspamd-Server: rspam01 X-Stat-Signature: qgsg1i555nt4mgo4rfs5mz1jrpajwxw4 X-Rspam-User: X-Rspamd-Queue-Id: 2884220002 X-HE-Tag: 1744067661-204918 X-HE-Meta: U2FsdGVkX19VaG2Y2uiRWotYg8MY3VQyE0CkRBat8JWrqgx5A6nmYFyKrrQQeCeOY4+80+dUhPJwS6juYCg8iXLn1/AXNqlTx73R+cmIEM8EVYGb878npOY93UV6u/SpD79DYvma07Hjk1LIIO/aF91iYeXh5z0GId83Ey+YpigFFcmx7pb2GXRIHfJ5xe1YyJ0nxifRYxnB3DdtQbRuR1FRkRZYCdY78U+xBrAYcmAaFeQVVK8epSk9BH8Ek1rZ/eE1B3pZxuUUoOcVru9R3NoyYirUFgDMVjEHk8A3cZQPkLP9WXOOwtkGGLgaXBLgp4dyzd8E0blC9HYthWIXdNXfS3d0wkUhAF4tXsesEI9s1910GlDbI3pKGrtEW0uXmFweP5ghm86dH+Ps09lgVxg+wijPLa9GoNfHGdnjk03bhSS0of5T29bbYtrSEAlCrGmUSysyyPxA7uZMD7cqtXRjOT+imFjhtsG9KUQngjLWwiUcp+4uuflruxslm32MWRpkulaACDZEEcsrlNPKAMDQypAuzvE5YtYFOh42YQcCjqFJUtrq4yra2Jsj1jgpUVPWlEsAYTTAsjA7j9L6Ep1Z2M/ryUW/BU97qApIv4WtRum86beRAULLD3Q/LRICahAMxm4zcnHh+bJAB5x1qVrowd3GIDeyVjGAx7fcci6uesbDpo04fzinfsuwY4HGlDsrAODGlnsNnSUIclkbNLXEwm5jDrwhStW7KDGOzYLD20xDwB6DiH+uf6vidK93GU7gdZQleVdiVGpXV+IDTRyZcbNfQNqxeDnUkI7lC2I3K1w8W4JFEx29z8qfzDQzlfG733bzepU+wQ0+CLfSqEFAyslQDFd+94TEw4nQkQIUA8GaRDyNndwVLJD8AYcvO0ohPCGyAxJroSCIh2WASySf3h29zm6Ylxdg7U+pM7nSTLFD9tfX3gNrWqk5S+DMVeBDUGredmQw2ij2yzt Cdjp7Ee5 aGiHRjYs/xKLAR2nDVqNAbAmfQGZrbAiq1GldKkB89vDw2VHJwHD67AWQp9QbT3/nK8ZH7P9Mf60UY2NBhzXw5aD5sIY+WaQaTu2bpqf/kSHQu63FocSG0XV4Uwz6zp7SDopsVawrZZAz8ttNczxLZ8YvVGH0CjMbBPs+kNoYf9aA1ELecmWXnWokU7O0k4EJg3SUvo5F3llHrW0Va2+gHJZuoVIc5Ef/+2srUzsFB5MCpHpV5dKYWfqF8xy5tAhtNYjq3Fbun7t0i7tvk/ut+ahvCVqFkb+4o3AlpvjwjAl89C5o7Sw/i1DKAwvcXYLMu/Enm6Gsu+92snrM2rpL8Pq5R705Wm13/s96P8PErkZzz2WX79ueay6H2xShOBnstvjOc+zAOlypIUAgEHfXhlo3VxeF9NynXy51sUA7f/2yTMQakRPJQtWU8Ku4W3jJ09mp8jCaOB9JzdCNjo0MO/rMthIOVANrKpz6ChgJqfsmLTgDhVNKaj7rStOHGg3kI7LFllxg6KNqtBg2GuZ+hzC3R8jbj58hJz5woiKT64kKbHX4hMzdS3NtaRyPrtlnF10GBoC8dau7rKQ= 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. Fixes this by setting the node dead if it is a leaf. Fixes: 54a611b60590 ("Maple Tree: add new data structure") Signed-off-by: Wei Yang CC: Liam R. Howlett Cc: Reviewed-by: Liam R. Howlett --- v2: * move the operation into mt_destroy_walk() * adjust the title accordingly --- lib/maple_tree.c | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 4bd5a5be1440..0696e8d1c4e9 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -5284,6 +5284,7 @@ static void mt_destroy_walk(struct maple_enode *enode, struct maple_tree *mt, struct maple_enode *start; if (mte_is_leaf(enode)) { + mte_set_node_dead(enode); node->type = mte_node_type(enode); goto free_leaf; }