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 X-Spam-Level: X-Spam-Status: No, score=-17.1 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,SPF_PASS, 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 37CE1C433ED for ; Mon, 17 May 2021 08:00:54 +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 C081D6105A for ; Mon, 17 May 2021 08:00:53 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C081D6105A 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=GuQDQds4U4yJ/GAQIZFBaIvsvOhweknjHx3Vclg5OB4=; b=WFk3UPQeJmdItV REMFlYh9+uxhJR4waOtu453jTYn/bJLlqDvKAMuuNm45bv0HxN5jRjSF5DetWlAbrggfU6r+lYws8 4oi5zA89BOJH9ePtBakICnuyCYWez1aiYa0qY7S+Y6stWyYQnI2WQv98vQvkQbcruQDZzvtnTRQd0 vmatFZIUm45RuhZWaOMFuvMcn2UIpxf7ccYMS/qhUmZB/440Ikgew/VuuWUOvRRq34+3HuaXq4zbl +u7n/K7Eyfuxz2LfHbOR6XeB+RUJtRw8gTW+KLyIvFbv8CeggPDeeLipH08DlBJpflQoWp4ug71Md nmypOudC8EkwSZjLPhRQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1liY96-00E8Ax-Hn; Mon, 17 May 2021 07:58:37 +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 1liY2V-00E6bA-85 for linux-arm-kernel@desiato.infradead.org; Mon, 17 May 2021 07:51:48 +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=WgG8oLNHR/e9+66xlT0prY/sIvRwJ26HMdS+WlaPdwI=; b=2iZ8jjHZ+sT82zrkCnQa5T9Awk /2JbJbkZpHMMZOgHk4QsOoLi0Uao3+0czITf0lQn+081PGjuAtYGi/OyISd5ZIO9TWsmsWiHF0lp8 2Xrv7zbzgfNrwp/39nlUtDoyvxy5SGctSQ3wv362/8dSjB+Z1pzxwwG5lM5MgZt2wI+i7Z0CxHeK7 UCcXginVKp2ztnifDBDeUyLfb8KHI5Wv9+IAH1nKXDqyVy+GycL0xynYlBPH7nsXLMNriVv1jQrkW ml8/5IcdXSbWmm2ZuNnjQpEPd7abKmQuH/yrbt+1gaSRvHXTGpeM20Rp+8L4z3W8N9Fo6AMuvzfpl h+2a1hiw==; Received: from mail-qk1-x74a.google.com ([2607:f8b0:4864:20::74a]) by bombadil.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1liY2S-00DYxt-IL for linux-arm-kernel@lists.infradead.org; Mon, 17 May 2021 07:51:46 +0000 Received: by mail-qk1-x74a.google.com with SMTP id c126-20020ae9ed840000b02903a5090d4944so2077795qkg.15 for ; Mon, 17 May 2021 00:51:43 -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=WgG8oLNHR/e9+66xlT0prY/sIvRwJ26HMdS+WlaPdwI=; b=WaD9itOeTyxZINciNVLf2IVakUMfGMIa/n2Nw6SapMX/cMRtLVlgzwlTDTuJpcZaBy MvhExyEvV1ZlTZYBR+VMxamy+QPfwOyhrKnBgZlHGU3/zaEGOgCp/LnUf5guZaMZVizw YozbQG0WDHlVrTvcWFSHbY3PWOteIlKssggtdm6ymOhDJOOvJCkAI94MAw/36Sy32al9 A5QwHvJLJ9ph8ByyERPYignoMdR+OnMG3IGJd7oO/G6sOTlw1rLnbwDe5xvRJwOMK/xk eVZFnEbGD6TBnAlkhxqDWIHPBmt9c12u1Z+jPff9p6OmF4NDadLaB4PlIQtLHDhyvWiq S6rQ== 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=WgG8oLNHR/e9+66xlT0prY/sIvRwJ26HMdS+WlaPdwI=; b=YzzX6wtbVgResFlQlhbqSJViU3Y4Z6HDf7j7ngjEhyeAFLKUiVPtS3RalD+SIu900/ jh56G+6dZ+s63e7jmjP4k2cEvMxqAhtAdvvThD65WBSY08T1DeQTyN80/jeKGriOqhND dwTX+flKBk6u2dqyqTxk6DA4HI6R6WMoqDBi5CRL0lEUlsnm2GEsdnoNa5EZAeVCiRP8 WspYi345K7JQvXzI52fKYYawgR94TRmL7zBJzTHVEi2BeJ+wLbBiFYIaUBgdURVUhsFY CTsI9d8ljiqgl5pE70AvMHDn9tbI/SJDWpKyhoV2emQhHXWDyd9FQXRlm7gNminhafMi 1mjg== X-Gm-Message-State: AOAM532A47qsCegKuq9PMTX6Numh0IsTjHB9glN+m1UoHTlvQtfiKb5P OBAnbuZkexiSGUua82UooER6Lx4AIcSaJAuwWPNWKXQWIXj9w+SfccX2hSwS34suDYsmxo3AKxP tSEothEk696QgjuNli87qc61+b063ELns6cHhcLrvVVrAUc7LmXU0pfq6fEmt92H872a2QG5UDs toUQ== X-Google-Smtp-Source: ABdhPJxb7wDiT8XRTGCU85mrSRRKl1NkIq5woJdIbE1Se8Vfz/H2myeYiNBeangbHcBsrurUOD+Ho2NDwQ== X-Received: from tabba.c.googlers.com ([fda3:e722:ac3:10:28:9cb1:c0a8:482]) (user=tabba job=sendgmr) by 2002:a0c:f5cd:: with SMTP id q13mr58756175qvm.41.1621237902919; Mon, 17 May 2021 00:51:42 -0700 (PDT) Date: Mon, 17 May 2021 08:51:16 +0100 In-Reply-To: <20210517075124.152151-1-tabba@google.com> Message-Id: <20210517075124.152151-9-tabba@google.com> Mime-Version: 1.0 References: <20210517075124.152151-1-tabba@google.com> X-Mailer: git-send-email 2.31.1.751.gd2f1c929bd-goog Subject: [PATCH v2 08/16] arm64: __inval_dcache_area 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, robin.murphy@arm.com, tabba@google.com X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210517_005144_633446_EA2D1B60 X-CRM114-Status: GOOD ( 14.69 ) 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit 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. Because the code is shared with __dma_inv_area, it changes the parameters for that as well. However, __dma_inv_area is local to cache.S, so no other users are affected. No functional change intended. Reported-by: Will Deacon Signed-off-by: Fuad Tabba --- arch/arm64/include/asm/cacheflush.h | 2 +- arch/arm64/kernel/head.S | 5 +---- arch/arm64/mm/cache.S | 16 +++++++++------- arch/arm64/mm/flush.c | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h index a586afa84172..157234706817 100644 --- a/arch/arm64/include/asm/cacheflush.h +++ b/arch/arm64/include/asm/cacheflush.h @@ -59,7 +59,7 @@ extern void __flush_icache_range(unsigned long start, unsigned long end); extern void invalidate_icache_range(unsigned long start, unsigned long end); extern void __flush_dcache_area(void *addr, size_t len); -extern void __inval_dcache_area(void *addr, size_t len); +extern void __inval_dcache_area(unsigned long start, unsigned long end); extern void __clean_dcache_area_poc(void *addr, size_t len); extern void __clean_dcache_area_pop(void *addr, size_t len); extern void __clean_dcache_area_pou(void *addr, size_t len); diff --git a/arch/arm64/kernel/head.S b/arch/arm64/kernel/head.S index 96873dfa67fd..8df0ac8d9123 100644 --- a/arch/arm64/kernel/head.S +++ b/arch/arm64/kernel/head.S @@ -117,7 +117,7 @@ SYM_CODE_START_LOCAL(preserve_boot_args) dmb sy // needed before dc ivac with // MMU off - mov x1, #0x20 // 4 x 8 bytes + add x1, x0, #0x20 // 4 x 8 bytes b __inval_dcache_area // tail call SYM_CODE_END(preserve_boot_args) @@ -268,7 +268,6 @@ SYM_FUNC_START_LOCAL(__create_page_tables) */ adrp x0, init_pg_dir adrp x1, init_pg_end - sub x1, x1, x0 bl __inval_dcache_area /* @@ -382,12 +381,10 @@ SYM_FUNC_START_LOCAL(__create_page_tables) adrp x0, idmap_pg_dir adrp x1, idmap_pg_end - sub x1, x1, x0 bl __inval_dcache_area adrp x0, init_pg_dir adrp x1, init_pg_end - sub x1, x1, x0 bl __inval_dcache_area ret x28 diff --git a/arch/arm64/mm/cache.S b/arch/arm64/mm/cache.S index 8920f63442ae..16660cbc45bf 100644 --- a/arch/arm64/mm/cache.S +++ b/arch/arm64/mm/cache.S @@ -142,25 +142,24 @@ alternative_else_nop_endif SYM_FUNC_END(__clean_dcache_area_pou) /* - * __inval_dcache_area(kaddr, size) + * __inval_dcache_area(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 invalidated. Any partial lines at the ends of the interval are * also cleaned to PoC to prevent data loss. * - * - kaddr - kernel address - * - size - size in question + * - start - kernel start address of region + * - end - kernel end address of region */ SYM_FUNC_START_LOCAL(__dma_inv_area) SYM_FUNC_START_PI(__inval_dcache_area) /* FALLTHROUGH */ /* - * __dma_inv_area(start, size) + * __dma_inv_area(start, end) * - start - virtual start address of region - * - size - size in question + * - end - virtual end address of region */ - add x1, x1, x0 dcache_line_size x2, x3 sub x3, x2, #1 tst x1, x3 // end cache line aligned? @@ -241,8 +240,10 @@ SYM_FUNC_END_PI(__dma_flush_area) * - dir - DMA direction */ SYM_FUNC_START_PI(__dma_map_area) + add x1, x0, x1 cmp w2, #DMA_FROM_DEVICE b.eq __dma_inv_area + sub x1, x1, x0 b __dma_clean_area SYM_FUNC_END_PI(__dma_map_area) @@ -253,6 +254,7 @@ SYM_FUNC_END_PI(__dma_map_area) * - dir - DMA direction */ SYM_FUNC_START_PI(__dma_unmap_area) + add x1, x0, x1 cmp w2, #DMA_TO_DEVICE b.ne __dma_inv_area ret diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index ac485163a4a7..4e3505c2bea6 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -88,7 +88,7 @@ EXPORT_SYMBOL_GPL(arch_wb_cache_pmem); void arch_invalidate_pmem(void *addr, size_t size) { - __inval_dcache_area(addr, size); + __inval_dcache_area((unsigned long)addr, (unsigned long)addr + size); } EXPORT_SYMBOL_GPL(arch_invalidate_pmem); #endif -- 2.31.1.751.gd2f1c929bd-goog _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel