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 9195DC7618B for ; Wed, 15 Mar 2023 16:07:22 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 256826B0071; Wed, 15 Mar 2023 12:07:22 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 206706B0072; Wed, 15 Mar 2023 12:07:22 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 0F62A6B0075; Wed, 15 Mar 2023 12:07:22 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id 01BB96B0071 for ; Wed, 15 Mar 2023 12:07:21 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id B412416118F for ; Wed, 15 Mar 2023 16:07:21 +0000 (UTC) X-FDA: 80571612282.25.588B501 Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by imf14.hostedemail.com (Postfix) with ESMTP id 58DA410001C for ; Wed, 15 Mar 2023 16:07:17 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XUKaipw0; spf=none (imf14.hostedemail.com: domain of jacob.jun.pan@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=jacob.jun.pan@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1678896439; 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-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=4hWUV2nxNxgrwbT8KELvbMZd4t6ouzM87/pRIj8x40k=; b=d51qN/1ZR/nAd1zMMNqVC4V7W9VyJwQ6EbRAeEUbLkdntXbvACunYvVKhbbZdpY43WzdOs R0xD+LdYCLkF+jR8BC/qNPHJLpt+1lPfTMGEhr6V3dAhjjTaU3FWXHIJdS03mBLVVg3YCs XUgv+7S58AV9hFhxrtCTtFCj+I5VuhU= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=pass header.d=intel.com header.s=Intel header.b=XUKaipw0; spf=none (imf14.hostedemail.com: domain of jacob.jun.pan@linux.intel.com has no SPF policy when checking 134.134.136.126) smtp.mailfrom=jacob.jun.pan@linux.intel.com; dmarc=pass (policy=none) header.from=intel.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1678896439; a=rsa-sha256; cv=none; b=We0Zf2ImYf7WnQxe/JgbIW564ckE+dX7JOKss82uTQ54AsHi6re0jUvPDrFiX6nieRPWBg lh9Ah3pSAEciMQTsCbjuHOP+CVJZkO6L+yEXIFEApmEW2rVImkWSirSq4xO4oPTG/lsWHl mWknZCfjc4xPwKklddJ3oEnFEhBhtBE= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1678896438; x=1710432438; h=date:from:to:cc:subject:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=zWuBYVSnC9MhWCnX+eJu2W2TKgqfs4fJzjKWikscQgU=; b=XUKaipw0tOdzdosg23cf09nr3mXuJzqqtbk5B6QeM88i/nNUzlQTBiEa c7ctHnaYaxJsBv4u2QJsXbe8cW1NEfjKYeAn8SL0n16L1tC2wv5g18CC5 MNv4kpaD3Lrv6GkiG54u//FSrMcTsCFfb2e4t3SymYcAjQJKQ7Z8UDa4Q 6kcG6vTjAKlWNmDHkVL9OVxaTmIswa9nW0pZD+rsl8zvZz/6S1lfWiU45 nxzKZI8JG6uX0YWJrcK5+WvPWTBQE/Nq4Ih6TKhkpT2Wr9V00EMWzf+Pf imFeqkMXQf4zDo0duJF6f6knuzjXgNgR6cH4+km8bB2MbrtBgI21mfhp8 w==; X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="321586792" X-IronPort-AV: E=Sophos;i="5.98,262,1673942400"; d="scan'208";a="321586792" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2023 09:03:44 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10650"; a="681902753" X-IronPort-AV: E=Sophos;i="5.98,262,1673942400"; d="scan'208";a="681902753" Received: from jacob-builder.jf.intel.com (HELO jacob-builder) ([10.24.100.114]) by fmsmga007-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 15 Mar 2023 09:03:43 -0700 Date: Wed, 15 Mar 2023 09:07:39 -0700 From: Jacob Pan To: "Kirill A. Shutemov" Cc: Andrew Morton , Mel Gorman , Vlastimil Babka , David Hildenbrand , linux-mm@kvack.org, linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, Robin Murphy , jacob.jun.pan@linux.intel.com Subject: Re: [PATCH 09/10] iommu: Fix MAX_ORDER usage in __iommu_dma_alloc_pages() Message-ID: <20230315090739.128d4341@jacob-builder> In-Reply-To: <20230315113133.11326-10-kirill.shutemov@linux.intel.com> References: <20230315113133.11326-1-kirill.shutemov@linux.intel.com> <20230315113133.11326-10-kirill.shutemov@linux.intel.com> Organization: OTC X-Mailer: Claws Mail 3.17.5 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-Rspam-User: X-Rspamd-Server: rspam03 X-Stat-Signature: xft86t86bj1ootdyjp9cbj4waexy75rq X-Rspamd-Queue-Id: 58DA410001C X-HE-Tag: 1678896437-558934 X-HE-Meta: U2FsdGVkX18h2CakCs06Lw+IQcWsv6nYnVxPrfhWkbgHkkEp09I8u0Ms8alv3Z86EY+GeGCTJU7KQMsQQhB3FQemmx5758oFK6Xk+h2DF42EHzfwh9JnjjnR9ssm0FoIKOnn3R1432qz4pkGK0OncNFI7Fg4G8CHJBD7qg4IY77Ewa/L8tKbOEm7wA51pvxScn92gu5Ewe8BSg1+GPJosiOx8V4mU/fUqwhC65ifb6OI7/X2e/FsiweHy+r62JVUYuMzrHnnY6EdZStfbwTjK/oPCJgxEChWfSUNDDvjKazs2dH5uZVYfzyxu9InZnisZNMTEL4lqth2Dq8or6IzkqelRyaveRAJUnHjM/NUOcY5wI8K1b/SsSQws8SVimRa91yFDYyTtaDzV6orvPz2yJJyfXnlgqaccArYtMPYVMyFemxbGAAh32XmqW4SQ1Tk/0u+OI+0vuhwNV6G6g+w7VbvSxURa4VB9G/p/ZT8HbPSdh4j/gcMSzLscewvNyiNkMRRiN1Ki9bhOpN4wkCNvHohqGq+pn2H5MNgAeylS/AOlce3j5IbElyUW86H02diLqc3SVgqPL2K1szaewzFyS0aH0y+MztF8joBOrY3rwXD0/5Wt6xt+gLuK12f+98zhhWLxHnV559BZBiYwH3PLnvIuVMeWZQFeCq26mckHQ5nXb0ztKCh4QM3922A/1/R7vMyfwWzvNjGIPMjTu8LeFHkAng+8/C73zq8yyDguFIWbHuxE9Cti04kpi9K6XQ+5IqO/Gqz8h3syqnhHTFPqwy5t3Qe6bNCc+Bw281AqrI9j3hvzBnmYd8WCfpqHKH+NGm/C7bxYrBvthrDTKtrBM/3H2uKdC3v17qWdn402uJ72VDk9R5DaX/j/djleF2OD3M4ndIGIsufosIBFlgAC7tNEc0Shb+rZuKNOy1jsEXDzG/eqy+Pnwtpb1KL/1ZsXmUiKbceKQtysUQAft3 NrdQb1PE Ul7N77b61/1KKmgnxLisFkzFMtQo5TC2f+btGsvTrnfAU0A/O1Qr1yGCZcHbHghACLgJtl80EK+Wjqkk+iYI29DydSegKiaU7iK4zI5DN6smp4jO+bvvcG54bhL5YV9jjMsmVtvyUxQd6vi3prsPWQwPPJG2LqBVRZlPhx+X+I5UpexNO3MbJq7C5A1sI2b27LCDwIa+/3LUChxttDTLKoLM7bZUVIDTqCBMI9p4cmQvAI9/CEZuEQbGmgwoARQFujhYT/giPqovX3CnUbIPgay3jKF9D2lL67QDXGPc8lS/WlfOipwy3Wnt3yA== 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: Hi Kirill, On Wed, 15 Mar 2023 14:31:32 +0300, "Kirill A. Shutemov" wrote: > MAX_ORDER is not inclusive: the maximum allocation order buddy allocator > can deliver is MAX_ORDER-1. > > Fix MAX_ORDER usage in __iommu_dma_alloc_pages(). > > Also use GENMASK() instead of hard to read "(2U << order) - 1" magic. > > Signed-off-by: Kirill A. Shutemov > Cc: Robin Murphy > Cc: Jacob Pan > --- > drivers/iommu/dma-iommu.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c > index 99b2646cb5c7..ac996fd6bd9c 100644 > --- a/drivers/iommu/dma-iommu.c > +++ b/drivers/iommu/dma-iommu.c > @@ -736,7 +736,7 @@ static struct page **__iommu_dma_alloc_pages(struct > device *dev, struct page **pages; > unsigned int i = 0, nid = dev_to_node(dev); > > - order_mask &= (2U << MAX_ORDER) - 1; > + order_mask &= GENMASK(MAX_ORDER - 1, 0); > if (!order_mask) > return NULL; > > @@ -756,7 +756,7 @@ static struct page **__iommu_dma_alloc_pages(struct > device *dev, > * than a necessity, hence using __GFP_NORETRY until > * falling back to minimum-order allocations. > */ > - for (order_mask &= (2U << __fls(count)) - 1; > + for (order_mask &= GENMASK(__fls(count), 0); > order_mask; order_mask &= ~order_size) { > unsigned int order = __fls(order_mask); > gfp_t alloc_flags = gfp; Reviewed-by: Jacob Pan (For VT-d part, there is no functional impact at all. We only have 2M and 1G page sizes, no SZ_8M page) Thanks, Jacob