From patchwork Mon Jul 29 10:51:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Baruch Siach X-Patchwork-Id: 13744707 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 3279BC3DA61 for ; Mon, 29 Jul 2024 10:53:22 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-ID:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=m8bjomE93lOA16bV+KfEdLt0lmyWCXeCYlDjw1ky8LI=; b=i3zmYhgCGpWzjU8ThPiVObVbZg D4ST1ycxyAvMsoNK8GEzC3T1u2Sdyeru10lyppSOkQ21BQh1/RREbv+quAIiNkq/eUvMdiwdgQGHE 0/smBRDq2n01jm4cz56GujyMLm3iHyAF3IWbKKF388Q+V6uhwka2/kN+3rytlS3uJpEs0m0Hwf7iX lqB0cRUoGxZj3Xy/fsh334gDEwbe2rUQF9X5oOgm/x8mD02VvFipBcq8w66Hy3zbTb8cpKr/rMGcL UmZQ3uCShpeBd5JOJUiIkXxzYCYx6Kzp0d28YJuRJPMRbSL2yuFnjIRjiHvYI4uRrOJVMS115NflD B1mV55uw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1sYO05-0000000Axud-1W1k; Mon, 29 Jul 2024 10:53:09 +0000 Received: from hours.tkos.co.il ([84.110.109.230] helo=mail.tkos.co.il) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1sYNys-0000000AxUE-2Uye for linux-arm-kernel@lists.infradead.org; Mon, 29 Jul 2024 10:51:56 +0000 Received: from tarshish.tkos.co.il (unknown [10.0.8.2]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.tkos.co.il (Postfix) with ESMTPS id 9C11D440822; Mon, 29 Jul 2024 13:50:32 +0300 (IDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=tkos.co.il; s=default; t=1722250232; bh=Za3ndOc802AihmgHa1yG/1ah7Y+qALAilhokvJR5l6o=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=sqYrURUNeVzskJP5y542ZUwGS+Yuc8/B6oLImG2wmK1bofHj9wdMUUCE+ZNo3QwtV C9couwt2AgMZhgvSGDZhKyrVYGTfNYoxhTIjl+YEdDsYUq7vT/52VuqzjF2Frp1Uvr wLubP/hRfj5O5ezNtoG6/ej+TSbNf5hpEAl4UsAbSCd2ZvvqgyOzobLzNjS35zVPMH vs1JX+wzlRu7zbGJqLEaaF0nfp1tefez3QpSt1mBhVPrbyUZk19dmMWSpLg7wtuD9W JSYE9nfzIc6YtLFlQCsttUXpM3a7cjfkVN80+tYDYZVVzYdqWMzKnVHrr79LwyZeDz 6UTsuJtIJu/QA== From: Baruch Siach To: Christoph Hellwig , Marek Szyprowski , Catalin Marinas , Will Deacon Cc: Baruch Siach , Robin Murphy , iommu@lists.linux.dev, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org, =?utf-8?b?UGV0ciBUZXNhxZnDrWs=?= , Ramon Fried , Elad Nachman Subject: [PATCH v3 1/3] dma-mapping: improve DMA zone selection Date: Mon, 29 Jul 2024 13:51:24 +0300 Message-ID: X-Mailer: git-send-email 2.43.0 In-Reply-To: References: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240729_035155_111174_75180780 X-CRM114-Status: GOOD ( 13.92 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org When device DMA limit does not fit in DMA32 zone it should use DMA zone, even when DMA zone is stricter than needed. Same goes for devices that can't allocate from the entire normal zone. Limit to DMA32 in that case. Reported-by: Catalin Marinas Signed-off-by: Baruch Siach --- kernel/dma/direct.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 4480a3cd92e0..3b4be4ca3b08 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -4,7 +4,7 @@ * * DMA operations that map physical memory directly without using an IOMMU. */ -#include /* for max_pfn */ +#include #include #include #include @@ -59,9 +59,9 @@ static gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 *phys_limit) * zones. */ *phys_limit = dma_to_phys(dev, dma_limit); - if (*phys_limit <= DMA_BIT_MASK(zone_dma_bits)) + if (*phys_limit < DMA_BIT_MASK(32)) return GFP_DMA; - if (*phys_limit <= DMA_BIT_MASK(32)) + if (*phys_limit < memblock_end_of_DRAM()) return GFP_DMA32; return 0; }