From patchwork Fri Mar 10 14:08:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Zhang X-Patchwork-Id: 13169298 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 94C0AC6FA99 for ; Fri, 10 Mar 2023 14:09:41 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 85A898E0002; Fri, 10 Mar 2023 09:09:40 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 809998E0001; Fri, 10 Mar 2023 09:09:40 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 6A9D08E0002; Fri, 10 Mar 2023 09:09:40 -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 5D25C8E0001 for ; Fri, 10 Mar 2023 09:09:40 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 05ED214124F for ; Fri, 10 Mar 2023 14:09:39 +0000 (UTC) X-FDA: 80553171720.29.E1E2391 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) by imf15.hostedemail.com (Postfix) with ESMTP id 23DE7A0009 for ; Fri, 10 Mar 2023 14:09:37 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=WphEF2ox; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678457378; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=ENtfGVlS7WQfWW4as7iC82ZHlLPiVYg7yyGCQs+ybEfZq2iG/no2x7AgJ/ucUqo085u1I6 JK3Gzr+dtFZ/TG2w/YfMGO3PQoqQ5Nb6V/e0o/dlMStAWx16BviDyqtKWWCU4RM9bnjhaU e4FiSDR6I3hEfLDv8NdziHhlqxEpucU= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=WphEF2ox; spf=pass (imf15.hostedemail.com: domain of zhangpeng.00@bytedance.com designates 209.85.214.175 as permitted sender) smtp.mailfrom=zhangpeng.00@bytedance.com; dmarc=pass (policy=none) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678457378; a=rsa-sha256; cv=none; b=yi88ujiWJiktooX+QKTeZnNxpEspCsVfSMqfwinefhFL678FiTEBaYWporJDtYpBApbGqy 2/DgqWBXqNBl23Knd/PSidvu+8uP2EQYKbEfGH7cnFsAaO7uKf0xKbdVZxLOw52GujGbq1 ftlf5Ny94M+TWVdCGRm4xaMvJy+v4jM= Received: by mail-pl1-f175.google.com with SMTP id ky4so5682169plb.3 for ; Fri, 10 Mar 2023 06:09:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1678457376; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=WphEF2oxgLVej3eE274fGsflhyHMgJ2dTa8s8OAIbv9LOvuOXfdF5Wd1/NaUe575sO jjgnHjjrsT0jG6nkB6+v3mF6Cr3KhiaHv6c32jK1u5+vbv0c5CRt2ZF0+PVT6Cbh4HTH MbTFqJrcrn9Gkh6LznsP0LnemRqAd0jDgk17BUrm8jORI2Z6HACdab9cSSXcHLhfmvI1 xh1BNcKau3ckNIcS2HIQZc9DrtBF1jIOIXioVCYTSReGIrRus1A7fySebJgKB4nf68ku I+9kznE7YYXqfpkGLKgIi/gzoqg00fpJ4qB1FyA7HcnqhHZOJqUFQ8om/zSdXIm75gBT DotA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1678457376; h=content-transfer-encoding:mime-version: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=YjLkk2c7qkyw5y4hjkb7TF+50UyVGFsleuClk20l+mY=; b=eFLK914W2jFCUk7kxN9pNiaxM0QLXQeIyKZ4ttZOixq4czVTiM2fcK/PKjm+Gh01MC 3ij+lGDfx9EoxXZtFpdl5QATZ/6zjcYxX2gHCRUNLJFxkk7KXHOFRp/Qt+mnaYuaInKx yT6CDCrKAIPFoi69tZGYS543HPbmDb0P+rEDnx+GZi4QvUEfoWoarKsdLOnTjVPI7MNt JMxu2Pb8YUjI0cO9wQ8KkjJjYCDKPCeMlvrEs2AH6rceTlUZkfNsln5yAW7TPsbIF8EQ nrqYK3WKe1R8TWK9112ZIJzQRtKODTtmP1T50KgjnAME+oTgXit/Z+uM3eJpQRHEGKZq 5Izg== X-Gm-Message-State: AO0yUKXjf9uL6pnplDoNKRfJB84Q8ve0M1qZAKp5aBlTPzoNX0yWkGsI FM6/6Ty+eLv5AaJwsS43/QCu8g== X-Google-Smtp-Source: AK7set+QrOEa9fTlDbVV5pXLDfDbkYu/K29dJO9b63aMffjgrG9OR8N6Nz38PCDjMG+CznXz5kGPHw== X-Received: by 2002:a17:90b:4a4c:b0:237:9cc7:28a4 with SMTP id lb12-20020a17090b4a4c00b002379cc728a4mr27301326pjb.14.1678457376680; Fri, 10 Mar 2023 06:09:36 -0800 (PST) Received: from GL4FX4PXWL.bytedance.net ([139.177.225.234]) by smtp.gmail.com with ESMTPSA id fu11-20020a17090ad18b00b002375c356b0csm6753pjb.19.2023.03.10.06.09.33 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Fri, 10 Mar 2023 06:09:36 -0800 (PST) From: Peng Zhang To: Liam.Howlett@oracle.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, maple-tree@lists.infradead.org, Peng Zhang Subject: [PATCH 1/4] maple_tree: Fix get wrong data_end in mtree_lookup_walk() Date: Fri, 10 Mar 2023 22:08:44 +0800 Message-Id: <20230310140848.94485-2-zhangpeng.00@bytedance.com> X-Mailer: git-send-email 2.37.0 (Apple Git-136) In-Reply-To: <20230310140848.94485-1-zhangpeng.00@bytedance.com> References: <20230310140848.94485-1-zhangpeng.00@bytedance.com> MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 23DE7A0009 X-Stat-Signature: tmhpimnw4cuwzfgjsnk3dw6u7kujkots X-HE-Tag: 1678457377-843161 X-HE-Meta: U2FsdGVkX195oDCrys+YgNaXOyvUB5dTZ+o/+fhyVx6QhdMuQSn672ioSSNPaJqvwn4u1ALocdQ1hs0lquKcGomxW3MnoCJXuin0itjmBMxH/OMPMK4BoyWONGXDKEPRYdDBaoqZfcPRMRjCOKcBfYFeSoIjSq/hx8VwzOauiAJsd/xEPTSm5u11An162V/gUiNHM8NrY25pdlXJs9gIBGirUpRdp8AvJhMUW2c5n+IDH663kSPd2K7yMT9QG8NwEM/mL/saZxqPIkQUtyMqk+jHGyoEpc0mdhKx7eTdsaqY/v44T1NQSstuO6V+je4d/T2Bu4GdfA7WiR7YnyEWJ097jhjUNfOqcyTlWBtNDyhRLJjO2wFqPiC+MHWkEZvm75TY33S9on4EIrZBm2mgC850CCEmMie9G1HVae7/qmORuIVBoVwiYTD0n5aMZ69SI7gAhZ42wN94XyC1CX/xQTqVpByK8w3pOYCFlF4b5Wi5L4kebzPdNNV7SIVLnlMigSicq6qvTvio1tLXVUzeaEyYihklJ6YgarwPB6tROyjsa9u2sExrnopTyk4GR40053MWe7taj5IcNvBln7MAeSp22CjyhaWY/imSztxcR9EUGejUbgjAVUD/7CQrD/DKu3Sj9UCAx/iB48xXnK5dk85AkXY/bXmEL34SWKPviBKAWXsGnVhNltlVzCDRDyPHT7IiDUPIU2hbRAckkOPkzsR6Zn4jFdBrxSsyKUR+orzyefWnKlsEq6WcrDz0AbnHOZko5s6pZkhEuBO1OGU3O+57hfCxY7UGdm5VW3NDK3tPoG2Y6zkvUmHa3L0nns+LoZzPQbYiA/Zu1HXnyUaiAVJLkdbX2d/5E8JyQl2067r7k0j9hIHa2SptqL5TWDfUMz/AKCiwo30y/FFYkO/S+qRMWcV8llktl94V/lf5vGIOJdRDcfrx7TNCaxJtpda6aXNu80giHi1lDUGLnWb DVsx5w3I EiRzxjzgmN3GVAneHPgNahSFp5AHc1aKM8WvQDVPtnQDtDJGj1YiDeb5n9BNzRYRI9XRCPH+X7BIADjD5JnBI7n0ICdeD3WQ9efQD7GXWUyn5QijymGN5037+N4OLRKFboFepX8L8YExUVnivvJ1t4rYd4mhbFQPci9EU7PqyqTkZTxt1eFKKINakxkTz8ok06Qw4lAqlUIu+ukOFsB5C5bBQ20AVJiWz7rIqFYKwm/D88cPqYUxP5jnAYamJloNPs5Qa3mIaPZgFIOTLEzlac7bUuQrRrCcbGBn5ht3zGKfU8/sUtDeecuG7La06nFxPCDKYngu/lwPT1BG/kGBhh/pIyWYVCYv7XHY0yNtHOTaQQ9qDgS8lQEfcP58sa3QY4AD6mQkWlV3Tb7kFlTzdJRKTD7kdkpZwh8u5C9x1d1/Y44k4LkN1cD/NhriCt2nB2wLO2UqXsd8ysqG7lwwFDy9rIQ== 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: if (likely(offset > end)) max = pivots[offset]; The above code should be changed to if (likely(offset < end)), which is correct. This affects the correctness of ma_data_end(). Now it seems that the final result will not be wrong, but it is best to change it. This patch does not change the code as above, because it simplifies the code by the way. Signed-off-by: Peng Zhang Reviewed-by: Liam R. Howlett --- lib/maple_tree.c | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/lib/maple_tree.c b/lib/maple_tree.c index 646297cae5d1..b3164266cfde 100644 --- a/lib/maple_tree.c +++ b/lib/maple_tree.c @@ -3875,18 +3875,13 @@ static inline void *mtree_lookup_walk(struct ma_state *mas) end = ma_data_end(node, type, pivots, max); if (unlikely(ma_dead_node(node))) goto dead_node; - - if (pivots[offset] >= mas->index) - goto next; - do { - offset++; - } while ((offset < end) && (pivots[offset] < mas->index)); - - if (likely(offset > end)) - max = pivots[offset]; + if (pivots[offset] >= mas->index) { + max = pivots[offset]; + break; + } + } while (++offset < end); -next: slots = ma_slots(node, type); next = mt_slot(mas->tree, slots, offset); if (unlikely(ma_dead_node(node)))