From patchwork Wed Jul 31 15:47:44 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068491 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id CCDAE912 for ; Wed, 31 Jul 2019 15:48:04 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id B913420415 for ; Wed, 31 Jul 2019 15:48:04 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AD5EB204FB; Wed, 31 Jul 2019 15:48:04 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 4282F20415 for ; Wed, 31 Jul 2019 15:48:04 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 32D558E000B; Wed, 31 Jul 2019 11:48:03 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 2DCE58E0003; Wed, 31 Jul 2019 11:48:03 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1FD978E000B; Wed, 31 Jul 2019 11:48:03 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by kanga.kvack.org (Postfix) with ESMTP id DDA8F8E0003 for ; Wed, 31 Jul 2019 11:48:02 -0400 (EDT) Received: by mail-ed1-f71.google.com with SMTP id b3so42629896edd.22 for ; Wed, 31 Jul 2019 08:48:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=mc1SYjLVmi9hQ3qnYxRsBDo5bthKRsGDInhBM/MARCQ=; b=bAi7xpJXZY+HbHWHjTDSoKfl+OYL8j7dHJ2orUAl4BuY9voU1Vb2KHjwTfZy+LgT47 INtaK/ZeSRFgH2ocMLeBu4oqtHLkoni+BW7QJGTfm9q1tvDDYzwE8sOlkDfSOv/YwOZf 7T0klIP2QMZkeCJpmLUaMaDKF/bdEAAzDqeBLNDHl7zTBlgPqa+6okLX3Na7HMsotUHS ld5daVyNyNpjks7OlEo0DaFaH1WLhxGX5GivolQ+DcLjs8GAOVaQiylHSqEhl1zRyIMT fsNvNluiDPOYzyZguEMjVJ9KDbyoVYW8BieE539OT5Ks0mLBsD5yYaNtjEffMdbgwNxX BBlA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAUwEGtZGNcvIimPjSV9xZEaU/9Hac+UNtQQ5ju+aB+Xoc2LaMQt ksKwnVvWrC80KDM2u15S6FDScydm2FqojWejrtFBmWGwn8nW5ud/58W1EgyOpUN9DBYnX9v5LSA 3bqCakM8Qamo3chxJ2VHZjF9TfT3JfV0Akrs/KyfPViU8RzJnD1qr+S40IGlc6trUtw== X-Received: by 2002:a17:906:b301:: with SMTP id n1mr92591858ejz.246.1564588082489; Wed, 31 Jul 2019 08:48:02 -0700 (PDT) X-Google-Smtp-Source: APXvYqy9qKK2pGrEHs13ArVCFGGl2fzlLR7vgnhIY/emrZECPnzAE7dJaLr/fRX1ffTZznlPqAlz X-Received: by 2002:a17:906:b301:: with SMTP id n1mr92591816ejz.246.1564588081754; Wed, 31 Jul 2019 08:48:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588081; cv=none; d=google.com; s=arc-20160816; b=WcGrx8SeDc12qNQCTmAuRYTauACuETcG4p3HX6nEa7pl0cLaPSGCvfUfr6XT9C5HqV SIA5HvjN3BmnhUKbaHBEHI1Kyp14rR2WddsW8684wv6wtOy/DMkCkzu82i2xR5NKUhDD 3NZ62lIzMjRgQWNrq93rQaPOkjXmM4UedBvOj/3RKKfgn+JTAbXucdYrLVHHZjb0ZBag /KPFtvwUW08vcEVa4n7n7kMEXHiVPpwmqilFlswp5EgtJKs6uCjFO34xakSIWuS/Bpm1 N2wmzH3UdPxcXw0Hgzm/W2ukJhq6Y+QjeVDsi4au6FSMSg+jZe+eeTMLdOiUjA+pOZbp Yrqg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=mc1SYjLVmi9hQ3qnYxRsBDo5bthKRsGDInhBM/MARCQ=; b=DsM6+jgdiDh9Ycc9A3sIW1E3HMOKt20/9Ewl3WEwFUbAgs9/cPr1V7UIVN+F8YjsIf AUIugA66bDod39CWxNJelYKJecUGJRHtF15/wEl1OU8NaNpFdW6Dg/h9BOClalBDNXxH k6lk5ymadeOHF6NeXbSY6blF1+h3AmYovPKTYqKs67KMQPa2Wb4gkg+DMKxcUcUpgkzi aTvd2W8yWF2n0s/ESBPxV8FwmAScL0TWuK+RtDNJkcsEtmwIIIvwVJHZeF2xcgXhk4Ic Zvi1f3z6CtQmAMPG1F5NBCMYTR6ECtnHXomSIrBJwNILQIgXUjipdEH14CAbo50P4JhY rcfQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id o9si18922164ejx.316.2019.07.31.08.48.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:01 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 57D91AFA5; Wed, 31 Jul 2019 15:48:01 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 1/8] arm64: mm: use arm64_dma_phys_limit instead of calling max_zone_dma_phys() Date: Wed, 31 Jul 2019 17:47:44 +0200 Message-Id: <20190731154752.16557-2-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP By the time we call zones_sizes_init() arm64_dma_phys_limit already contains the result of max_zone_dma_phys(). We use the variable instead of calling the function directly to save some precious cpu time. Signed-off-by: Nicolas Saenz Julienne --- arch/arm64/mm/init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index f3c795278def..6112d6c90fa8 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -181,7 +181,7 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) unsigned long max_zone_pfns[MAX_NR_ZONES] = {0}; #ifdef CONFIG_ZONE_DMA32 - max_zone_pfns[ZONE_DMA32] = PFN_DOWN(max_zone_dma_phys()); + max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma_phys_limit); #endif max_zone_pfns[ZONE_NORMAL] = max; From patchwork Wed Jul 31 15:47:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068499 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 1178E1395 for ; Wed, 31 Jul 2019 15:48:11 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F1B2A20415 for ; Wed, 31 Jul 2019 15:48:10 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id E4E06204FB; Wed, 31 Jul 2019 15:48:10 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 60F0120415 for ; Wed, 31 Jul 2019 15:48:10 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id CA3D08E0031; Wed, 31 Jul 2019 11:48:04 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id C546F8E000D; Wed, 31 Jul 2019 11:48:04 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id B1BBC8E0031; Wed, 31 Jul 2019 11:48:04 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by kanga.kvack.org (Postfix) with ESMTP id 64F2A8E000D for ; Wed, 31 Jul 2019 11:48:04 -0400 (EDT) Received: by mail-ed1-f72.google.com with SMTP id m23so42622697edr.7 for ; Wed, 31 Jul 2019 08:48:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=sFlY5wD9vuJqu5NJmOfaOAztANUwJRWulkWyU+Es/x8=; b=sMzm2tEnPg0aTGK3IKyK3ouz4C3ai1jKTz9ski6KRUpl/bTAPTLaOPO6Yg5Q+mexws fvdZCR/WGgJJ1DNcRa3SFr4gBVUUTk/oy5SYTHr78jfU7QONS1QQyWeQbqysRrNa6GIj tk7FRr3aOJK28B9FUV4aKYPHqPmTR0siIgSjq6PfYaEG7kxo/VmqZdQfVftPrhzA6uYZ hR097SS2PPXyj0r9OjYDoGH66XU2VHJUyPQ6VEVuSC5d8QbldZSOYWFg58ggrA2QIL1Z Dy+XfEzcncC1irI01M4X9cZL591H1WHL3Z97cJ4VQmlWodbmjILNSO1ppT2WptdkrUTJ XYtQ== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAWyrrjKWu1UeEV5VuipPTQXPhrWuBRhmUdhkz4z80ocsZdo41Ua Q57YMTdejJPToPnN0dyajbG6CRcdrauKRB0q22zG0TaZ6MvYA1rIBL1Sb/GbXnYZY4ozlkGt9d5 WBmFg/L1hL98BD+MxHcSAivlaAJneODDPpzJ+zmBa9/S0XmA0J+jZ744peyxQ1xNCYg== X-Received: by 2002:a17:906:6bd4:: with SMTP id t20mr90947179ejs.294.1564588083985; Wed, 31 Jul 2019 08:48:03 -0700 (PDT) X-Google-Smtp-Source: APXvYqzIUoS1lW/ToHHc2G4ErQsmKHSab9FRTKgCMwloKcPUzXNjb9qZF1+4iwhNNvPrFzWWnh9F X-Received: by 2002:a17:906:6bd4:: with SMTP id t20mr90947121ejs.294.1564588083065; Wed, 31 Jul 2019 08:48:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588083; cv=none; d=google.com; s=arc-20160816; b=lUBesGu/bqmnhuVLja0IXuyorgfS+FaprMWXq3RO0BNiJMG5a++qBeIFlCQmwaORjd HPLeP9k6kWDmxbuoo82HtIVHzrwsFNLegFKF74Bc6+/wZIzn7YgUK5KX+QiNLduCHuJM mb/6ntTs5FKMb9ubLFoDLzhl0LEtmH6UuEmtjpmB5l7YH2a7c1VcS5m2dRug8JyuD7em nYBUPgypNBNax3YgUOcCjocKaftbZTLha/LcFElH374y0yEEQquhYqjf3ZofxR4U6GEQ 6ZssYQWds8tlYgQua4d6lfFYRrKJL7zfGpOrlviL8CXl7GI9HySIbu0Wd18RFVpbmfzm rZww== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=sFlY5wD9vuJqu5NJmOfaOAztANUwJRWulkWyU+Es/x8=; b=iTpnmAtWhXqDgbHZwt6UKYj4pHKhyuSOC/IS1/rQxVA1J3Rp5KQclA2uPvIF+Q6v29 oKO3i1jWwHGoQ2N4ato+q7diO/z5esimHQF2c0i2AIdDUjV8Pe88fxSINCnvLuNBt1mf QWm5S+Ccl5ZqIr6XqYbEHl4Gb0n/hQz2K5ykZbRXrLaBYitC+Oaj7Lk2xC3yVDIIewD+ wGeBcE1nG9maAh7hRNS9x3v/hUOW7TidTF4jMrJ4nj17kL1/oknJSCLQY9V1vGzuaiov rU+qz3FzWcwCflU9uL0IAQSOWnWbHQAjB0yTY1DfK77fCX3txSsneoSOnYEQ6pvpWKgx WLnQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id m41si22024842edd.186.2019.07.31.08.48.02 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:03 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id A1F87AF95; Wed, 31 Jul 2019 15:48:02 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 2/8] arm64: rename variables used to calculate ZONE_DMA32's size Date: Wed, 31 Jul 2019 17:47:45 +0200 Message-Id: <20190731154752.16557-3-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP Let the name indicate that they are used to calculate ZONE_DMA32's size as opposed to ZONE_DMA. Signed-off-by: Nicolas Saenz Julienne --- arch/arm64/mm/init.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 6112d6c90fa8..8956c22634dd 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -50,7 +50,7 @@ s64 memstart_addr __ro_after_init = -1; EXPORT_SYMBOL(memstart_addr); -phys_addr_t arm64_dma_phys_limit __ro_after_init; +phys_addr_t arm64_dma32_phys_limit __ro_after_init; #ifdef CONFIG_KEXEC_CORE /* @@ -168,7 +168,7 @@ static void __init reserve_elfcorehdr(void) * currently assumes that for memory starting above 4G, 32-bit devices will * use a DMA offset. */ -static phys_addr_t __init max_zone_dma_phys(void) +static phys_addr_t __init max_zone_dma32_phys(void) { phys_addr_t offset = memblock_start_of_DRAM() & GENMASK_ULL(63, 32); return min(offset + (1ULL << 32), memblock_end_of_DRAM()); @@ -181,7 +181,7 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) unsigned long max_zone_pfns[MAX_NR_ZONES] = {0}; #ifdef CONFIG_ZONE_DMA32 - max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma_phys_limit); + max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma32_phys_limit); #endif max_zone_pfns[ZONE_NORMAL] = max; @@ -194,16 +194,16 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) { struct memblock_region *reg; unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES]; - unsigned long max_dma = min; + unsigned long max_dma32 = min; memset(zone_size, 0, sizeof(zone_size)); /* 4GB maximum for 32-bit only capable devices */ #ifdef CONFIG_ZONE_DMA32 - max_dma = PFN_DOWN(arm64_dma_phys_limit); - zone_size[ZONE_DMA32] = max_dma - min; + max_dma32 = PFN_DOWN(arm64_dma32_phys_limit); + zone_size[ZONE_DMA32] = max_dma32 - min; #endif - zone_size[ZONE_NORMAL] = max - max_dma; + zone_size[ZONE_NORMAL] = max - max_dma32; memcpy(zhole_size, zone_size, sizeof(zhole_size)); @@ -215,14 +215,14 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) continue; #ifdef CONFIG_ZONE_DMA32 - if (start < max_dma) { - unsigned long dma_end = min(end, max_dma); + if (start < max_dma32) { + unsigned long dma_end = min(end, max_dma32); zhole_size[ZONE_DMA32] -= dma_end - start; } #endif - if (end > max_dma) { + if (end > max_dma32) { unsigned long normal_end = min(end, max); - unsigned long normal_start = max(start, max_dma); + unsigned long normal_start = max(start, max_dma32); zhole_size[ZONE_NORMAL] -= normal_end - normal_start; } } @@ -407,9 +407,9 @@ void __init arm64_memblock_init(void) /* 4GB maximum for 32-bit only capable devices */ if (IS_ENABLED(CONFIG_ZONE_DMA32)) - arm64_dma_phys_limit = max_zone_dma_phys(); + arm64_dma32_phys_limit = max_zone_dma32_phys(); else - arm64_dma_phys_limit = PHYS_MASK + 1; + arm64_dma32_phys_limit = PHYS_MASK + 1; reserve_crashkernel(); @@ -417,7 +417,7 @@ void __init arm64_memblock_init(void) high_memory = __va(memblock_end_of_DRAM() - 1) + 1; - dma_contiguous_reserve(arm64_dma_phys_limit); + dma_contiguous_reserve(arm64_dma32_phys_limit); } void __init bootmem_init(void) @@ -521,7 +521,7 @@ static void __init free_unused_memmap(void) void __init mem_init(void) { if (swiotlb_force == SWIOTLB_FORCE || - max_pfn > (arm64_dma_phys_limit >> PAGE_SHIFT)) + max_pfn > (arm64_dma32_phys_limit >> PAGE_SHIFT)) swiotlb_init(1); else swiotlb_force = SWIOTLB_NO_FORCE; From patchwork Wed Jul 31 15:47:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068501 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id ADD17912 for ; Wed, 31 Jul 2019 15:48:14 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 9A4EC20415 for ; Wed, 31 Jul 2019 15:48:14 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 8E07C204FB; Wed, 31 Jul 2019 15:48:14 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0DDB320415 for ; Wed, 31 Jul 2019 15:48:13 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 243028E0032; Wed, 31 Jul 2019 11:48:06 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 1F4E28E000D; Wed, 31 Jul 2019 11:48:06 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 020478E0032; Wed, 31 Jul 2019 11:48:05 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id A9DA58E000D for ; Wed, 31 Jul 2019 11:48:05 -0400 (EDT) Received: by mail-ed1-f70.google.com with SMTP id b33so42650449edc.17 for ; Wed, 31 Jul 2019 08:48:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=aHAqICo5eTRSGwfWWKL3szs2vb6l+yyj2bXZq8YQTqI=; b=IeqnessWtHpuHXBTlmDN9LYbmTVEKYuj7gItXvXhu8TLqJkkf9zOEvgtLjv8N3prcz DqWuITaPtxODa/qYkPMyPzZiPqvkwU052l4AXqKKKIiAtgvRC7sdG+rBvGiI3PsImifR L1N+6Pj6wuwqIPiINNaz423WU2toCFkqaEDICWvBLtzya4vn23HIOq98Q8afmjlPdkii 6xWXui8F79poKKcg0x69MdUro/nC5oRLi+LGQZPlLYMXqgHiZnk5gKpEWt3eHkbyEweW YVDaKTO3m23l5ycZws/dteBpXYwTHxqB3JnOBrjSkVuyNNk7QwZj9vhxs2W0o/g0iivM UW2A== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAWZokNoKL0tmWeT3ggwXSgl9l8gTSXiuyJF6Q5OwPpqPzrdcf+Z mxBCZNLxI+cjYUlWwTjWfzkrLwYNjNMLCgNjSh5mVLKd7YoTFUONpLcOuvj8mYuCukHC5Hhfnos cWlg0ZwUzE3vgQA81iYT96THSK7IGthywz2CHnenUjR5GPAwEizhKHLnArK0kYU//hw== X-Received: by 2002:a50:84e2:: with SMTP id 89mr108671522edq.218.1564588085264; Wed, 31 Jul 2019 08:48:05 -0700 (PDT) X-Google-Smtp-Source: APXvYqybHL2oLV3jgHdWsZhjkn6g+XhSDjgkQCY1Cl5Gc2ZzbnwMifFffVGPhvs1rv2opvggJWlY X-Received: by 2002:a50:84e2:: with SMTP id 89mr108671456edq.218.1564588084419; Wed, 31 Jul 2019 08:48:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588084; cv=none; d=google.com; s=arc-20160816; b=rZmNn3MPHocL5ACb72qw6Gvz24SljYwKV/lMHrUBwSNfMhcbbhG8tV7wnL26cGdqo5 lO8nnCcKTkkCceBSKivv/9zttnDFz94JBNW0335hjbyguPgHz6yUxJY1XB7zKK8ALy+7 SVPxJdVFE3odPtwvK/DUcOnBA1jEeHQ3kBynQyBsFICGi79vzyNsRBvR02xsLhDgo9gi qpLyE0UiOjL3SIeT1jlmJLJTr2rfNv0G0TIDidsYKd6QupN71mj1/UHuoufkWsOrdg3+ SVoIDcmpyb0ZreONS+18VZBdEsUjNL2cKx6NZ79qC9pvkHugLs8W26zLa126B+vwC32c IOrg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=aHAqICo5eTRSGwfWWKL3szs2vb6l+yyj2bXZq8YQTqI=; b=EYqh9D+dI20ezVVZKy6Oav0a42kjpHlCMEMr0yW/ApzJuaWR3JwfJ/3ZUMiKPL9F2Z wEtQFAZpSA3/HXGk9fY1xOhgeHYq/o8Dzb9OdCU+obXVlGWAdskPQ965PTJ2sGxviFY/ C0vTTCV5kMbmkhxURZ38PP2XRQnkJ2pmImc1lKj/UWzOuCQqUA5kdNTiGKPGfSRhV+KP 9CH6IGRIkBnGX4ZmjcQEPr8wusTPpRDJKqFt4ZAmVKZFBzg3ZuskIKfl1RvZchEsacF/ ZzPhmAenWY6WlLRkHxj64qT3JXWirVqt+650V3MnEEXjvYJYebru8rGZ0XAh7WsCqUtv Homw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id w37si20716103eda.288.2019.07.31.08.48.04 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:04 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 01F74AFE4; Wed, 31 Jul 2019 15:48:04 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, Rob Herring , Frank Rowand Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, linux-kernel@vger.kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 3/8] of/fdt: add function to get the SoC wide DMA addressable memory size Date: Wed, 31 Jul 2019 17:47:46 +0200 Message-Id: <20190731154752.16557-4-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP Some SoCs might have multiple interconnects each with their own DMA addressing limitations. This function parses the 'dma-ranges' on each of them and tries to guess the maximum SoC wide DMA addressable memory size. This is specially useful for arch code in order to properly setup CMA and memory zones. Signed-off-by: Nicolas Saenz Julienne --- drivers/of/fdt.c | 72 ++++++++++++++++++++++++++++++++++++++++++ include/linux/of_fdt.h | 2 ++ 2 files changed, 74 insertions(+) diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c index 9cdf14b9aaab..f2444c61a136 100644 --- a/drivers/of/fdt.c +++ b/drivers/of/fdt.c @@ -953,6 +953,78 @@ int __init early_init_dt_scan_chosen_stdout(void) } #endif +/** + * early_init_dt_dma_zone_size - Look at all 'dma-ranges' and provide the + * maximum common dmable memory size. + * + * Some devices might have multiple interconnects each with their own DMA + * addressing limitations. For example the Raspberry Pi 4 has the following: + * + * soc { + * dma-ranges = <0xc0000000 0x0 0x00000000 0x3c000000>; + * [...] + * } + * + * v3dbus { + * dma-ranges = <0x00000000 0x0 0x00000000 0x3c000000>; + * [...] + * } + * + * scb { + * dma-ranges = <0x0 0x00000000 0x0 0x00000000 0xfc000000>; + * [...] + * } + * + * Here the area addressable by all devices is [0x00000000-0x3bffffff]. Hence + * the function will write in 'data' a size of 0x3c000000. + * + * Note that the implementation assumes all interconnects have the same physical + * memory view and that the mapping always start at the beginning of RAM. + */ +int __init early_init_dt_dma_zone_size(unsigned long node, const char *uname, + int depth, void *data) +{ + const char *type = of_get_flat_dt_prop(node, "device_type", NULL); + u64 phys_addr, dma_addr, size; + u64 *dma_zone_size = data; + int dma_addr_cells; + const __be32 *reg; + const void *prop; + int len; + + if (depth == 0) + *dma_zone_size = 0; + + /* + * We avoid pci host controllers as they have their own way of using + * 'dma-ranges'. + */ + if (type && !strcmp(type, "pci")) + return 0; + + reg = of_get_flat_dt_prop(node, "dma-ranges", &len); + if (!reg) + return 0; + + prop = of_get_flat_dt_prop(node, "#address-cells", NULL); + if (prop) + dma_addr_cells = be32_to_cpup(prop); + else + dma_addr_cells = 1; /* arm64's default addr_cell size */ + + if (len < (dma_addr_cells + dt_root_addr_cells + dt_root_size_cells)) + return 0; + + dma_addr = dt_mem_next_cell(dma_addr_cells, ®); + phys_addr = dt_mem_next_cell(dt_root_addr_cells, ®); + size = dt_mem_next_cell(dt_root_size_cells, ®); + + if (!*dma_zone_size || *dma_zone_size > size) + *dma_zone_size = size; + + return 0; +} + /** * early_init_dt_scan_root - fetch the top level address and size cells */ diff --git a/include/linux/of_fdt.h b/include/linux/of_fdt.h index acf820e88952..2ad36b7bd4fa 100644 --- a/include/linux/of_fdt.h +++ b/include/linux/of_fdt.h @@ -72,6 +72,8 @@ extern int early_init_dt_reserve_memory_arch(phys_addr_t base, phys_addr_t size, bool no_map); extern u64 dt_mem_next_cell(int s, const __be32 **cellp); +extern int early_init_dt_dma_zone_size(unsigned long node, const char *uname, + int depth, void *data); /* Early flat tree scan hooks */ extern int early_init_dt_scan_root(unsigned long node, const char *uname, int depth, void *data); From patchwork Wed Jul 31 15:47:47 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068503 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 529B41395 for ; Wed, 31 Jul 2019 15:48:18 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 3B60C20415 for ; Wed, 31 Jul 2019 15:48:18 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2C9B0204FB; Wed, 31 Jul 2019 15:48:18 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id C40C220415 for ; Wed, 31 Jul 2019 15:48:17 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 307778E0034; Wed, 31 Jul 2019 11:48:07 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 290528E000D; Wed, 31 Jul 2019 11:48:07 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 156B98E0034; Wed, 31 Jul 2019 11:48:07 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by kanga.kvack.org (Postfix) with ESMTP id B26188E000D for ; Wed, 31 Jul 2019 11:48:06 -0400 (EDT) Received: by mail-ed1-f69.google.com with SMTP id f19so42684136edv.16 for ; Wed, 31 Jul 2019 08:48:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=1RTLm79+PCTkW78/wyWR1dPnN2NdqNkCsW6ORpXl4gE=; b=s5p/JdArYO2QlKZ5n2TyGbFCQyfF562oVHuR/Vu4wig0kOneBcT9nmljUL4dmtaxpq SVbXcS2nRccAKTnO5lHVgupPdTGrsDl0RYwZxr1MCAVbBxUe5+ZUv6xX0+YexVitxyMc unuGEQ4taotCnmnjBlWK4hCb3QpioDNCD2m4jDasY2pni75EXmqT50e3hPNmJVB49lmZ QvKhoddkjY+s6bsLC8DfgovrJxBDXVX9kK6Rdttm9Znk6ZCAhwpFWnSVSL2yuYRP5eT8 94bk8Ay153UBZFeIj6i/Lp2K7W9owjSfFgaxbAqz0kiFvLJ5bFunu0EzSiTZO+6XrmOu rl4w== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAWESpVRFQ1DfvPQBdZKj44fXquLUCJ/nEwtOfo6ZBqlSe1pwi03 1VEhFd0kDV3nehPSIGWEfvp4Ag1JiHo7U9PYYvuEk24V7e82c2nc525Fy322N6HtQdjYTsSXJWr +orQkt8ksFGP5HDoiOU5oB/vi6UPilcFbP4Qo7zes0AF0/ZB56nfwGOAs5PT2Nr+fhw== X-Received: by 2002:a50:9468:: with SMTP id q37mr106694260eda.163.1564588086329; Wed, 31 Jul 2019 08:48:06 -0700 (PDT) X-Google-Smtp-Source: APXvYqyx46Izd3htrIlZAl+DHA1MBTEQkzEbFvOY+aExsVjd+L0BbmN5/ZC+lszYvLPoHzgkLpVU X-Received: by 2002:a50:9468:: with SMTP id q37mr106694203eda.163.1564588085645; Wed, 31 Jul 2019 08:48:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588085; cv=none; d=google.com; s=arc-20160816; b=fOFW5eeTt2Zc03XTzfEB4kzJbbeJbD6nT08NiYFeD8fXO5qOWeIDzNohwGV/Hkr9pY XfWwWwsW5HlRY+nEAhuZGHhCC57x3A2Ont1ojUejw7YJTdphPuWUWc3cEDPN/u9FFjT6 5a7zWODFG0ANbLdBcNFwy7yf1pPBfW7eXatVoYVWyMH20vWMqu0yGQBdQC5r8/UEyxBE LixeYtkLBWvR1RrH2y/Yr7neU7jzkSmonX5F/qgdfJVfwX2kM7+mWEB62v4S2aOhYFLb AhlgwSCYVYTLolRJTbD1WBqWog/rYijY8g3AjR97DijbE9b/DeeWuvfeSJvZvGmmDIdf j5LQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=1RTLm79+PCTkW78/wyWR1dPnN2NdqNkCsW6ORpXl4gE=; b=WYd/i9bQxbRfwbDjIm9K+kGelphnfJM9+4AplORn3DN3eVZBzhEa/18fy/Zt+pp6bR x01sbb4Inl83tms7rz8TVoiGkVpfVwM0NsOTYBqH7hH9hu8LljQ+oV3P7kh14YbW6t5h ndkauuF15C+OUOwDbv4R22XnqYDGipJppOJVQTgGaxht88UNPxkWUusI37bBbxINCwmx WM1TGH12qBy2Vb9S19ignhBykVcf7QOd84L2tnzcLB66be7GnLRU5x7u8aaa2lMOMxPF b9iRfoK+ItqyGMXOf53DVU4zSPnG7cpmIB1/Yly32AKcSqSBLqJjjPpD1p7pBEvm1mRx HQ3A== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id w58si22983642edw.316.2019.07.31.08.48.05 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:05 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 4554EB020; Wed, 31 Jul 2019 15:48:05 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 4/8] arm64: re-introduce max_zone_dma_phys() Date: Wed, 31 Jul 2019 17:47:47 +0200 Message-Id: <20190731154752.16557-5-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP Some devices might have multiple interconnects with different DMA addressing limitations. This function provides the higher physical address accessible by all peripherals on the SoC. If such limitation doesn't exist it'll return 0. Signed-off-by: Nicolas Saenz Julienne --- arch/arm64/mm/init.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 8956c22634dd..1c4ffabbe1cb 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -174,6 +174,19 @@ static phys_addr_t __init max_zone_dma32_phys(void) return min(offset + (1ULL << 32), memblock_end_of_DRAM()); } +static phys_addr_t __init max_zone_dma_phys(void) + +{ + u64 memory_size = memblock_end_of_DRAM() - memblock_start_of_DRAM(); + u64 zone_dma_size; + + of_scan_flat_dt(early_init_dt_dma_zone_size, &zone_dma_size); + if (zone_dma_size && zone_dma_size < min(memory_size, SZ_4G)) + return memblock_start_of_DRAM() + zone_dma_size; + + return 0; +} + #ifdef CONFIG_NUMA static void __init zone_sizes_init(unsigned long min, unsigned long max) From patchwork Wed Jul 31 15:47:48 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068505 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 4B8B71395 for ; Wed, 31 Jul 2019 15:48:22 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 384E220415 for ; Wed, 31 Jul 2019 15:48:22 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 2C591209CD; Wed, 31 Jul 2019 15:48:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 910ED20415 for ; Wed, 31 Jul 2019 15:48:21 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 244038E0036; Wed, 31 Jul 2019 11:48:09 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 1F21B8E000D; Wed, 31 Jul 2019 11:48:09 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1090A8E0036; Wed, 31 Jul 2019 11:48:09 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f72.google.com (mail-ed1-f72.google.com [209.85.208.72]) by kanga.kvack.org (Postfix) with ESMTP id 9A0BC8E000D for ; Wed, 31 Jul 2019 11:48:08 -0400 (EDT) Received: by mail-ed1-f72.google.com with SMTP id l26so42693196eda.2 for ; Wed, 31 Jul 2019 08:48:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=S8bOWZs8wa2CgfkuK8HhPjYI682g9sPrNBOqzgGn9pw=; b=T53TECCSr98HczWapl/XunaeeulCiOzflHk/aFjB0D7ArIq1BxDH7MILFijdNhbuhb yHsUm2c4n7XeTrh7IEHLVpa10pm+JnbXyMbqAwNRXAwOX0lObAOJ+cbE3e2LRaWkghq3 ZLTZXoSmwuGNPIybK3s+cjzv18nni4UREHDo6NwPjJrFuLezVOw1vXpDVZbF2CqTS5ln pL4v+1NhOfb4OA+hUo+bWqwg53VLcihlhfNouw+gx/p2/VoImbqBOm8PDZ94kTLOnQFC 6+N21x/XF7chPBbif24h29sixE97I6tLJ2ZDTvn2eaxznescWs0k9dkvcmAOHLz18760 hmeA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAXRyri0l30F3Hy4/akpH0s+zYTzVI35HGrTVX2a6tdugYVINrt2 HIvxGRfxHO9jdCw6VzBuws7zKC9NQKuRVN56NGjbBZBkdgAowsCKy472a55igjz+To2kNm6KPjl BeofZR6FPfE1aeFnFocRePb1bFU9qnWHG1t4HNLfB9LGPh2GoCSefQvz29dr2mw6N/Q== X-Received: by 2002:a17:906:499a:: with SMTP id p26mr31875934eju.308.1564588088174; Wed, 31 Jul 2019 08:48:08 -0700 (PDT) X-Google-Smtp-Source: APXvYqw+V03FT013E5d/P7+ZJA8Wn7L1TYzmLqL4xM++Z/6ZNvxtX6WJGn5BEqpohr6dtZ0uxF91 X-Received: by 2002:a17:906:499a:: with SMTP id p26mr31875868eju.308.1564588087122; Wed, 31 Jul 2019 08:48:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588087; cv=none; d=google.com; s=arc-20160816; b=Hy/3Ds1wHCNmW60eLp/r0G01OlFMzJSXxQWeRH+7qX4An5FwPbivZwHeSyfKPaQPgJ 9YELD5+NzW68y88OJY9g66FZi9/JLsIjPEYh9RRSXCI4ktso3hb2Ift4G180oQA78Gik MpUIFejWdxIrXfNINiWApl85rZTKL1ubA8xdZk8mDDVkzt5embIfAoG4MfUbiovod9Es chbI9e0l2M92EJkH4kZQL7ODGlozWHrVlcG9G1wQR5wWdW4gOUDf1vHB2q2OdlX9ehI6 Ds9UCImTjE7QztEFexoebYQ0IL1M/C0g8DuaK58TzmhReUakjPxAyTVzJmTLoaEx06Py 6zOg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=S8bOWZs8wa2CgfkuK8HhPjYI682g9sPrNBOqzgGn9pw=; b=u4R4zYGcO/NFYv2RYbGnQZIEDvmi+LWxTRLd8cPttjp6koeyhs2hjppkqUa0tYtw1e coYt/jjakrNBJ+JOH7ZSbJdIV32sMyMPBRMDnm21x41FMzy4Uc8I47k40wWwDGNhmSx2 w1HLxSH8Wpiu13MiwXM+w3uSrEI7RenR4fAYTVIc/j6r807dkhNyytZbgBdBqA0vSTol Gs2k40LzQf/VZlWEXTVUtY8BA9bk/O/OK4mAsqZuZhN3Tf8t2jpaemwOfeJ19nmVks/p EXFkF2oeqksWgIxOVpP8zhZU0ep7FXP8aLJrZWS2xYsS/4M0vmIiFrD+aW71DnXjx3ry wjug== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id t21si19868147edw.253.2019.07.31.08.48.06 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:07 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id A068AAFA5; Wed, 31 Jul 2019 15:48:06 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, Will Deacon Cc: phill@raspberryi.org, f.fainelli@gmail.com, linux-kernel@vger.kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 5/8] arm64: use ZONE_DMA on DMA addressing limited devices Date: Wed, 31 Jul 2019 17:47:48 +0200 Message-Id: <20190731154752.16557-6-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP So far all arm64 devices have supported 32 bit DMA masks for their peripherals. This is not true anymore for the Raspberry Pi 4. Most of it's peripherals can only address the first GB or memory of a total of up to 4 GB. This goes against ZONE_DMA32's original intent, and breaks other subsystems as it's expected for ZONE_DMA32 to be addressable with a 32 bit mask. So it was decided to use ZONE_DMA for this specific case. Devices with with 32 bit DMA addressing support will still bypass ZONE_DMA but those who don't will create both zones. ZONE_DMA will contain the memory addressable by all the SoC's devices and ZONE_DMA32 the rest of the 32 bit addressable memory. Signed-off-by: Nicolas Saenz Julienne --- arch/arm64/Kconfig | 4 ++++ arch/arm64/mm/init.c | 38 ++++++++++++++++++++++++++++++++------ 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 3adcec05b1f6..a9fd71d3bc8e 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -266,6 +266,10 @@ config GENERIC_CSUM config GENERIC_CALIBRATE_DELAY def_bool y +config ZONE_DMA + bool "Support DMA zone" if EXPERT + default y + config ZONE_DMA32 bool "Support DMA32 zone" if EXPERT default y diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index 1c4ffabbe1cb..f5279ef85756 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -50,6 +50,13 @@ s64 memstart_addr __ro_after_init = -1; EXPORT_SYMBOL(memstart_addr); +/* + * We might create both a ZONE_DMA and ZONE_DMA32. ZONE_DMA is needed if there + * are periferals unable to address the first naturally aligned 4GB of ram. + * ZONE_DMA32 will be expanded to cover the rest of that memory. If such + * limitations doesn't exist only ZONE_DMA32 is created. + */ +phys_addr_t arm64_dma_phys_limit __ro_after_init; phys_addr_t arm64_dma32_phys_limit __ro_after_init; #ifdef CONFIG_KEXEC_CORE @@ -193,6 +200,9 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) { unsigned long max_zone_pfns[MAX_NR_ZONES] = {0}; +#ifdef CONFIG_ZONE_DMA + max_zone_pfns[ZONE_DMA] = PFN_DOWN(arm64_dma_phys_limit); +#endif #ifdef CONFIG_ZONE_DMA32 max_zone_pfns[ZONE_DMA32] = PFN_DOWN(arm64_dma32_phys_limit); #endif @@ -207,14 +217,19 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) { struct memblock_region *reg; unsigned long zone_size[MAX_NR_ZONES], zhole_size[MAX_NR_ZONES]; + unsigned long max_dma = PFN_DOWN(arm64_dma_phys_limit); unsigned long max_dma32 = min; memset(zone_size, 0, sizeof(zone_size)); +#ifdef CONFIG_ZONE_DMA + if (max_dma) + zone_size[ZONE_DMA] = max_dma - min; +#endif /* 4GB maximum for 32-bit only capable devices */ #ifdef CONFIG_ZONE_DMA32 max_dma32 = PFN_DOWN(arm64_dma32_phys_limit); - zone_size[ZONE_DMA32] = max_dma32 - min; + zone_size[ZONE_DMA32] = max_dma32 - max_dma - min; #endif zone_size[ZONE_NORMAL] = max - max_dma32; @@ -226,11 +241,17 @@ static void __init zone_sizes_init(unsigned long min, unsigned long max) if (start >= max) continue; - +#ifdef CONFIG_ZONE_DMA + if (start < max_dma) { + unsigned long dma_end = min_not_zero(end, max_dma); + zhole_size[ZONE_DMA] -= dma_end - start; + } +#endif #ifdef CONFIG_ZONE_DMA32 if (start < max_dma32) { - unsigned long dma_end = min(end, max_dma32); - zhole_size[ZONE_DMA32] -= dma_end - start; + unsigned long dma32_end = min(end, max_dma32); + unsigned long dma32_start = max(start, max_dma); + zhole_size[ZONE_DMA32] -= dma32_end - dma32_start; } #endif if (end > max_dma32) { @@ -418,6 +439,11 @@ void __init arm64_memblock_init(void) early_init_fdt_scan_reserved_mem(); + if (IS_ENABLED(CONFIG_ZONE_DMA)) + arm64_dma_phys_limit = max_zone_dma_phys(); + else + arm64_dma_phys_limit = 0; + /* 4GB maximum for 32-bit only capable devices */ if (IS_ENABLED(CONFIG_ZONE_DMA32)) arm64_dma32_phys_limit = max_zone_dma32_phys(); @@ -430,7 +456,7 @@ void __init arm64_memblock_init(void) high_memory = __va(memblock_end_of_DRAM() - 1) + 1; - dma_contiguous_reserve(arm64_dma32_phys_limit); + dma_contiguous_reserve(arm64_dma_phys_limit ? : arm64_dma32_phys_limit); } void __init bootmem_init(void) @@ -533,7 +559,7 @@ static void __init free_unused_memmap(void) */ void __init mem_init(void) { - if (swiotlb_force == SWIOTLB_FORCE || + if (swiotlb_force == SWIOTLB_FORCE || arm64_dma_phys_limit || max_pfn > (arm64_dma32_phys_limit >> PAGE_SHIFT)) swiotlb_init(1); else From patchwork Wed Jul 31 15:47:49 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068509 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id D18A51395 for ; Wed, 31 Jul 2019 15:48:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id BC7BA20415 for ; Wed, 31 Jul 2019 15:48:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id AF5F6204C1; Wed, 31 Jul 2019 15:48:25 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 15080204FB for ; Wed, 31 Jul 2019 15:48:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5C4CB8E0041; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 527D08E000D; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3F01A8E0041; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by kanga.kvack.org (Postfix) with ESMTP id E3A1D8E000D for ; Wed, 31 Jul 2019 11:48:10 -0400 (EDT) Received: by mail-ed1-f71.google.com with SMTP id b12so42678326eds.14 for ; Wed, 31 Jul 2019 08:48:10 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=xW9yzjlIisbGkTIVipjGEOl1onAKCapY0yV69WBDskI=; b=qa1znJb3IIEdt1uQKBXWk4X6v08L1+4N80G65FUt4LybOhyILGQZcrM1oqn8v3eo/d V1U+cMULy8RYnWX9Ni/RyjrQTVKhEzcS4USwPazaG0fRa9fjlqJjBm5i+TKEIJaBIbP9 qBLjwsLKvZmriC6RVUbE/pgIWpT34J/CO61r4m0qyJjN3vEu3768kbOc930RR3NZD7ru 8zGJwPm+Eor/eXBjeJC2kv49LY6nSfShn1uKDxsRXPqsaqfZc+Zxsv4OMW4DCkHGM+on kaQvjCp8STZ7FHxkK2PmiqyJ1qEAgumO1V4zrv3+qhMuDcZammOiSF2WDzAk6UlbNbsa qASw== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAVOWz3EMXUHz5U3V1AyrOo93P6zBpBLxuFdJxhWS/sgY9ZjdIqx b6s6qpbN9zC4vPSm2ee0RI+a9VVXnuUZWU2FVcFsDaHwL94BmHtjKqvvyMfRE3N1xYiNKYMaueX bbIvfmRweQsf0Ji2YUzE9P96c4gEER7hPQKPrnGiRcGdqvl9MwBoW7eZrf+rd5zr8Mg== X-Received: by 2002:a17:906:505:: with SMTP id j5mr94950710eja.261.1564588090453; Wed, 31 Jul 2019 08:48:10 -0700 (PDT) X-Google-Smtp-Source: APXvYqyIFu3tmnWYohAAcS1uThVmiJmuAcwS78hs1fsA5JvfB4abQGBcNfuVhRYlRMxui2JkCnLZ X-Received: by 2002:a17:906:505:: with SMTP id j5mr94950635eja.261.1564588089324; Wed, 31 Jul 2019 08:48:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588089; cv=none; d=google.com; s=arc-20160816; b=RjajqypGNqyKEKNGiMYa8QJ+/vHkhDpe/PbimfGo3YxJFHccw4uAOvxBcgO2hH0Qck OTVJSp/jYCtUdaXsp6Lz405mFhDYRveFdK/HsYf1GRc/ph17a6Dy6gwHWh8GQe666LMS 9VsnDbs7DhI/0/6SvlOYxY7Kj9W0rU9RGal4TfVFZ9MbrAtVWA9NJiZrkmOie1j+sdCO sNJeMJCBGwdwl293bHJJTIIZ9sAs5pPNJnHJBLX1LSfmPMlr55qplG4p4FtLVw7BwFf5 8a3joCzjNyHYPdFS/B7ATXidUxmNg3ZJGcYFCeLZWiQKY9iA/MOLRP87WSgilaPeb+Pi vrAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=xW9yzjlIisbGkTIVipjGEOl1onAKCapY0yV69WBDskI=; b=XZbY7is6ujLbONhd9xJrWqLS4JCRjGFi7OhottYJJ0J409apbewL2An0R3EN0L10nh O8maFpCXMQGzHTp45jIu7Szml2rJAGIu+S1IC22bpsCFZys33y8nLoga4Cr9YZvxbqCU nkmYtytamdizPGsM+b/tf1UvvXUHGhTDwOSdADDpnXMdjt9F1T9jIS9X/7NvkuLkLv3/ 7153y0oA0T/FwC39m+y8iYW50gbx5swuey7a5fLaWCJKY8kWQXedQPgKKpXYheKZTjWO uui/62VDl05mO1JWOc6RiPcnQidQ/Bf34aughP7G4trRYGJFAmOHpMw3Hn9MhwVrlimj fTmA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id u13si19729900ejx.356.2019.07.31.08.48.09 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:09 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id B8A38AFFB; Wed, 31 Jul 2019 15:48:08 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, Marek Szyprowski Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, linux-kernel@vger.kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, linux-rpi-kernel@lists.infradead.org, Benjamin Herrenschmidt , Paul Mackerras , Michael Ellerman , Heiko Carstens , Vasily Gorbik , Christian Borntraeger , linuxppc-dev@lists.ozlabs.org, linux-s390@vger.kernel.org Subject: [PATCH 6/8] dma-direct: turn ARCH_ZONE_DMA_BITS into a variable Date: Wed, 31 Jul 2019 17:47:49 +0200 Message-Id: <20190731154752.16557-7-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP Some architectures, notably arm64, are interested in tweaking this depending on their runtime dma addressing limitations. Signed-off-by: Nicolas Saenz Julienne --- arch/powerpc/include/asm/page.h | 9 --------- arch/powerpc/mm/mem.c | 14 ++++++++++++-- arch/s390/include/asm/page.h | 2 -- arch/s390/mm/init.c | 1 + include/linux/dma-direct.h | 2 ++ kernel/dma/direct.c | 8 +++----- 6 files changed, 18 insertions(+), 18 deletions(-) diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h index 0d52f57fca04..73668a21ae78 100644 --- a/arch/powerpc/include/asm/page.h +++ b/arch/powerpc/include/asm/page.h @@ -319,13 +319,4 @@ struct vm_area_struct; #endif /* __ASSEMBLY__ */ #include -/* - * Allow 30-bit DMA for very limited Broadcom wifi chips on many powerbooks. - */ -#ifdef CONFIG_PPC32 -#define ARCH_ZONE_DMA_BITS 30 -#else -#define ARCH_ZONE_DMA_BITS 31 -#endif - #endif /* _ASM_POWERPC_PAGE_H */ diff --git a/arch/powerpc/mm/mem.c b/arch/powerpc/mm/mem.c index 9191a66b3bc5..3792a998ca02 100644 --- a/arch/powerpc/mm/mem.c +++ b/arch/powerpc/mm/mem.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include @@ -201,7 +202,7 @@ static int __init mark_nonram_nosave(void) * everything else. GFP_DMA32 page allocations automatically fall back to * ZONE_DMA. * - * By using 31-bit unconditionally, we can exploit ARCH_ZONE_DMA_BITS to + * By using 31-bit unconditionally, we can exploit arch_zone_dma_bits to * inform the generic DMA mapping code. 32-bit only devices (if not handled * by an IOMMU anyway) will take a first dip into ZONE_NORMAL and get * otherwise served by ZONE_DMA. @@ -237,9 +238,18 @@ void __init paging_init(void) printk(KERN_DEBUG "Memory hole size: %ldMB\n", (long int)((top_of_ram - total_ram) >> 20)); + /* + * Allow 30-bit DMA for very limited Broadcom wifi chips on many + * powerbooks. + */ + if (IS_ENABLED(CONFIG_PPC32)) + arch_zone_dma_bits = 30; + else + arch_zone_dma_bits = 31; + #ifdef CONFIG_ZONE_DMA max_zone_pfns[ZONE_DMA] = min(max_low_pfn, - 1UL << (ARCH_ZONE_DMA_BITS - PAGE_SHIFT)); + 1UL << (arch_zone_dma_bits - PAGE_SHIFT)); #endif max_zone_pfns[ZONE_NORMAL] = max_low_pfn; #ifdef CONFIG_HIGHMEM diff --git a/arch/s390/include/asm/page.h b/arch/s390/include/asm/page.h index 823578c6b9e2..a4d38092530a 100644 --- a/arch/s390/include/asm/page.h +++ b/arch/s390/include/asm/page.h @@ -177,8 +177,6 @@ static inline int devmem_is_allowed(unsigned long pfn) #define VM_DATA_DEFAULT_FLAGS (VM_READ | VM_WRITE | \ VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC) -#define ARCH_ZONE_DMA_BITS 31 - #include #include diff --git a/arch/s390/mm/init.c b/arch/s390/mm/init.c index 20340a03ad90..07d93955d3e4 100644 --- a/arch/s390/mm/init.c +++ b/arch/s390/mm/init.c @@ -118,6 +118,7 @@ void __init paging_init(void) sparse_memory_present_with_active_regions(MAX_NUMNODES); sparse_init(); + arch_zone_dma_bits = 31; memset(max_zone_pfns, 0, sizeof(max_zone_pfns)); max_zone_pfns[ZONE_DMA] = PFN_DOWN(MAX_DMA_ADDRESS); max_zone_pfns[ZONE_NORMAL] = max_low_pfn; diff --git a/include/linux/dma-direct.h b/include/linux/dma-direct.h index adf993a3bd58..a1b353b77858 100644 --- a/include/linux/dma-direct.h +++ b/include/linux/dma-direct.h @@ -5,6 +5,8 @@ #include #include +extern unsigned int arch_zone_dma_bits; + #ifdef CONFIG_ARCH_HAS_PHYS_TO_DMA #include #else diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 59bdceea3737..40dfc9b4ee4c 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -19,9 +19,7 @@ * Most architectures use ZONE_DMA for the first 16 Megabytes, but * some use it for entirely different regions: */ -#ifndef ARCH_ZONE_DMA_BITS -#define ARCH_ZONE_DMA_BITS 24 -#endif +unsigned int arch_zone_dma_bits __ro_after_init = 24; static void report_addr(struct device *dev, dma_addr_t dma_addr, size_t size) { @@ -72,7 +70,7 @@ static gfp_t __dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask, * Note that GFP_DMA32 and GFP_DMA are no ops without the corresponding * zones. */ - if (*phys_mask <= DMA_BIT_MASK(ARCH_ZONE_DMA_BITS)) + if (*phys_mask <= DMA_BIT_MASK(arch_zone_dma_bits)) return GFP_DMA; if (*phys_mask <= DMA_BIT_MASK(32)) return GFP_DMA32; @@ -387,7 +385,7 @@ int dma_direct_supported(struct device *dev, u64 mask) u64 min_mask; if (IS_ENABLED(CONFIG_ZONE_DMA)) - min_mask = DMA_BIT_MASK(ARCH_ZONE_DMA_BITS); + min_mask = DMA_BIT_MASK(arch_zone_dma_bits); else min_mask = DMA_BIT_MASK(32); From patchwork Wed Jul 31 15:47:50 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068511 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id F12291395 for ; Wed, 31 Jul 2019 15:48:28 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id DD73720415 for ; Wed, 31 Jul 2019 15:48:28 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D0EA7204FB; Wed, 31 Jul 2019 15:48:28 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 708BC20415 for ; Wed, 31 Jul 2019 15:48:28 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id D8CCB8E000D; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id D41F68E0042; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C07C28E000D; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f70.google.com (mail-ed1-f70.google.com [209.85.208.70]) by kanga.kvack.org (Postfix) with ESMTP id 667C58E0042 for ; Wed, 31 Jul 2019 11:48:11 -0400 (EDT) Received: by mail-ed1-f70.google.com with SMTP id b3so42630148edd.22 for ; Wed, 31 Jul 2019 08:48:11 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=JdEJ1yPdKVolU6ZyqeGm/eidwXHliD8yjDfIXTvtKIU=; b=AHqYki7THYJmHjUbIfWmg8K+KfMU8WihnbJ4NydP+5Ks3awYFUvbRBeyzY17oaDJwa oGdTcm3groX49pqSNhf5GJp3ztXBsdgw2LA6Ud6y+fotHVLXyn5biGA0NcQa5QH7fg35 wkOF2E91jus6TpBH40czvXCKlVMhudKbaDidYj12v8dDXIf4URpkJSeuwdd2rkAeh9Dv H0dTxj2I9oyPnZu+NynyFh0hp9WVVp3mV/AXMQUkQ6y4Uaj4AcEqvQtGremqUskyxbNm M+WHnxFUw0tqnhdKYEEEVWbvUdzrfayrM9W6rr8cwWAaq+iI3yZ/iTYbC3dybTtEHAB6 EErA== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAXGw1dcbJN4yipeZhRhi5QuOfI1JzAFcpU3ZZGJmuylDZUKdLRB GBWbf1Kv+kFdrrF3B2y3Q4iQsvXKo4XcToLreMoeGOCeaCoQgHaQyrO46/5aW5eSEgRHfDPoBsg IJqbRaXQrBWbkqd/P6xJ10PN9ytGPxSn0vrJXR3Jjjb/Pd3s5M0GySUMp2O2T0o4QiA== X-Received: by 2002:a50:fa05:: with SMTP id b5mr106165168edq.269.1564588091011; Wed, 31 Jul 2019 08:48:11 -0700 (PDT) X-Google-Smtp-Source: APXvYqw/jyfQsHKhcAUBdjB7kattfyoPS+1dpZmxeUZwzE6CLnSxanOGnqMtAWiL861tPcv8QQRY X-Received: by 2002:a50:fa05:: with SMTP id b5mr106165108edq.269.1564588090313; Wed, 31 Jul 2019 08:48:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588090; cv=none; d=google.com; s=arc-20160816; b=cPyOBxDPCLbat/7NeGvoavtNNmBV6HMSxsRwlj4Is/+w/1us3ZIuR9GiI0Tvs/aHpT T2vKE8WhxdM3MN4CFm7mvEW+8gFLN+gWgU3urT/M7jEESzk0DJfzqb/g9wLD5UrlQwhE oChoDnNrLPI3K1dVaCcxtcD+P511myg6R4GcVvbr9EFnAY8Nx8S1qCLcSbWHGeT6RPyR yntOidI0HP09Y2jAsnxgFxO/ldYG4Ry1ku+CtymDUW9jUh4f4yxnDnydUKzY5rCz6W9y 78tTX/66uIQOuRetczX8yURmsFIZKT7Ebl9epVYMuvECC7RUOUF4bDUFPDz8ypr4qpUI fdQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=JdEJ1yPdKVolU6ZyqeGm/eidwXHliD8yjDfIXTvtKIU=; b=Mjo5X61TKPd90/wvjP5/lTzwU5jCzLjXvsN8Bs1YII23dqFDAMSwptp6GkRHfSuw26 lvPadQysGex8UO2eYjLLcKNAy9CgHjpK0MyIichMJJMNGHDPqFRuRMNNq9VOBSOBS2mx MsTgs9VRpxM2CP7lSCbiOQDi1Mnm1bANUfqdq+3yiz2v7ze4xEPBsSNYk8vCPmXmwRoc gm8+Ul7Ti6h6rJ0P74uQx3z+hJAQeA2npOOmGxDeh65XGLeGfCnvuOIknD8jPkhBrUDz oOV78cieORW9V1OCZ7J4N97rsX0lBA981lghDabgxoGcVlTPyuTbdPOHM8S6hAoe12In 2r8Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id m55si20893131edm.55.2019.07.31.08.48.10 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:10 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id D42A2B03A; Wed, 31 Jul 2019 15:48:09 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 7/8] arm64: update arch_zone_dma_bits to fine tune dma-direct min mask Date: Wed, 31 Jul 2019 17:47:50 +0200 Message-Id: <20190731154752.16557-8-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP With the introduction of ZONE_DMA in arm64 devices are not forced to support 32 bit DMA masks. We have to inform dma-direct of this limitation whenever it happens. Signed-off-by: Nicolas Saenz Julienne --- arch/arm64/mm/init.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/arch/arm64/mm/init.c b/arch/arm64/mm/init.c index f5279ef85756..b809f3259340 100644 --- a/arch/arm64/mm/init.c +++ b/arch/arm64/mm/init.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include @@ -439,10 +440,14 @@ void __init arm64_memblock_init(void) early_init_fdt_scan_reserved_mem(); - if (IS_ENABLED(CONFIG_ZONE_DMA)) + if (IS_ENABLED(CONFIG_ZONE_DMA)) { arm64_dma_phys_limit = max_zone_dma_phys(); - else + + if (arm64_dma_phys_limit) + arch_zone_dma_bits = ilog2(arm64_dma_phys_limit) + 1; + } else { arm64_dma_phys_limit = 0; + } /* 4GB maximum for 32-bit only capable devices */ if (IS_ENABLED(CONFIG_ZONE_DMA32)) From patchwork Wed Jul 31 15:47:51 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Nicolas Saenz Julienne X-Patchwork-Id: 11068513 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 35A73912 for ; Wed, 31 Jul 2019 15:48:32 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 217E820415 for ; Wed, 31 Jul 2019 15:48:32 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 14FFC204FB; Wed, 31 Jul 2019 15:48:32 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-2.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.1 Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id ABE2B20415 for ; Wed, 31 Jul 2019 15:48:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 418608E0043; Wed, 31 Jul 2019 11:48:13 -0400 (EDT) Delivered-To: linux-mm-outgoing@kvack.org Received: by kanga.kvack.org (Postfix, from userid 40) id 3EED48E0042; Wed, 31 Jul 2019 11:48:13 -0400 (EDT) X-Original-To: int-list-linux-mm@kvack.org X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 305D88E0043; Wed, 31 Jul 2019 11:48:13 -0400 (EDT) X-Original-To: linux-mm@kvack.org X-Delivered-To: linux-mm@kvack.org Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by kanga.kvack.org (Postfix) with ESMTP id D5F598E0042 for ; Wed, 31 Jul 2019 11:48:12 -0400 (EDT) Received: by mail-ed1-f69.google.com with SMTP id e9so31544675edv.18 for ; Wed, 31 Jul 2019 08:48:12 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-original-authentication-results:x-gm-message-state:from:to:cc :subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=y1JUTJoMwtxuP9fpjTlmgOiVx9qaajEKjxesU1OKZaM=; b=qR9jvCFu6q014mVefeRSQ6sOqTyntxgsP/4B3Epgsu5gPXGiXlMLNNwCcX7RCj1Px3 x3aTU//jUG2nzOVZbB+SVuAneX/27Br8Hy/5cLgunzu65Ly+SQCjKAKdqLSdxpX0SOYd gzBqqgv4NMuNUUyBWyFmKkf93eDYVN3lww5HLsUWq3hDp7J4k95PQFLSH/ya82wYB826 JvkJIBTeuv0tdp2SUR8ZrJlk8FpmuIYFjSutRuzs78RixawSPmo2ZoIFB9SYwtcrAvOR sZNMq93TUOwnuFZ2NCkK/tq+KU80Kfnn/rwRwDkvQqwjGSezOXHi6IvVBRHJ8MX329PC W5Ug== X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Gm-Message-State: APjAAAVPXgbKkdr1Wj2ULTzcWhatdH7D9SL/4VtDtxZBP/0/pI1Y700A Ta02qY3CCdY2GUsczfS98lxMIXF+cUX4CzhlKbB7ksjwr3f6aXCE+JVRmHLDteyVQogTehEzv0T xHY70mY+c9TYnjTsvIbUhsXB8Ay9ayEFKbyaGPDmppB7cKgwhOALvBONb1tkny32c+A== X-Received: by 2002:a17:906:19c6:: with SMTP id h6mr7235442ejd.262.1564588092443; Wed, 31 Jul 2019 08:48:12 -0700 (PDT) X-Google-Smtp-Source: APXvYqxrtW1qA48DRhwV5L5lTp7ZZlrD6SJI2UV1KM3MWmjWMYY119MpN8vC1VYXQqbym22Y9Yro X-Received: by 2002:a17:906:19c6:: with SMTP id h6mr7235384ejd.262.1564588091585; Wed, 31 Jul 2019 08:48:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564588091; cv=none; d=google.com; s=arc-20160816; b=iX+EdX4/pCCYb+xAH3Y+s7ghE5VRgaXDzKXKQjDd+Dzltj8j+t1PQFq0HSDL/mBNVn 0/D2K4QpAYASmIVS5dYb6qRDk24U2h5ZfvnQmXcSVep1I7iRae6a8RFtH1DtTGfycCm+ MkL8FLBpDCxGgi8JqZjVWCvfs5mvlARK0yzBzfmgGZyEiF+tHIIv6uOpKU6oKMx4fApY rlNh1/v1eJXDUPHjs4zpfWFwTzct5QTu9o1bKAc3jkalAgJpTazO5V/jofMohLMrO2Az ryX2xVQfdldPLpRqrLtV8mvesyjGdS37eS5OjC5nxKtq7OxvlWPxmIV+wfZUE0ny3Ioy 8WWw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from; bh=y1JUTJoMwtxuP9fpjTlmgOiVx9qaajEKjxesU1OKZaM=; b=xLl7pkFx2biwLVDYWb05iax3q/I9XE0yOVkF2kEnNk66tp9+g5+JWOAD3hZ5JMBWbD jL6zIPIqyV0cZCDn3fPpE01YIK8mu7O/xT9UP0a5uebGC/Xyn9eh2yB7JYpXxVWV0PPs N0wP1kB/+pysI0XLZBd9bvmZDvAWi+kR/D4RjhPhlqZeWBqIpFStaNVfVqzu+0trjpFa S0Bk9CauCa2xvAt0c3GFyYxpB18874TJQqk/5ro1Mdp0n85oyLosOBDcZysegfIKcWEP XTIBpR09fL6ddjoto/Cz/xwEOQImzOTyUPRW6GqaDjYA1U3tSzlPMQ4VSPoh6vrdu6g4 Y/Ig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de Received: from mx1.suse.de (mx2.suse.de. [195.135.220.15]) by mx.google.com with ESMTPS id gq12si20425835ejb.170.2019.07.31.08.48.11 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 31 Jul 2019 08:48:11 -0700 (PDT) Received-SPF: pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) client-ip=195.135.220.15; Authentication-Results: mx.google.com; spf=pass (google.com: domain of nsaenzjulienne@suse.de designates 195.135.220.15 as permitted sender) smtp.mailfrom=nsaenzjulienne@suse.de X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id 1CBAEB05E; Wed, 31 Jul 2019 15:48:11 +0000 (UTC) From: Nicolas Saenz Julienne To: catalin.marinas@arm.com, hch@lst.de, wahrenst@gmx.net, marc.zyngier@arm.com, Robin Murphy , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, iommu@lists.linux-foundation.org, linux-mm@kvack.org, linux-kernel@vger.kernel.org Cc: phill@raspberryi.org, f.fainelli@gmail.com, will@kernel.org, robh+dt@kernel.org, eric@anholt.net, mbrugger@suse.com, nsaenzjulienne@suse.de, akpm@linux-foundation.org, frowand.list@gmail.com, m.szyprowski@samsung.com, linux-rpi-kernel@lists.infradead.org Subject: [PATCH 8/8] mm: comment arm64's usage of 'enum zone_type' Date: Wed, 31 Jul 2019 17:47:51 +0200 Message-Id: <20190731154752.16557-9-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.22.0 In-Reply-To: <20190731154752.16557-1-nsaenzjulienne@suse.de> References: <20190731154752.16557-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 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: X-Virus-Scanned: ClamAV using ClamSMTP arm64 uses both ZONE_DMA and ZONE_DMA32 for the same reasons x86_64 does: peripherals with different DMA addressing limitations. This updates both ZONE_DMAs comments to inform about the usage. Signed-off-by: Nicolas Saenz Julienne --- include/linux/mmzone.h | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h index d77d717c620c..8fa6bcf72e7c 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -365,23 +365,24 @@ enum zone_type { * * Some examples * - * Architecture Limit - * --------------------------- - * parisc, ia64, sparc <4G - * s390, powerpc <2G - * arm Various - * alpha Unlimited or 0-16MB. + * Architecture Limit + * ---------------------------------- + * parisc, ia64, sparc, arm64 <4G + * s390, powerpc <2G + * arm Various + * alpha Unlimited or 0-16MB. * * i386, x86_64 and multiple other arches - * <16M. + * <16M. */ ZONE_DMA, #endif #ifdef CONFIG_ZONE_DMA32 /* - * x86_64 needs two ZONE_DMAs because it supports devices that are - * only able to do DMA to the lower 16M but also 32 bit devices that - * can only do DMA areas below 4G. + * x86_64 and arm64 need two ZONE_DMAs because they support devices + * that are only able to DMA a fraction of the 32 bit addressable + * memory area, but also devices that are limited to that whole 32 bit + * area. */ ZONE_DMA32, #endif