From patchwork Wed Sep 13 20:12:45 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zi Yan X-Patchwork-Id: 13383746 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 C5107EE020E for ; Wed, 13 Sep 2023 20:13:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5764F6B0289; Wed, 13 Sep 2023 16:13:21 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4FE4C6B028B; Wed, 13 Sep 2023 16:13:21 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 328EF6B028C; Wed, 13 Sep 2023 16:13:21 -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 25A8C6B0289 for ; Wed, 13 Sep 2023 16:13:21 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id F3FDAB3A83 for ; Wed, 13 Sep 2023 20:13:20 +0000 (UTC) X-FDA: 81232673760.03.418FC7C Received: from wout3-smtp.messagingengine.com (wout3-smtp.messagingengine.com [64.147.123.19]) by imf21.hostedemail.com (Postfix) with ESMTP id D4FAE1C0012 for ; Wed, 13 Sep 2023 20:13:18 +0000 (UTC) Authentication-Results: imf21.hostedemail.com; dkim=pass header.d=sent.com header.s=fm2 header.b=Q33sr6nx; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=nln4VLWK; dmarc=pass (policy=none) header.from=sent.com; spf=pass (imf21.hostedemail.com: domain of zi.yan@sent.com designates 64.147.123.19 as permitted sender) smtp.mailfrom=zi.yan@sent.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1694635999; a=rsa-sha256; cv=none; b=HplV2XFKmqOhWqsb80CxmU/gja2bdvV4H9SajSK63cF5iegy5bprGPy47sVx2nyWJu9BPz YfPyTqfbVRZaPOkULI6Iuwa5lsmyDeLHoWOdm3EHyV6ArV2fCpergQCGoye2nmtkw3y0j/ 3CikQZQfj5RhMMnuof+JqZHS4d4EWGc= ARC-Authentication-Results: i=1; imf21.hostedemail.com; dkim=pass header.d=sent.com header.s=fm2 header.b=Q33sr6nx; dkim=pass header.d=messagingengine.com header.s=fm2 header.b=nln4VLWK; dmarc=pass (policy=none) header.from=sent.com; spf=pass (imf21.hostedemail.com: domain of zi.yan@sent.com designates 64.147.123.19 as permitted sender) smtp.mailfrom=zi.yan@sent.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1694635999; h=from:from:sender:reply-to: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=mxKjLm7C5akdzlDNgIeEXW3U7M/tKbi4yzpZmBIFkQc=; b=Sf8Z6dkNsClyXqoJch7/bPgzGx9qZpvuzOAnXohkhGJ6UEwLHDwyC1mBqtEumR4IEPIhvk CkvIh/b+8UvE88IEjs47RIXGihypd7puW48zWrtzwgh/tRYuE5ME/2F4WSD0E9/f30+NLa cvPmaeBJa0shjKXOlphiHbkeTb8rwUY= Received: from compute4.internal (compute4.nyi.internal [10.202.2.44]) by mailout.west.internal (Postfix) with ESMTP id 77567320039A; Wed, 13 Sep 2023 16:13:16 -0400 (EDT) Received: from mailfrontend2 ([10.202.2.163]) by compute4.internal (MEProxy); Wed, 13 Sep 2023 16:13:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sent.com; h=cc :cc:content-transfer-encoding:content-type:date:date:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:reply-to:sender:subject:subject:to:to; s=fm2; t= 1694635995; x=1694722395; bh=mxKjLm7C5akdzlDNgIeEXW3U7M/tKbi4yzp ZmBIFkQc=; b=Q33sr6nx2erdmdA0tv9szaorSFCWd9oTgbOkZK628yvpAxE/Fa9 FyX0a3c04OIInmTb6z3uxuQbtG6IS5dHzgzxbK69YCFKOgIG2qfkwUS7eLsPJasE aiO6lQdwhpHuHUaGHIou4krQLlWzg607QRWrdOep0NAdCES5s5HooJgRYkKKiNMi nUVEhU5/8iBKyKUuLi3+MeM64aY7Kk01wqGkAhV/fVbHx6xa/C1Iu/EHwm2gS6SL 1uI2WOogXSeA4cPx0/QIDBiPyzmUB9bpsxV1hYuavNsRuICEKaGnveUuhzgPQgOi 0Fq+voBYJ/AD2PtGTEXlcvHMYso5Bb4zxMw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:references :reply-to:reply-to:sender:subject:subject:to:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; t= 1694635995; x=1694722395; bh=mxKjLm7C5akdzlDNgIeEXW3U7M/tKbi4yzp ZmBIFkQc=; b=nln4VLWKEOaRlKOXjSxM+LK+Tyjpnm7IUNmvfLA/g8VkGuNjPPN G0K5zRF1KTJLBd+CypPRybFrIVS8Ic6oYobIUDsIB8L1YeVz/75fetXVcgbjvLha AfMk5zpriqRiL0vH3y1eurV+1Ra5k0M+tePqkQKO8A/JATeKsYFvEQULIt2ijkMI uhhDhmMdzsQol6jeUdbtZVReuyJzfcnIl6TUgWXcSkJ8+zZwctipxjnw+gCJiM6c GFTS6pP7osGaiVfn5m6PMEe229B5qYRn71H/KfFp9Pt65ginaXsiXV7XnSduwP2s 8vRpLBKfaVx5XfR9Zd52R6LvLogYT92iXiQ== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedviedrudeikedgudegiecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecusecvtfgvtghiphhivghnthhsucdlqddutddtmd enogfuohhrthgvugftvggtihhpvdculdegtddmnecujfgurhephffvvefufffkofgjfhhr ggfgsedtqhertdertddtnecuhfhrohhmpegkihcujggrnhcuoeiiihdrhigrnhesshgvnh htrdgtohhmqeenucggtffrrghtthgvrhhnpeeggeehudfgudduvdelheehteegledtteei veeuhfffveekhfevueefieeijeegvdenucevlhhushhtvghrufhiiigvpedtnecurfgrrh grmhepmhgrihhlfhhrohhmpeiiihdrhigrnhesshgvnhhtrdgtohhm X-ME-Proxy: Feedback-ID: iccd040f4:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Wed, 13 Sep 2023 16:13:15 -0400 (EDT) From: Zi Yan To: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org Cc: Zi Yan , Andrew Morton , Thomas Bogendoerfer , "Matthew Wilcox (Oracle)" , David Hildenbrand , Mike Kravetz , Muchun Song , "Mike Rapoport (IBM)" , stable@vger.kernel.org, Muchun Song Subject: [PATCH v3 2/5] mm/hugetlb: use nth_page() in place of direct struct page manipulation. Date: Wed, 13 Sep 2023 16:12:45 -0400 Message-Id: <20230913201248.452081-3-zi.yan@sent.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20230913201248.452081-1-zi.yan@sent.com> References: <20230913201248.452081-1-zi.yan@sent.com> Reply-To: Zi Yan MIME-Version: 1.0 X-Rspam-User: X-Rspamd-Server: rspam06 X-Rspamd-Queue-Id: D4FAE1C0012 X-Stat-Signature: 3kc6zajcmzzb9uejc5xapuoex9tk4nwd X-HE-Tag: 1694635998-16989 X-HE-Meta: U2FsdGVkX18yGaVeoYHKOG5JvIjEMAb1S+FyRQ2HsKxLmkybz7Y+PIwnJRK7TrMNXEhMuoFQOhtUCF0zcjF/MetsaCia3vdhnSsC2b2B7bmKrdN4LSCxruMhvfTnC2KYPV6ZN/NspkgPEClUle20un5ajcrRqiEvqOzduoblyT52IG2MUruvVDrY0XmVp1QhIMOKCl8JrAnZu2WR0pdJmqfwyxmoKF5rxv9B2Mh2TFqkm9BF0ctNqPOZoprDpzj1eHaLBRKCBhBmJ9D0utBazotAHi26Djojky2oOP63pnvcgHYQ9TCwf+FgT7psEfTa+1UIXLgSGzTMJxcBuUxGsZ0zwqA9t2TvuWyx8QVopFlSaYDl09+zTS7UOEBg1krILktYZAbFo7LuDDLzQDBY2d561J7jqU4AHM5e5JZmh6ois5T64CtIvVyo5dfSMSmeRvJxQ+8dAsRpD5q6HknGGohTFjgOTqimelHGO6s0eHAvBUApugXG6LFNP3/gllXTanaxC+BGurEenhPArTzg5BLRqyQknAYmwCjWyBaqGuiQc7fNKMzhu5Ge8YCjN7QakHo1ChuCJHpgSPEMp1bhVbSgHr0waGqAgVJoQfSL1VOVpoRxA+lz3INGaB6HIpd0jWRHX/YS6xg8x4vIbJAIOr1OM/R5sR22stJ+1Q7G3f0QvX6N9IBo+zaWuiKfkJjjhyzCFR1turlkYtS6FCiwPU5fzcENkJVxqRuhEhy1BcAVHDEc4kAR3//YccF41FcgXANJ5YjyZ8nfBwHitykbfqYcdPlbB2mtuPKwtJyXc1xQHVhrmPQQCwtXG6sQbdd2lo5GSubGO7ZGkzC8JQLQJmMSREna3wlC61CXVCvWN1boAoU7Bfxj9+IPESTJiPILEhnBrM3p7+3xCAg3ja4ev2OA00qcVXolGGYOVaN1xoqzrH+bgi7tTPcowdbgp62Tuiyl0EoTbtUD7nm+sKN u2n0sDvE tSSaD7ha9FdiJMAkVVERB9dJnmTa/n3QwPob0gEsUYBgRiSqtt+gt93qVJklVXuEh1p8FAgmKo5XKkAq1qic7upitmTWHgHMSUjuf9zi3SBIRVSVCL1oO8+7ZMSkHYmR94TX7C3N/FHJC5w/+wElG5rlei0QLl2IfDZTC7OF6tKW8J4dZYIY7GXPlykOQXulPJ93CU4oeYDMZGn1OYrfe7Jhj0k8nM0mbO+UFt07AVxm7KZrPqx01aqHLzIWz6QPqVn6EmcvROAwgg+WGyFWdIdm7PrYp6jcKSuBVnUByRYW9LUJrmF3AQZtvvvNIEeWZy3ZEeCk75EM+DU0zpA+s6hcZWmoQKQwBPIgqYhxHQFSeFFEp2v2lpYcFZfiYYFo5GN8GBP2Q8jdpZ4h67HWTZ1iEK10mEAnwM304iYcSnfxxo5pL0K+kts2zXfQnnipBcmaYfDfruccRf/4YBaBlmFIpIIKB6PSqi9ZaNoRDgjBCyLNBiMIEEXhW0UxbSmpXUcW1EnD3Y2jPFKPFLkcQLeElXtoxaWHOHDSEC17b1+lAtqFe1NT7BlR55hOs0/GhfAPNR16GEKrBv816CjEhNGXJ6kA6iOWjLurl 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: From: Zi Yan When dealing with hugetlb pages, manipulating struct page pointers directly can get to wrong struct page, since struct page is not guaranteed to be contiguous on SPARSEMEM without VMEMMAP. Use nth_page() to handle it properly. Fixes: 57a196a58421 ("hugetlb: simplify hugetlb handling in follow_page_mask") Cc: Signed-off-by: Zi Yan Reviewed-by: Muchun Song --- mm/hugetlb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/hugetlb.c b/mm/hugetlb.c index af74e83d92aa..8e68e6c53e66 100644 --- a/mm/hugetlb.c +++ b/mm/hugetlb.c @@ -6469,7 +6469,7 @@ struct page *hugetlb_follow_page_mask(struct vm_area_struct *vma, } } - page += ((address & ~huge_page_mask(h)) >> PAGE_SHIFT); + page = nth_page(page, ((address & ~huge_page_mask(h)) >> PAGE_SHIFT)); /* * Note that page may be a sub-page, and with vmemmap