From patchwork Thu May 20 12:44:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fuad Tabba X-Patchwork-Id: 12270227 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, 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 A832EC43461 for ; Thu, 20 May 2021 12:52:44 +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 347E361184 for ; Thu, 20 May 2021 12:52:44 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 347E361184 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=2ZUVNRwgLappwXp0OLjrofB8nVRqvj0wEXIJBE86/O4=; b=optxXEeThdS77/ fenaKrmaTpcYOB0LI/uC/C9nN1UCYMf2IiRLIJw3eIkXRk5Q9NbHmQM6cKJCLYPv8/swkCHvXgtAn BUY5M6R2sureGumq035x1akRLGHYZUc/r05Kw1NMcPL90a7IkqbRnH+IlgKOlvadmX777Man+kmxU DURzCWS3F+G1Uv1IrnKO0c/YnuL6zR/amm1mFguYLhCLKYMVq+pZ1dtvTErP44Aa9bjUG1Ft6G7Uj Y7vwDzrOloeMeO0HTsAZ4oPzvhHRQDZA6u1qRSzZ9pBIiW3M8ionjNpljjY6nvcwL3q2nH192MDuM AiWTFfy5aP7cxc1gIgOQ==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1lji8X-000yYY-C0; Thu, 20 May 2021 12:50:49 +0000 Received: from bombadil.infradead.org ([2607:7c80:54:e::133]) by desiato.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1lji2h-000u4M-4T for linux-arm-kernel@desiato.infradead.org; Thu, 20 May 2021 12:44:47 +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=tEummeh6I6frwEp3TLdr5cPM5KsDvZ8aCtlKbBiCaX4=; b=026LF48c1MT9GJ3UJ1ysxwBdeP knswkcdlY8IT4ay8aj/BmlXFVbqMgcchkEd4pyV3Vud6wqkRvXqBaNfbvuZXx+7pbe23Pk47sJIf0 9RwxQ0K9orfLmfBMVrHWUraomMi5u8lcAslV6su0bn8iw+iT2WnGSkuN5VL9VCufyEJtxCXyPw8BM R/G3r2IVwW/xflyaCZT/oDkziXslS2FozX5hPX+mEy5umFavvKX91Kzx6lq1avXtru3oD0N46eySO LRvMTrHi6PaqXyfL+Yr1xJEM/C3Nco2fKoa5RXWlQEIQh/CJlSMO6yPDvmob5CO61MvXhnkTGpYq+ jUuzf8GA==; 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 1lji2e-00GKhS-Gy for linux-arm-kernel@lists.infradead.org; Thu, 20 May 2021 12:44:45 +0000 Received: by mail-qk1-x74a.google.com with SMTP id l6-20020a3770060000b02902fa5329f2b4so12352889qkc.18 for ; Thu, 20 May 2021 05:44:42 -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=tEummeh6I6frwEp3TLdr5cPM5KsDvZ8aCtlKbBiCaX4=; b=JSxiTOhm+FGVW59PyZzNTNHuOmNmO6TfsDJRdhMP+pXJ/fwaRpVGPwvsszFaDooLar ca8UPnkaWr3wUljEFoxzrUTK4nLGhHRBnoqEsN05Mk0aS+7EJNzpXTLlS5T9hxQxdkR2 b2qQPKxciRctd2MagBYqsdHIit2jYS2xKnrUlK6fDdr8VJDUqwgGu4eEmb4n+Jl7Nmjh l6IlTnAleStnUPuMZkl+fxswyk9hysUPOXbTmX2CoCGYm2ywy30xL7CHuNcyw96CDE4y OMJJ6EE6hnNBWv6M01MB2H0i+v2IjhNxapOnKgLt3+WEJ0YsFYX+kj0533sDaF68njsl ZOig== 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=tEummeh6I6frwEp3TLdr5cPM5KsDvZ8aCtlKbBiCaX4=; b=YM0BKvYUqAWjbhyLn6ejcUZ4mRrG//DiITE/18GFlz4zISGOwD41nTT8TM1alm4Sy2 IoiXkvSCCW2mPArvyU3/LIPRxcz71XGFP4C2j9Yh9P0EHk+TvplMXutvfbXEZmqLYy2V 1hewFKVLcMYmrebA1FG0dlxKPwkHTC+Wz4ZX9pPcBiE8DCd0GLCmUn5VNWS2Q0iy1Ou4 ub3fULlH58tXEkQGQrj0zoqwxtE/xQk15nOQEuG743y2L1ja/ZCeJX7CR+sDS5YvjG9W CaroaZWl8DvSzZOiyVVjgjgrfuX7yHTCGfm0DghPytguu1O7XmpglZgZWIfcVzubyRXk KGvA== X-Gm-Message-State: AOAM531y6kMpyKW4nt9LkSPjD/xzFK2L8v/1EYYHig5nPzcUKyv2jY5s PpRdDOF05JSxY2x04Q5CaMh6C6Tajd1YHMO55KX3DjYOqynqF67xpVFpwU+pZz2lt5m1KBQUGYm UHFOtZEfNwxtmdvGya/PPJH8JM3zO6AwYJtXsJJLtHFdNwo5zxhLyGohPnqmc4I3ol//NnY3BuC KoOw== X-Google-Smtp-Source: ABdhPJxN4Yvg2o2Hd92+w9PZzanYY95ScHSk3i0BtPwbWVen/MDmPf4vN5nqQTxn0CCXcdHJOlgN85UE5g== X-Received: from tabba.c.googlers.com ([fda3:e722:ac3:10:28:9cb1:c0a8:482]) (user=tabba job=sendgmr) by 2002:a0c:edcf:: with SMTP id i15mr5455879qvr.10.1621514682038; Thu, 20 May 2021 05:44:42 -0700 (PDT) Date: Thu, 20 May 2021 13:44:04 +0100 In-Reply-To: <20210520124406.2731873-1-tabba@google.com> Message-Id: <20210520124406.2731873-17-tabba@google.com> Mime-Version: 1.0 References: <20210520124406.2731873-1-tabba@google.com> X-Mailer: git-send-email 2.31.1.751.gd2f1c929bd-goog Subject: [PATCH v3 16/18] arm64: sync_icache_aliases 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-20210520_054444_584572_ECBC7455 X-CRM114-Status: GOOD ( 14.75 ) 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 Acked-by: Mark Rutland --- arch/arm64/include/asm/cacheflush.h | 2 +- arch/arm64/kernel/probes/uprobes.c | 2 +- arch/arm64/mm/flush.c | 21 +++++++++++---------- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/arch/arm64/include/asm/cacheflush.h b/arch/arm64/include/asm/cacheflush.h index f86723047315..70b389a8dea5 100644 --- a/arch/arm64/include/asm/cacheflush.h +++ b/arch/arm64/include/asm/cacheflush.h @@ -64,7 +64,7 @@ extern void __clean_dcache_area_poc(unsigned long start, unsigned long end); extern void __clean_dcache_area_pop(unsigned long start, unsigned long end); extern void __clean_dcache_area_pou(unsigned long start, unsigned long end); extern long __flush_cache_user_range(unsigned long start, unsigned long end); -extern void sync_icache_aliases(void *kaddr, unsigned long len); +extern void sync_icache_aliases(unsigned long start, unsigned long end); static inline void flush_icache_range(unsigned long start, unsigned long end) { diff --git a/arch/arm64/kernel/probes/uprobes.c b/arch/arm64/kernel/probes/uprobes.c index 2c247634552b..9be668f3f034 100644 --- a/arch/arm64/kernel/probes/uprobes.c +++ b/arch/arm64/kernel/probes/uprobes.c @@ -21,7 +21,7 @@ void arch_uprobe_copy_ixol(struct page *page, unsigned long vaddr, memcpy(dst, src, len); /* flush caches (dcache/icache) */ - sync_icache_aliases(dst, len); + sync_icache_aliases((unsigned long)dst, (unsigned long)dst + len); kunmap_atomic(xol_page_kaddr); } diff --git a/arch/arm64/mm/flush.c b/arch/arm64/mm/flush.c index a69d745fb1dc..143f625e7727 100644 --- a/arch/arm64/mm/flush.c +++ b/arch/arm64/mm/flush.c @@ -14,28 +14,26 @@ #include #include -void sync_icache_aliases(void *kaddr, unsigned long len) +void sync_icache_aliases(unsigned long start, unsigned long end) { - unsigned long addr = (unsigned long)kaddr; - if (icache_is_aliasing()) { - __clean_dcache_area_pou(kaddr, kaddr + len); + __clean_dcache_area_pou(start, end); __flush_icache_all(); } else { /* * Don't issue kick_all_cpus_sync() after I-cache invalidation * for user mappings. */ - __flush_icache_range(addr, addr + len); + __flush_icache_range(start, end); } } static void flush_ptrace_access(struct vm_area_struct *vma, struct page *page, - unsigned long uaddr, void *kaddr, - unsigned long len) + unsigned long uaddr, unsigned long start, + unsigned long end) { if (vma->vm_flags & VM_EXEC) - sync_icache_aliases(kaddr, len); + sync_icache_aliases(start, end); } /* @@ -48,7 +46,8 @@ void copy_to_user_page(struct vm_area_struct *vma, struct page *page, unsigned long len) { memcpy(dst, src, len); - flush_ptrace_access(vma, page, uaddr, dst, len); + flush_ptrace_access(vma, page, uaddr, (unsigned long)dst, + (unsigned long)dst + len); } void __sync_icache_dcache(pte_t pte) @@ -56,7 +55,9 @@ void __sync_icache_dcache(pte_t pte) struct page *page = pte_page(pte); if (!test_and_set_bit(PG_dcache_clean, &page->flags)) - sync_icache_aliases(page_address(page), page_size(page)); + sync_icache_aliases((unsigned long)page_address(page), + (unsigned long)page_address(page) + + page_size(page)); } EXPORT_SYMBOL_GPL(__sync_icache_dcache);