From patchwork Tue May 11 14:42:48 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fuad Tabba X-Patchwork-Id: 12251275 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.4 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_ADSP_CUSTOM_MED,DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_CR_TRAILER,INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE, URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 90D41C433ED for ; Tue, 11 May 2021 14:47:06 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id EC25D61263 for ; Tue, 11 May 2021 14:47:05 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org EC25D61263 Authentication-Results: mail.kernel.org; dmarc=fail (p=reject dis=none) header.from=google.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Transfer-Encoding :Content-Type:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Cc:To:From:Subject:References:Mime-Version: Message-Id:In-Reply-To:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=zPhzgraoeaWea9W639jQlOv7Ymh694EPV0dXQsSkT9Y=; b=YBwoXMaXWKIdCQ PPmMYSs4KRmyZFWAXd3Wl575Lp10ktZW8c10A+cpv08yFLVvBNPhFYjOjyiFJ/UMLhrPnuQZ6vDZE B4Dbw2rPZ/MM4nsiZIqOBvSPMzgLl35izu4CL7BZAHQV642vcBdZiK+Y3tEh78kVbHtpiO04R1fgY tSVqyqqM1NIqp7h6LI6RkMzu6A1fXo7/pEH8pqY56YGbE2PLnU7TuIpWRdLikJO3xaigSjTtu768S wqcA+n1zb7poJOw7Sei7Gn7aZZj8VYjyoc6lPwmu/TgBIFYwGKPLNkLmlDLmHhU2vtv2vI1JAgwBf N9ps+yy9WNtXVuEzNJ7w==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lgTdV-000Tyw-Q1; Tue, 11 May 2021 14:45:26 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgTbT-000TGi-8C for linux-arm-kernel@desiato.infradead.org; Tue, 11 May 2021 14:43:19 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20210309; h=Content-Type:Cc:To:From:Subject: References:Mime-Version:Message-Id:In-Reply-To:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=T7VsirMUmcmfR3W7jGLVBbLf6Nqe5HLZuoCOt+ECiBU=; b=BBZbtO4CQaYviJO63rYVYsvj/q RRYj7hF9oAIpV0r6qoLIjTgaZUcSXS7i+vYePQAcAQrTuGKYX9m/H36WxkE/erg4uCuY+T3N0cPhw 3i+WWVO4UZThy1A2q4QZF7FuFoxrfyQkyQELIk14ndTrxe3ww+aQ8gkiiffXgtEMxib/Z7F5S1Twd fH1UPMzNmbmqbOFn9/1zOYVi1p5C7Z97882PVBjP0IrdKqKEATAIgkxcJJzCw5WA6bs034hyEjmIV uIIH8U3i6Xg9zxLNyVvTOX5Uw+kLafQFIc4BfrVVAqrFCGVcR/zr4J7KcwCJCQQTW98Jr5gezNnQZ cpgBZ0Mg==; Received: from mail-qv1-xf4a.google.com ([2607:f8b0:4864:20::f4a]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lgTbQ-009gWb-MK for linux-arm-kernel@lists.infradead.org; Tue, 11 May 2021 14:43:18 +0000 Received: by mail-qv1-xf4a.google.com with SMTP id s15-20020a0cdc0f0000b02901e9373e40e2so4304233qvk.17 for ; Tue, 11 May 2021 07:43:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=date:in-reply-to:message-id:mime-version:references:subject:from:to :cc; bh=T7VsirMUmcmfR3W7jGLVBbLf6Nqe5HLZuoCOt+ECiBU=; b=ZmJEDh8mZaKupvJuaDkrflyEsS0/19ykAI9k9hQADe2NCMUoS4Qf/RIYaU5h23HOCC OCrWZEWd+QDiiknWgUoW4pwssyaTf96Z+70m9VSNdeHNSRIaDkJQ8BK+FdoheeEDnN7z ATuDHBSdvJC+a08Xv4KX7znXQ9CU2pPIRlcFq7yeXUnpIixWBB1aD5nkRu8/dgnPKVI0 N3j3s0vx6PwPJlPT1Tq4U/WHlnzelJn3QJGC9hAG6cJJiin43+vh354GlocKSDcGj7GE Km9VuiChxLscGCypVd80d3iM5+z65eqE+C+wu7lR6r975tXh9mmoMKqSeQmq98wHS1SJ U/Rw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=T7VsirMUmcmfR3W7jGLVBbLf6Nqe5HLZuoCOt+ECiBU=; b=SgI2w9GjMT3dcZhzmQIEHwVSnsl56rzWeu6W6V3OfeXuaooKkhJ4AqrZQM1owVGxzu x/GoBwqD/RQVes66hC3V6eBz3bNmnWUEkIQBF0OsZDfHOxR5BLd4qU3SRrdvZhmeI3sV bTlweHiNL5qHc+t9binLv1rPvcazKSbpyMG5yql+CPAnmEffJ5fdqBCd6mUsPaX9Fssv Ks7fQW5jFDgCr85+QGdF5hE6/EDLR8vhfI8PAr2hoyfIzJN1VdLgWJSwlSni7zEgIPgg rsdtqTc2zJmyzWP77Hcn5G/+whLDtsjClbp9iXZxGLMCHCeJG6HLjbuUJWhnHulzgv7e EFsQ== X-Gm-Message-State: AOAM533Qj47gYeT1IhOqeDsGbXCKDE3A4AImgQK47zLvO+3KP1H7w7iq k84Z6gJUVaNqKJ+6s+kPOd8O1YH7Ua9cFBYuergm1/gs6ILalNL5b7+HOgN+jEJWtXs/BKd2f8h iCMR51VtWwoBUob+SGRJaHyyMKJQJxLpAK58Ud23Xp5z2ADLpuFMcurHi8VvyFEdaasb+HDGB/5 v6gA== X-Google-Smtp-Source: ABdhPJwOXQG3Hf0k6Tho5+enpUE1dtGSNbayE1emXYQstpGgbAbIf1p2tXpRDmyMa11xqKTQCUjUYe1+AA== X-Received: from tabba.c.googlers.com ([fda3:e722:ac3:10:28:9cb1:c0a8:482]) (user=tabba job=sendgmr) by 2002:a0c:9d0e:: with SMTP id m14mr29960854qvf.50.1620744194809; Tue, 11 May 2021 07:43:14 -0700 (PDT) Date: Tue, 11 May 2021 15:42:48 +0100 In-Reply-To: <20210511144252.3779113-1-tabba@google.com> Message-Id: <20210511144252.3779113-10-tabba@google.com> Mime-Version: 1.0 References: <20210511144252.3779113-1-tabba@google.com> X-Mailer: git-send-email 2.31.1.607.g51e8a6a459-goog Subject: [PATCH v1 09/13] arm64: __clean_dcache_area_pop to take end parameter instead of size From: Fuad Tabba To: linux-arm-kernel@lists.infradead.org Cc: will@kernel.org, catalin.marinas@arm.com, mark.rutland@arm.com, maz@kernel.org, ardb@kernel.org, james.morse@arm.com, alexandru.elisei@arm.com, suzuki.poulose@arm.com, tabba@google.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210511_074316_752609_4F1ED2AA X-CRM114-Status: GOOD ( 13.76 ) 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 To be consistent with other functions with similar names and functionality in cacheflush.h, cache.S, and cachetlb.rst, change to specify the range in terms of start and end, as opposed to start and size. No functional change intended. Reported-by: Will Deacon Signed-off-by: Fuad Tabba --- arch/arm64/include/asm/cacheflush.h | 2 +- arch/arm64/lib/uaccess_flushcache.c | 4 ++-- arch/arm64/mm/cache.S | 9 ++++----- arch/arm64/mm/flush.c | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h index 3255878d6f30..fa5641868d65 100644 --- a/arch/arm64/include/asm/cacheflush.h +++ b/arch/arm64/include/asm/cacheflush.h @@ -61,7 +61,7 @@ extern void invalidate_icache_range(unsigned long start, unsigned long end); extern void __flush_dcache_area(unsigned long start, unsigned long end); extern void __inval_dcache_area(unsigned long start, unsigned long end); extern void __clean_dcache_area_poc(unsigned long start, unsigned long end); -extern void __clean_dcache_area_pop(void *addr, size_t len); +extern void __clean_dcache_area_pop(unsigned long start, unsigned long end); extern void __clean_dcache_area_pou(void *addr, size_t len); extern long __flush_cache_user_range(unsigned long start, unsigned long end); extern void sync_icache_aliases(void *kaddr, unsigned long len); diff --git a/arch/arm64/lib/uaccess_flushcache.c b/arch/arm64/lib/uaccess_flushcache.c index c83bb5a4aad2..62ea989effe8 100644 --- a/arch/arm64/lib/uaccess_flushcache.c +++ b/arch/arm64/lib/uaccess_flushcache.c @@ -15,7 +15,7 @@ void memcpy_flushcache(void *dst, const void *src, size_t cnt) * barrier to order the cache maintenance against the memcpy. */ memcpy(dst, src, cnt); - __clean_dcache_area_pop(dst, cnt); + __clean_dcache_area_pop((unsigned long)dst, (unsigned long)dst + cnt); } EXPORT_SYMBOL_GPL(memcpy_flushcache); @@ -33,6 +33,6 @@ unsigned long __copy_user_flushcache(void *to, const void __user *from, rc = raw_copy_from_user(to, from, n); /* See above */ - __clean_dcache_area_pop(to, n - rc); + __clean_dcache_area_pop((unsigned long)to, (unsigned long)to + n - rc); return rc; } diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S index 7ddf6ff65b15..f35f28845691 100644 --- a/arch/arm64/mm/cache.S +++ b/arch/arm64/mm/cache.S @@ -209,16 +209,15 @@ SYM_FUNC_END_PI(__clean_dcache_area_poc) SYM_FUNC_END(__dma_clean_area) /* - * __clean_dcache_area_pop(kaddr, size) + * __clean_dcache_area_pop(start, end) * - * Ensure that any D-cache lines for the interval [kaddr, kaddr+size) + * Ensure that any D-cache lines for the interval [start, end) * are cleaned to the PoP. * - * - kaddr - kernel address - * - size - size in question + * - start - virtual start address of region + * - end - virtual end address of region */ SYM_FUNC_START_PI(__clean_dcache_area_pop) - add x1, x0, x1 alternative_if_not ARM64_HAS_DCPOP b __clean_dcache_area_poc alternative_else_nop_endif diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index 4e3505c2bea6..5aba7fe42d4b 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -82,7 +82,7 @@ void arch_wb_cache_pmem(void *addr, size_t size) { /* Ensure order against any prior non-cacheable writes */ dmb(osh); - __clean_dcache_area_pop(addr, size); + __clean_dcache_area_pop((unsigned long)addr, (unsigned long)addr + size); } EXPORT_SYMBOL_GPL(arch_wb_cache_pmem);