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 6E30CC5AD49 for ; Wed, 28 May 2025 11:32:00 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0A1DC6B0089; Wed, 28 May 2025 07:32:00 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 079866B008A; Wed, 28 May 2025 07:32:00 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EF9C26B008C; Wed, 28 May 2025 07:31:59 -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 CCE9B6B0089 for ; Wed, 28 May 2025 07:31:59 -0400 (EDT) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 72792160946 for ; Wed, 28 May 2025 11:31:59 +0000 (UTC) X-FDA: 83492102358.29.F9903A4 Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf07.hostedemail.com (Postfix) with ESMTP id F12B040013 for ; Wed, 28 May 2025 11:31:57 +0000 (UTC) Authentication-Results: imf07.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf07.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1748431918; 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:references; bh=+adMb6jjdH4EliP01zGBwytqyPOmkPjWGYrgjEkHcWo=; b=q8/AN5aQIToz3LiGxBui/1PZisdqURjSpJ6iPFElwXlZjwp4/zz01DbZ5TaIGC+zWcn8xr 9KAH2qBD1ND09nJgi48W4FrfXCLt4jPIkjCi7ZLozo3b7YvAWOuZe2BDhGbLvQYBscP0Ji APOnvcD8o/y2R4Uxl90bQXKHGT23ZDU= ARC-Authentication-Results: i=1; imf07.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf07.hostedemail.com: domain of dev.jain@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=dev.jain@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1748431918; a=rsa-sha256; cv=none; b=QPEwbcbp8b8TlMv6X4yUR6+viL+1DZmFWrz+PmRPKG3w1g8iRl2MpwK6k5C936JWDEjfCo I8DRVLJxgqbp9/AFXnac6RUSalzbujCD3DF7yBFSO2eTR7SchCEQg6XVY3YdzpoZ25jmmn +BN/Ppbmo4QQyMXEpGn6swWdPkYb0n8= Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 9F7621A25; Wed, 28 May 2025 04:31:40 -0700 (PDT) Received: from MacBook-Pro.blr.arm.com (unknown [10.164.18.49]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 8666B3F5A1; Wed, 28 May 2025 04:31:54 -0700 (PDT) From: Dev Jain To: akpm@linux-foundation.org, willy@infradead.org Cc: linux-fsdevel@vger.kernel.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org, david@redhat.com, anshuman.khandual@arm.com, ryan.roberts@arm.com, Dev Jain Subject: [PATCH] xarray: Add a BUG_ON() to ensure caller is not sibling Date: Wed, 28 May 2025 17:01:24 +0530 Message-Id: <20250528113124.87084-1-dev.jain@arm.com> X-Mailer: git-send-email 2.39.3 (Apple Git-146) MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: F12B040013 X-Stat-Signature: bmhr3sipxkpq5pzrjio4fbr4i39yz96s X-Rspam-User: X-HE-Tag: 1748431917-619892 X-HE-Meta: U2FsdGVkX1/bdmrY9lRNrGi863uHX1cd4v834No7n4+EwTQqMa8dAH/fMvUry9UD2Xc1wNOgqYlR8VoTMFzeWchx3wxrWUP52w19GNnYY0Dz9+siXeuoiqJeOup0cPaI/NijSHonbBmCpLTx7KQOm10toTS1c8JCazhbROx7WRJAJYBXHfI9iNLVoHJ7ptw/iDNoD8WJDekJZokNj3Z81C1elhkz96x5KOqAA+U7oLdg4tVUJ02dp34ZBeMeKdMHCSxxjEZ8lK9M5SYoQkzb/2E2o62rw+SlLtTYM9ivp4MhksH5PRIcmPR7H4NV7PwYV+ylrjxIiE6d7aqv4Q1JLMYgGEHRv/z9UXm8iASDsDUpNJ7N+BXrViOn5IUpN4l56uP1nZGr4BvGeNm5jhssszBc+TvRl9i6Cd5oPlCeK9UOOW0bzJUb9P1ybvElXuUjaXjTSW+e/eSnQKmw1AB7Yii81SifqX4BDwiQQfJJi8yz7BdHJvHNzbGaOlt2G2iEluGhfDdgB/TLwF7LBvAExi/pW8pgbwYLPzc1zu49U8ty3LgBhGggtKH+bqCjYgJl9et2LyAqFuS+nVdxUmIyAdDOXIfueiFIzVwKpEUR2c8AsVGhXYB+0e6qB/wNWDIWSzkNk0f43MWo2Zgw+v5TOdC292vE8fb+W0WTSkjfbP7Pj2ez1wxv7nyVbsyzrJZAzvR9Eo6WTM2C465k3+Vjj7pxPk+x5hR2/W3VyNHAAyiG1DSidSxtV56mRnirNnnSIFybegIjMBqEei/bHVYAPmFiaX0DH/fFjFC6KI/h6D2CIcg6ZxbUVo6K6ff8XrKBVhvUF9N964VfRRT/DIvGrr+ev/dkx/J9tiL5UAkrM6V6XifdZ77lsl5+TKNMbNGbUjzDmJuCZx2qoEsJKx+bnzT+wjjb6ZE5jkVHHV0ELY15Ga6FRNbRu0WFX3aNOEKuOLMdWVkyvPSRVRCC73x BFtRtzAx quOCMJLkkf8+8EOsQiiOsMhBJZ9mDlanxuzibW0N9KY4BYJ685q2Ye6kbJkg8DV+hUgZNW6xxc3X3tziwBdyfOGhiPR73ChXLZD1PSw5j5stsDgcKe/DHw1ogeQNy5srewEowbAkDoE0lEdv/26DsJcPdKHhULSoMjFr95/Ija2U4kQk4VNgUoVnpm+/Z8u81QhQNdKmKFRraOo7fVnOOa0oTERnwX6j98wdE 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: Suppose xas is pointing somewhere near the end of the multi-entry batch. Then it may happen that the computed slot already falls beyond the batch, thus breaking the loop due to !xa_is_sibling(), and computing the wrong order. Thus ensure that the caller is aware of this by triggering a BUG when the entry is a sibling entry. This patch is motivated by code inspection and not a real bug report. Signed-off-by: Dev Jain --- The patch applies on 6.15 kernel. lib/xarray.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/xarray.c b/lib/xarray.c index 9644b18af18d..0f699766c24f 100644 --- a/lib/xarray.c +++ b/lib/xarray.c @@ -1917,6 +1917,8 @@ int xas_get_order(struct xa_state *xas) if (!xas->xa_node) return 0; + XA_NODE_BUG_ON(xas->xa_node, xa_is_sibling(xa_entry(xas->xa, + xas->xa_node, xas->xa_offset))); for (;;) { unsigned int slot = xas->xa_offset + (1 << order); -- 2.30.2