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; } From patchwork Mon Apr 7 23:13:53 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14041953 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 85792C369A2 for ; Mon, 7 Apr 2025 23:14:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 9EBD36B0008; Mon, 7 Apr 2025 19:14:23 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 975A96B000A; Mon, 7 Apr 2025 19:14:23 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6DAFB6B000C; Mon, 7 Apr 2025 19:14:23 -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 525AA6B0008 for ; Mon, 7 Apr 2025 19:14:23 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 97ED2120930 for ; Mon, 7 Apr 2025 23:14:24 +0000 (UTC) X-FDA: 83308803648.08.B7998D2 Received: from mail-ed1-f53.google.com (mail-ed1-f53.google.com [209.85.208.53]) by imf18.hostedemail.com (Postfix) with ESMTP id BD6911C0004 for ; Mon, 7 Apr 2025 23:14:22 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YQOHfr65; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf18.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.53 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=kcHjhk0cX4+534iwSPLhhk+QqVeDq9r8eehD0dTt3uFJGdjsnrcuEasqS6S40WLW4yh8nN 3aj4yth1WHcNY0rRRFNkFBE4C+VnQXN67RhVazHAlpoRBrzVhw6HdTLSw8yLbZgpZjVgWl +8A+0/EdEqQQ1RNbjOIsMLZKyr+bLw4= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=YQOHfr65; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf18.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.53 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=RBLmvV7Q4wPiI+MEo68mMCleA6GCDfzaBhVQhk2842M=; b=qRtAGhiKiSUGb0yTxWjtOH/Ii6ZE5E0GbkeQLO2ytua+eguqEgKp9oPaJECEp3Yx8/XFhL Z+mBM8lb6JuqSKuDpPjUBf17sxJk0sAtTu0kefMCGBtUtX0pywk2N8s8TGYWO69PiKNm6u iDNyNvskuByNCsQqV+ee1L8YPKm26/M= Received: by mail-ed1-f53.google.com with SMTP id 4fb4d7f45d1cf-5e5e22e6ed2so7212908a12.3 for ; Mon, 07 Apr 2025 16:14:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744067661; x=1744672461; 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=RBLmvV7Q4wPiI+MEo68mMCleA6GCDfzaBhVQhk2842M=; b=YQOHfr65E6r0Jic2xLKdkj7pZCRl+aqUekimbNRwD9Xl9U/ndpbUNONzJ2ikdi+gUT Rgd8uFNK5jTmz9GqcJunAY8OTrlbadgO6f//8DQr8heYDJajvaGsGBOOunLKqvBDwEGN D42/Xhsb13unEvKk29Qgl2oE07Wk9VzeRCHnMxcnr3hlq/t+phQbRrml4+0VoJZUg2fJ C/Ai/TlKFrsgbBQf/fMsqUjPkEeAaRxbKCD9KV+RQP7ai9XgG6lxm3sEDppMhq+wpZWY hzaPaPCx73k4wNCNg1G2fvvAmMpmHphvlDbgadCFjgrSvCYgmEfHsVTOyjQve07Nl0qH W8kA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744067661; x=1744672461; 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=RBLmvV7Q4wPiI+MEo68mMCleA6GCDfzaBhVQhk2842M=; b=sekwBAQiixaooRx0SV2nNljVf1D/sj9zFRelPWOgw3UEIz1qBSQn25sEx5aZMQas0G LN1ZXptKHbDK4OjHJgJaMGoWPa3MhqDRAvuRin1j5FSfTfTx/xQr1eoNpW4yETlAjRax HBLsR3tcwhm3UUg7j8t7hSKY4fsyeuE7SrjfpmbfaNnNVLSlqx9Waayj81l36P7PwOh9 qTnsaL0QcjMCmZisr3ESFoCfMJWO3W/PeWEst18y+k23F+wEh+UOUO3CORvmNw1JGh3/ Ms6pH0cqNEm6DmoVBrhKEVSKCEsoGsKIdqn0aQw5k0AvBsaU2dgGcK9GNL8DCjsJxLhT 1qNg== X-Forwarded-Encrypted: i=1; AJvYcCU2GIjCwbi0L7NU2kikFkC2PwM1YoQEvbf94A2M6n+yOPmCtQSl8jG9FBpzy2rMNKifEAL38wuzog==@kvack.org X-Gm-Message-State: AOJu0YwqjnYxEkDp7G2L30zLc8gTM2HiL8/TeDw1RlUeXsOpOGzdZsFI IgG2xcCXqvQMaXoLvElpDTzlvE8VvVTcnEu+vWrmmkehM1b4Tx2z X-Gm-Gg: ASbGnctcBq7LGIDFGgMwvfa6o5/5O10RTKsiUtH+W9rWAk2xDQlV8cK+a2ZyPehPum1 ZRF2jPf0xG1qwzU0YmjJoBHPDDDoqH27UJ0EaXeOVYL9M3KGSdLGEGa8IA+vIwti1V9tPF4ILno 0pclZewip7LvumvLiJ472WTjViFZIwbllGI4J+pU22jF3RDCoE+CYtkeqAJjfKE4szd53V2rLf3 ipd40HBx44OVybPvE04kX+/PYg8l5A3+JPhnujlhQrH5qCdEcLsBKcf3+U6aHvQ25ospIam2scN sYa2H/waSfeXiVDoYWCvh7zlTvlbwNZPbUV6J/fZKO3f X-Google-Smtp-Source: AGHT+IFw0VJuD/5dW/5qXBXj2E60I8Vo/rjRMNFLtTW24KhKoP0N3NY3gh2Db5uU52nsRPD05z706A== X-Received: by 2002:a17:907:72c3:b0:ac7:9acf:4ef with SMTP id a640c23a62f3a-ac7d6e9fe06mr1202449766b.56.1744067661141; Mon, 07 Apr 2025 16:14:21 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac7c0184d0dsm807259066b.130.2025.04.07.16.14.20 (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 2/3] maple_tree: restart walk on correct status Date: Mon, 7 Apr 2025 23:13:53 +0000 Message-Id: <20250407231354.11771-3-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-Queue-Id: BD6911C0004 X-Stat-Signature: 6hjrwpge71nrga9kk4tus6nh8ajnq41p X-Rspam-User: X-Rspamd-Server: rspam06 X-HE-Tag: 1744067662-485756 X-HE-Meta: U2FsdGVkX19nTK+zLHGqSOZSn1dPVNvJOcyIktLXliUzTZP0A7qa2S0j8PfwE8U6Jy5uRNgIVQUBhmroBDSjRHR4bvXgOXs+jxS/+r6gdDNIHGu1/EG+J/CBGz8c+fa/4xo7AvMlKS6lhQdXLKxrogUDrIBlSVgA1om1J8Szb256Ue4idv9nlA4OHncIjjDXjKBb3wh2r93h0e62IqZghoLWkRfsFR1VNMIoezQtESXiDZgQI2cuhKHhN2/uawkDx2NHB43DOhumDMPlGftUnvfK4tGJkd64vwwkTs5nZQKW2q7n2Nczrsvc8qOx66T3SoDr1V8Rwxkilx1ByPpkyvPN9DUcW3zetyrVzoFLPbRnxMawnFeVWDkVveKeMsM0j96MxDg8gurZDko0zUNnFvCvHBNxwZd+oNrFfWwZTirHlhS0h0Y839IbO5RCL0IpLdzJuuPjDFnEY6S998pfdbB04SYyWPPbIReudQJmVMNQcni6CCh4eR5e94L00IGIU+kHjBSh5HynXLtWp8Z4w9d4wEQ5ZldPdcPIrkfz/EqVJE3JpSme7xZvBGsj2MgTh8KjjYrZysny/kDCR8hsaeH90ESijzGtSa6fNou4+5Or+RQ+8eDHd0MKzVgkLnYn9YZmUL73xP589UjV+mNA1ZCqICwdJ+KZWwfgYwwUEHILMhIflMZA/P6fFtYv4xAhEIF0KKvFXNjmPVpVPZIGZQ8jCMqU+8GjJHxv3h5na1L8LfOlcKJ1DNUjg2Rjq6i18XD0DHiLH7yK9+stD5+8IExwg8H3z0GIK4mkM7T+C5Ih2vE19HL3I0K1oVvXtFQLITIUaodv3bTx4qlfftMmAiKiNAv7fooF8+x8/LIjaMmV7Ec/DCFdtwnKo0tWR+tygl8Z12ZcCyTow022rDiYf5aRKq1XMy46QKu/NO9JUhRj3ci4SEDp97OS+q420xc8VMlK7vpSZNux3mfdjnF 7XRsKnSO ZgbRZs3fgrRt21PLtcWKqeUkTxgwKLLC3O0aFhOo0AWhmPY/AhfYQNYz4zTVyO2qAJTtJQX3Z20U5Sjz67/bA1A+GhDiDysLcMbUDA4aEwz/OYEwr67qjEJ7Q4hlMCeyPilX51zM49PnB1fJHv8HJG1x1/Fq/0ZPCP+KtLDQ7JTl9jpc02vycNEeczdvg4EbLQn+W0QQVEYuLNw08vnoKZxUd5xjfBQ9nCdzHQaFoQS7TO5aUy6CC+Cc7p7KH2duNULDCtDdw7ngZG4CxmgKq29DX/3RFmlklM6UhFnXD4BQnUm3IWnzRP0j+mEK0reghECRejavzWBVYrskVLa6iWr8f/pt13M+8s8frJ+BwZssuteekNwiItebThI79oitBpOWLXi1H5+PzQSK/pAQJbokUfXNHkzscwe257vd4wiyNw7PbDbj7j0QARY2ZPXWE29O12qftKrbpOP5agYidB0LOyHfHMXOBn8/5bykkvUv9X91Wr5eepICCmhcJwZpPDR+DHXBYt21x92IKrMO0MdnO846ilOD5ICwVSVAvr1E1CSMNEvS+unfoJcGqyVMAD3JDEX80XNmqxkM= 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: Commit a8091f039c1e ("maple_tree: add MAS_UNDERFLOW and MAS_OVERFLOW states") adds more status during maple tree walk. But it introduce a typo on the status check during walk. It expects to mean neither active nor start, we would restart the walk, while current code means we would always restart the walk. Fixes: a8091f039c1e ("maple_tree: add MAS_UNDERFLOW and MAS_OVERFLOW states") Signed-off-by: Wei Yang CC: Liam R. Howlett CC: Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 0696e8d1c4e9..81970b3a6af7 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -4895,7 +4895,7 @@ void *mas_walk(struct ma_state *mas) { void *entry; - if (!mas_is_active(mas) || !mas_is_start(mas)) + if (!mas_is_active(mas) && !mas_is_start(mas)) mas->status = ma_start; retry: entry = mas_state_walk(mas); From patchwork Mon Apr 7 23:13:54 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Wei Yang X-Patchwork-Id: 14041955 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 199B8C36010 for ; Mon, 7 Apr 2025 23:14:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id B4DBB6B000A; Mon, 7 Apr 2025 19:14:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id B27D46B000C; Mon, 7 Apr 2025 19:14:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 8DB956B000D; Mon, 7 Apr 2025 19:14:24 -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 70B326B000A for ; Mon, 7 Apr 2025 19:14:24 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id DD7085BB2B for ; Mon, 7 Apr 2025 23:14:25 +0000 (UTC) X-FDA: 83308803690.29.6A2C730 Received: from mail-ed1-f44.google.com (mail-ed1-f44.google.com [209.85.208.44]) by imf03.hostedemail.com (Postfix) with ESMTP id 164C820004 for ; Mon, 7 Apr 2025 23:14:23 +0000 (UTC) Authentication-Results: imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nqkGJCJX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 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=1744067664; 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=mZa4eYUkmXVz1t5iRUH0F0TZZ4VY704zpniKkDZZtMI=; b=v51U2D/fM0GKH8dBTAqj3xVP+o1iFQUQOVoepJPPRDPCnnhBI8ABtLUs3U9gSnrsLo8fUZ oaVCRMA337kizC8oISayL8dPNOo4oO2eLJYnRHEJ1bwElXJppOzxRHrQk5gDigSlVvnjk+ 1eNhoVN87wFPaA5VwjirxNA22Uskr6M= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744067664; a=rsa-sha256; cv=none; b=x8HLEwXUhIZ8Tdq9IJn0KCSbl5wtia5jBSgRrWTkLjTr4713Y5JExmVxWjYsBk0/VkoG5V pWNoZrLva2W/O/1Tlc3dWu/fDgxOzaMSWRpPLMiJHs3uFUPxiQh0w5vniAAlMmV1dNRW8n d8dwpGDhQgdmTSRHyk2icK8R6+58zvQ= ARC-Authentication-Results: i=1; imf03.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=nqkGJCJX; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf03.hostedemail.com: domain of richard.weiyang@gmail.com designates 209.85.208.44 as permitted sender) smtp.mailfrom=richard.weiyang@gmail.com Received: by mail-ed1-f44.google.com with SMTP id 4fb4d7f45d1cf-5e61da95244so8183090a12.2 for ; Mon, 07 Apr 2025 16:14:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1744067663; x=1744672463; 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=mZa4eYUkmXVz1t5iRUH0F0TZZ4VY704zpniKkDZZtMI=; b=nqkGJCJXy5D0bzrgsnPv4EJBO1yd1WIBU0WS9ZR1OT52Tk3uhnjEWKirX1mUd74Gu0 RBbr5Jw3xcWpdBMECaFa0iU8CQdlMRPTOVAUEulO5UxR+WNF3neIuwONKf4PkWNoRjzA pQrHsUdN0WhJfhmwhf8la6qLpted/7mGk5QgT+NS85oqmWFO57lZNxFV3FBLSrGaxV+p RoRH/P1tHyE133BMIH1qtxfQCSQZ1p/PtTIKfR2TwZ6VRQGP975UQrSWgC+v8vsOSHag Z8TSrTnUdWNOfammAu/WGpY48GK2i+XeMBOamk36U6zofrUGL2QEVY4EGfqrvWzFLmC7 Y0GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744067663; x=1744672463; 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=mZa4eYUkmXVz1t5iRUH0F0TZZ4VY704zpniKkDZZtMI=; b=ItXTH/CkfwViszxpPTjH1ZQeHrUePpOlgpBCrXlH7KXI8BpxQCj3MFA6iwc28mfBgp GAOkz2dcU2gB81CVGN/EknU+Cvg8pwOqh0GjCHU3IMHosY1S6I/P6j8XCKIBGKhkYkue H+Sps/V8Ery6K0+JFxVNS74LcNwS7dykCr+I7pdcp10ORipp6ke/i+BYmwfwI4dvVPlj 2LZzvoz+vwRDuoP5YaQMH6p3J7dBeXoen72GTYfYFEZ12W0Z26OuK9e187aFcdj15URR JcsE6PXbY3rntlJ49Z/gL6FguvepMMqp4i0FDd9nwiCNKOYpkwRAWFJ4MbKeTv4iu6e2 ttsA== X-Forwarded-Encrypted: i=1; AJvYcCUXR7UZp6lTkF3rq3ymHZ8hlrtt4SGWA12au90CnZd5PzrWAaioLjMmBF9ip3VKF8VQlxNu7cPonw==@kvack.org X-Gm-Message-State: AOJu0YyIiojKU90pZT9S8p8C1y5n4eJJphS6fl4Va9ZqOPmbGkba5U8V ETLiOtaktXXmYD8AyPWlxybgs1VEh9Fh44XG49pUKNr12ALJsty6 X-Gm-Gg: ASbGnct6BC+4DYUq7Eb5/ICMEqFzJpaQ5gtF/5BQHZjICoixIOAgq+aEpP9CU5WEBmE +csl+k3bfdlqQwH7GQiMc7r51f5U0kR9iF5lCm6XOEbdZkLnv7pAjX3QoN2YrvH4Yuf0xaTIIs+ H+MPcgSq1ORvJjpcWi+V++ELn3rNRRyqGOEOiYkRo62c8/RjcIIZDwyR6n5Q2oWRbeIrEo98LSQ eIaJ/BrXtF+ntmXHu9UOQ/ba8OOJXXVdgTL6UeZUv1cgxavYuxERjMcRt6oQcfJn3chzyNCiqWL 39dmXs5wlG4SIes6YNCpvoPmJyHeyJwRR+6mJ13VaGIA X-Google-Smtp-Source: AGHT+IF6NhIA4/e92YTvAGevSVPkRbieuNwH5uHI0/ToYrA7HYjc7Oo0GT4IQFd3XFfIwhzjh82sQQ== X-Received: by 2002:a05:6402:40c9:b0:5e4:d2c9:455c with SMTP id 4fb4d7f45d1cf-5f0b3b99994mr11073779a12.10.1744067662646; Mon, 07 Apr 2025 16:14:22 -0700 (PDT) Received: from localhost ([185.92.221.13]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-5f087715635sm7128002a12.2.2025.04.07.16.14.21 (version=TLS1_2 cipher=ECDHE-ECDSA-CHACHA20-POLY1305 bits=256/256); Mon, 07 Apr 2025 16:14:21 -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" Subject: [RESEND Patch v2 3/3] maple_tree: assert retrieving new value on a tree containing just a leaf node Date: Mon, 7 Apr 2025 23:13:54 +0000 Message-Id: <20250407231354.11771-4-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: rspam07 X-Rspamd-Queue-Id: 164C820004 X-Stat-Signature: yn7fdsetd4jgoodngyrwnipeqfotz7hw X-Rspam-User: X-HE-Tag: 1744067663-255609 X-HE-Meta: U2FsdGVkX1+45iyY46cQ/zTxGTGT2gCD0U+XlhktzpFDc04kE5T8UwofWFNGi8lAujoHodxdJvDbyg+Egrn/FVGzDnE2VwJk/MhWQY3BfCiXk1H59FwZIKfM3h+CVaHCqTEk1Z3quzo756Zzi1Myi7lULEsDxPYn2uqKP/Dw7JLcZBYrZlJ2kZ1LEa2Y1XfLGEqjSfik8k5YMRanyGHGSkfkB89upl1lzWWkmkE6mHuTDLvtacEfH8MN+VAtT2DSL1BFB2eHTV5I9b4gYi3YkH5z6JZcajq5/ytV7KpmVU7g9dxSKLlSfdwxZMJc4bb2OFXa8rHP0hcvaJf7+607UpoBPc7QFH9P9TRaRVU6GWIYwDaTmwxS0zu8bP3vWeUSvAwcvGx6m9wo4lMmYNVbozEVkIo4noGv4uWd4DNT6L9Rc5aoc66HfBG7/1eSWyIhvIJ8XxWrIUjapP7Z6LFcRFMn/U2B8cZJyPtFcn2j5RJnxK3rAAemjgfEQZiDQQqD8eM1Im1e1j2fO3dOLwgMVAL3giYcqwuzZEm8jItMuHRq4fHaa2PPfrrHXQC1NZnLlyfiWNCWrAcFxO7w10Ou6wFO3AORMn0KvknJWuQ4pS4L9J5BWb5kZ1F++Tn1Mda1csxmo+3NLexsUfKDj1OpeWDTfmW+jUWFCIgee4JzfU6SyMpBjzQ5G7qpJ2rgXluJG1D+yGPMB46tOvuJBhYqZeyC9/tZGGpwgZi7n3EDvuhNcyTuRB85p984SBZHbnZaXgLvAYe048X3Wuaxsk5Oogbiy9d62FugaoTq8mr1vYNmBYqP14z0GuFaAbteep0ZZNbdJZ9K/rCtRESuE+j9iGQWp6k+xKdJYqGIsvKTa+n6FiL/2/WpesdDYiUP2JhMgt8xCv+PqwGGLdeTs1p+p08Wm0aOTm0LAhQzWM7ZRcvws6LVTliKCPqOu5SAL3qNCQupZdFtkib381UK96o /iyjX92X zx/Ub7iTJ2VU1OI7PX0SfzG0CB9TMAePRyz95srkxU76AWbBWSosJIeBPf7F3Ias5J5CSM26UBxn1kM9kfTZZnv+huAdvd1MX92YVQmE9XHIVMs8Obgr4+seZTWyRZ0cWS/57c0ulNkS2CaZv0EtLZMnI4jo7p5j4R/apeVMTToHTHzRgElnYl4VX9xVWiJkgwbDy5UFjgF3cU+ZvIIMRqEe/FdviELctjeO/kQ+eDZ+Yc/4i/G+KPKRExQaYgnzJR4BxNbB47s5GD6Zm1gP3B56W8M8SaJm05dTIQrwD2atAVaeAeuam+tLaVRTH2S/m0HeuhAzG1qPXAgrAIZn9MgsZ7i0UXJyrF2JA6n28AFmVKiPcIcJHt+UqZRHPa1Rgpwe3vG4wC3oBIDGKvGhmmAKjds5Cn43FIJFB93sU4FRObIOsMPa+c207rnODkv07LJ9aIZYIAHFhujQLPSK7cBG8M6i9kAs1lxUVXBuhLYq4yr0sX2zvyvhsGiP21nUcOrujlpI/G5FFC1uZjRfMZorXS6Mps5OrvILwnbD/l4z7y89lrS4v44GAfA== 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: Original code may not get the new value after overwriting the whole range on a maple tree containing just a leaf node. The reason is we didn't set the only root node dead during destroy. Add a test case to ensure the new value is returned when overwriting a tree containing just a leaf node. Signed-off-by: Wei Yang CC: Liam R. Howlett Reviewed-by: Liam R. Howlett --- v2: adjust the changelog according to Liam's suggestion --- tools/testing/radix-tree/maple.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/tools/testing/radix-tree/maple.c b/tools/testing/radix-tree/maple.c index bc30050227fd..1e293e4d856d 100644 --- a/tools/testing/radix-tree/maple.c +++ b/tools/testing/radix-tree/maple.c @@ -35256,6 +35256,30 @@ static noinline void __init check_rcu_simulated(struct maple_tree *mt) MT_BUG_ON(mt, mas_prev(&mas_reader, 0) != xa_mk_value(val)); rcu_read_unlock(); + /* Clear out tree & create one with only root node */ + mas_lock(&mas_writer); + mas_set_range(&mas_writer, 0, ULONG_MAX); + mas_store_gfp(&mas_writer, NULL, GFP_KERNEL); + mas_set_range(&mas_writer, 0, 0); + for (i = 0; i <= 5; i++) { + mas_writer.index = i * 10; + mas_writer.last = i * 10 + 5; + mas_store_gfp(&mas_writer, xa_mk_value(i), GFP_KERNEL); + } + mas_unlock(&mas_writer); + target = 10; + mas_set_range(&mas_reader, target, target); + rcu_read_lock(); + MT_BUG_ON(mt, mas_walk(&mas_reader) != xa_mk_value(target/10)); + + /* Overwrite the whole range */ + mas_lock(&mas_writer); + mas_set_range(&mas_writer, 0, ULONG_MAX); + mas_store_gfp(&mas_writer, xa_mk_value(val), GFP_KERNEL); + mas_unlock(&mas_writer); + MT_BUG_ON(mt, mas_walk(&mas_reader) != xa_mk_value(val)); + rcu_read_unlock(); + rcu_unregister_thread(); }