From patchwork Tue Apr 23 07:19:49 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 13639398 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C6A92C04FF8 for ; Tue, 23 Apr 2024 07:20:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:Cc:To:In-Reply-To:References:Message-Id :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=PVnin5iCG02k3sDGeIPL0IZJXk2iOS1Zc0h4wftA6k8=; b=rCDuCH9BuvlJR+ gKtU4jvXzydTSfe1XlOeY/TpuFBGrmu52vZfKQPv5jGwiK/+YtGHSBpH+9pY1qUNQEBkuvbnJS1Ed M6JCCwLMKkXsMEqxUlU+rpm1ouEWuR+FkGb7gf1+uyEX3dGoHklyV7jN1I4C2QmOAtSA8gnD8Ug4P Kt6eSfdGdYD+gmCSYRY0z3U/72nrBM8VJOOrFVmcKqCeo83NTcHRTYiTf74UOZ/a/AdJP29b2zyz4 xOxMqHzHwi+cCju0tSmunyS+bYHELPYrV6C0KhWZp0oQoaxGb+Dw4SWznfUTSIzLa70zjFCqmXh8V mppVT3r9ZPGj09ecgK0w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzARo-0000000GFBO-36HO; Tue, 23 Apr 2024 07:20:13 +0000 Received: from mail-lf1-x136.google.com ([2a00:1450:4864:20::136]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rzARa-0000000GF5r-2GSi for linux-arm-kernel@lists.infradead.org; Tue, 23 Apr 2024 07:20:00 +0000 Received: by mail-lf1-x136.google.com with SMTP id 2adb3069b0e04-516d68d7a8bso5000417e87.1 for ; Tue, 23 Apr 2024 00:19:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1713856793; x=1714461593; darn=lists.infradead.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=jY3aMsYXht28XY+o0T72BEo4hY2r+9R344zGJb2n/w0=; b=AiF0xSXKGLIO7xMztVwxrVz9c8buymOasAJ7K/vy/Glu4q2q7e0m3OcUJftlunykvU k87ocWl0XRA9FMekH/5uwMZIgMTCIMdnHwY5LtaSHpfzQEuJoqY81LrEvBgDyTPrx0+X IuGjea2SJ+9r0bcMy8Sg53OqbDOJWpQhNDdG3HlhAq28qlij0iUbRNd1eft05NCEW/To qjvbPrVEK8MsS+bI1elOqT+PJATsfvIhwkX22Dm81kppMJ9PAiOFm9mgj0Fuw9qfQeeH iIPt1KX27GFejral4suo3zC3bG4tBf4xZEHTrF+DjWEOzR/ZzCn02/TWFh3RfjWaiLLT ce3Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713856793; x=1714461593; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=jY3aMsYXht28XY+o0T72BEo4hY2r+9R344zGJb2n/w0=; b=OwCU1GmNNcFJwmV//dwFnsg+6zqtpdAAJoWTrRE3n2aHijPBddkmx7G3kGZsmMdG18 O99S4oqV60Ppyq8UwJRDFR5PQuC0kPHeW2bxX4ZdGpUrD3U21CD1EFM/FSy/xZAhplNz qcBg7l1oqex5FXTCF15ISPhMWrLQ9zhcC6gnn4ezCLuehMTtjXEOYj/iFDWG6P8lYF13 OjS6yPV0S3p2lcLX9MrPZjTNGcvZnFOHwzva1/HgaJ7QH6AYxApiGkP6U8Atx0ISSTBf QEqp0Mr4+4GbpHx6G33cQeYPqeeuiPrsETAqTH5ka7yFuSUvIMR9HHuW0q/s5jXHSVrO oz3Q== X-Gm-Message-State: AOJu0YzqApHzjHF6S0MchIaUx5TTIhUPJQXLLzUWoc5NXcHcUg0zU9Km 1po6KsarnkvpzUHNODy7V6KA4rYG79yfci1/606EgInfjljEAUCJqZl2450bvrU= X-Google-Smtp-Source: AGHT+IFL/H+Ihy2xTG6h/G19kpbn4QUwzF3b9YxWJq/XoKRNhjTUTbtWz379lv3xrQSmuUG5SnCHOw== X-Received: by 2002:ac2:5bc4:0:b0:518:930d:17c7 with SMTP id u4-20020ac25bc4000000b00518930d17c7mr550434lfn.29.1713856793567; Tue, 23 Apr 2024 00:19:53 -0700 (PDT) Received: from [192.168.1.140] ([85.235.12.238]) by smtp.gmail.com with ESMTPSA id f13-20020a056512360d00b0051ad4552454sm1307588lfs.148.2024.04.23.00.19.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 Apr 2024 00:19:53 -0700 (PDT) From: Linus Walleij Date: Tue, 23 Apr 2024 09:19:49 +0200 Subject: [PATCH v8 3/9] ARM: mm: Use symbol alias for two cache functions MIME-Version: 1.0 Message-Id: <20240423-arm32-cfi-v8-3-08f10f5d9297@linaro.org> References: <20240423-arm32-cfi-v8-0-08f10f5d9297@linaro.org> In-Reply-To: <20240423-arm32-cfi-v8-0-08f10f5d9297@linaro.org> To: Russell King , Sami Tolvanen , Kees Cook , Nathan Chancellor , Nick Desaulniers , Ard Biesheuvel , Arnd Bergmann Cc: linux-arm-kernel@lists.infradead.org, llvm@lists.linux.dev, Linus Walleij X-Mailer: b4 0.13.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240423_001958_652244_640D4959 X-CRM114-Status: GOOD ( 14.44 ) 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 The cache functions to flush user cache (*_flush_user_cache_all) are in many cases just a branch to the corresponfing userspace or kernelspace function. These functions also have the same arguments. Simplify these two by using SYM_FUNC_ALIAS() in all affected sites. The NOP cache has very many similar calls which are just returns, but it would be confusing to use aliases here, so leave all the explicit returns and drop a comment on why we are not using aliases. Reviewed-by: Sami Tolvanen Signed-off-by: Linus Walleij --- arch/arm/mm/cache-fa.S | 4 +--- arch/arm/mm/cache-nop.S | 4 ++++ arch/arm/mm/cache-v4.S | 4 +--- arch/arm/mm/cache-v4wb.S | 4 +--- arch/arm/mm/cache-v4wt.S | 4 +--- arch/arm/mm/proc-arm1020.S | 4 +--- arch/arm/mm/proc-arm1020e.S | 4 +--- arch/arm/mm/proc-arm1022.S | 4 +--- arch/arm/mm/proc-arm1026.S | 4 +--- arch/arm/mm/proc-arm920.S | 4 +--- arch/arm/mm/proc-arm922.S | 4 +--- arch/arm/mm/proc-arm925.S | 4 +--- arch/arm/mm/proc-arm926.S | 4 +--- arch/arm/mm/proc-arm940.S | 4 +--- arch/arm/mm/proc-arm946.S | 4 +--- arch/arm/mm/proc-feroceon.S | 4 +--- arch/arm/mm/proc-mohawk.S | 4 +--- arch/arm/mm/proc-xsc3.S | 4 +--- arch/arm/mm/proc-xscale.S | 4 +--- 19 files changed, 22 insertions(+), 54 deletions(-) diff --git a/arch/arm/mm/cache-fa.S b/arch/arm/mm/cache-fa.S index c3642d5daf38..ecd08bf440cb 100644 --- a/arch/arm/mm/cache-fa.S +++ b/arch/arm/mm/cache-fa.S @@ -52,9 +52,7 @@ SYM_FUNC_END(fa_flush_icache_all) * Clean and invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(fa_flush_user_cache_all) - b fa_flush_kern_cache_all -SYM_FUNC_END(fa_flush_user_cache_all) +SYM_FUNC_ALIAS(fa_flush_user_cache_all, fa_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/cache-nop.S b/arch/arm/mm/cache-nop.S index 56e94091a55f..cd191aa90313 100644 --- a/arch/arm/mm/cache-nop.S +++ b/arch/arm/mm/cache-nop.S @@ -6,6 +6,10 @@ #include "proc-macros.S" +/* + * These are all open-coded instead of aliased, to make clear + * what is going on here: all functions are stubbed out. + */ SYM_TYPED_FUNC_START(nop_flush_icache_all) ret lr SYM_FUNC_END(nop_flush_icache_all) diff --git a/arch/arm/mm/cache-v4.S b/arch/arm/mm/cache-v4.S index 22d9c9d9e0d7..f7b7e498d3b6 100644 --- a/arch/arm/mm/cache-v4.S +++ b/arch/arm/mm/cache-v4.S @@ -28,9 +28,7 @@ SYM_FUNC_END(v4_flush_icache_all) * * - mm - mm_struct describing address space */ -SYM_TYPED_FUNC_START(v4_flush_user_cache_all) - b v4_flush_kern_cache_all -SYM_FUNC_END(v4_flush_user_cache_all) +SYM_FUNC_ALIAS(v4_flush_user_cache_all, v4_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/cache-v4wb.S b/arch/arm/mm/cache-v4wb.S index 0d97b594e23f..00488108a873 100644 --- a/arch/arm/mm/cache-v4wb.S +++ b/arch/arm/mm/cache-v4wb.S @@ -66,9 +66,7 @@ SYM_FUNC_END(v4wb_flush_icache_all) * Clean and invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(v4wb_flush_user_cache_all) - b v4wb_flush_kern_cache_all -SYM_FUNC_END(v4wb_flush_user_cache_all) +SYM_FUNC_ALIAS(v4wb_flush_user_cache_all, v4wb_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/cache-v4wt.S b/arch/arm/mm/cache-v4wt.S index eee6d8f06b4d..573f65271cbb 100644 --- a/arch/arm/mm/cache-v4wt.S +++ b/arch/arm/mm/cache-v4wt.S @@ -56,9 +56,7 @@ SYM_FUNC_END(v4wt_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(v4wt_flush_user_cache_all) - b v4wt_flush_kern_cache_all -SYM_FUNC_END(v4wt_flush_user_cache_all) +SYM_FUNC_ALIAS(v4wt_flush_user_cache_all, v4wt_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm1020.S b/arch/arm/mm/proc-arm1020.S index a3f99e1c1186..2c873e65a5b9 100644 --- a/arch/arm/mm/proc-arm1020.S +++ b/arch/arm/mm/proc-arm1020.S @@ -127,9 +127,7 @@ SYM_FUNC_END(arm1020_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(arm1020_flush_user_cache_all) - b arm1020_flush_kern_cache_all -SYM_FUNC_END(arm1020_flush_user_cache_all) +SYM_FUNC_ALIAS(arm1020_flush_user_cache_all, arm1020_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm1020e.S b/arch/arm/mm/proc-arm1020e.S index 64c63eb5d830..d8217737a60b 100644 --- a/arch/arm/mm/proc-arm1020e.S +++ b/arch/arm/mm/proc-arm1020e.S @@ -127,9 +127,7 @@ SYM_FUNC_END(arm1020e_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(arm1020e_flush_user_cache_all) - b arm1020e_flush_kern_cache_all -SYM_FUNC_END(arm1020e_flush_user_cache_all) +SYM_FUNC_ALIAS(arm1020e_flush_user_cache_all, arm1020e_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm1022.S b/arch/arm/mm/proc-arm1022.S index e170497353ae..5348cebe7e71 100644 --- a/arch/arm/mm/proc-arm1022.S +++ b/arch/arm/mm/proc-arm1022.S @@ -127,9 +127,7 @@ SYM_FUNC_END(arm1022_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(arm1022_flush_user_cache_all) - b arm1022_flush_kern_cache_all -SYM_FUNC_END(arm1022_flush_user_cache_all) +SYM_FUNC_ALIAS(arm1022_flush_user_cache_all, arm1022_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm1026.S b/arch/arm/mm/proc-arm1026.S index 4b5a4849ad85..466f861d750c 100644 --- a/arch/arm/mm/proc-arm1026.S +++ b/arch/arm/mm/proc-arm1026.S @@ -127,9 +127,7 @@ SYM_FUNC_END(arm1026_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(arm1026_flush_user_cache_all) - b arm1026_flush_kern_cache_all -SYM_FUNC_END(arm1026_flush_user_cache_all) +SYM_FUNC_ALIAS(arm1026_flush_user_cache_all, arm1026_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm920.S b/arch/arm/mm/proc-arm920.S index fbf8937eae85..6a6e26850a54 100644 --- a/arch/arm/mm/proc-arm920.S +++ b/arch/arm/mm/proc-arm920.S @@ -116,9 +116,7 @@ SYM_FUNC_END(arm920_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(arm920_flush_user_cache_all) - b arm920_flush_kern_cache_all -SYM_FUNC_END(arm920_flush_user_cache_all) +SYM_FUNC_ALIAS(arm920_flush_user_cache_all, arm920_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm922.S b/arch/arm/mm/proc-arm922.S index ccfff2b65f49..56230e547762 100644 --- a/arch/arm/mm/proc-arm922.S +++ b/arch/arm/mm/proc-arm922.S @@ -118,9 +118,7 @@ SYM_FUNC_END(arm922_flush_icache_all) * Clean and invalidate all cache entries in a particular * address space. */ -SYM_TYPED_FUNC_START(arm922_flush_user_cache_all) - b arm922_flush_kern_cache_all -SYM_FUNC_END(arm922_flush_user_cache_all) +SYM_FUNC_ALIAS(arm922_flush_user_cache_all, arm922_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm925.S b/arch/arm/mm/proc-arm925.S index d0f73242f70a..aeb4ee16dcc9 100644 --- a/arch/arm/mm/proc-arm925.S +++ b/arch/arm/mm/proc-arm925.S @@ -151,9 +151,7 @@ SYM_FUNC_END(arm925_flush_icache_all) * Clean and invalidate all cache entries in a particular * address space. */ -SYM_TYPED_FUNC_START(arm925_flush_user_cache_all) - b arm925_flush_kern_cache_all -SYM_FUNC_END(arm925_flush_user_cache_all) +SYM_FUNC_ALIAS(arm925_flush_user_cache_all, arm925_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm926.S b/arch/arm/mm/proc-arm926.S index 00f953dee122..221aada5d288 100644 --- a/arch/arm/mm/proc-arm926.S +++ b/arch/arm/mm/proc-arm926.S @@ -117,9 +117,7 @@ SYM_FUNC_END(arm926_flush_icache_all) * Clean and invalidate all cache entries in a particular * address space. */ -SYM_TYPED_FUNC_START(arm926_flush_user_cache_all) - b arm926_flush_kern_cache_all -SYM_FUNC_END(arm926_flush_user_cache_all) +SYM_FUNC_ALIAS(arm926_flush_user_cache_all, arm926_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm940.S b/arch/arm/mm/proc-arm940.S index 7e32ec271e8a..23646bf801e1 100644 --- a/arch/arm/mm/proc-arm940.S +++ b/arch/arm/mm/proc-arm940.S @@ -81,9 +81,7 @@ SYM_FUNC_END(arm940_flush_icache_all) /* * flush_user_cache_all() */ -SYM_TYPED_FUNC_START(arm940_flush_user_cache_all) - b arm940_flush_kern_cache_all -SYM_FUNC_END(arm940_flush_user_cache_all) +SYM_FUNC_ALIAS(arm940_flush_user_cache_all, arm940_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-arm946.S b/arch/arm/mm/proc-arm946.S index 4fc883572e19..763a5a9bc735 100644 --- a/arch/arm/mm/proc-arm946.S +++ b/arch/arm/mm/proc-arm946.S @@ -88,9 +88,7 @@ SYM_FUNC_END(arm946_flush_icache_all) /* * flush_user_cache_all() */ -SYM_TYPED_FUNC_START(arm946_flush_user_cache_all) - b arm946_flush_kern_cache_all -SYM_FUNC_END(arm946_flush_user_cache_all) +SYM_FUNC_ALIAS(arm946_flush_user_cache_all, arm946_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-feroceon.S b/arch/arm/mm/proc-feroceon.S index ee936c23cac5..d31fe58bf475 100644 --- a/arch/arm/mm/proc-feroceon.S +++ b/arch/arm/mm/proc-feroceon.S @@ -136,9 +136,7 @@ SYM_FUNC_END(feroceon_flush_icache_all) * address space. */ .align 5 -SYM_TYPED_FUNC_START(feroceon_flush_user_cache_all) - b feroceon_flush_kern_cache_all -SYM_FUNC_END(feroceon_flush_user_cache_all) +SYM_FUNC_ALIAS(feroceon_flush_user_cache_all, feroceon_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-mohawk.S b/arch/arm/mm/proc-mohawk.S index 519b7ff2c589..949e2f254779 100644 --- a/arch/arm/mm/proc-mohawk.S +++ b/arch/arm/mm/proc-mohawk.S @@ -100,9 +100,7 @@ SYM_FUNC_END(mohawk_flush_icache_all) * Clean and invalidate all cache entries in a particular * address space. */ -SYM_TYPED_FUNC_START(mohawk_flush_user_cache_all) - b mohawk_flush_kern_cache_all -SYM_FUNC_END(mohawk_flush_user_cache_all) +SYM_FUNC_ALIAS(mohawk_flush_user_cache_all, mohawk_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-xsc3.S b/arch/arm/mm/proc-xsc3.S index f08b3fce4c95..ac3d99b49cc0 100644 --- a/arch/arm/mm/proc-xsc3.S +++ b/arch/arm/mm/proc-xsc3.S @@ -157,9 +157,7 @@ SYM_FUNC_END(xsc3_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(xsc3_flush_user_cache_all) - b xsc3_flush_kern_cache_all -SYM_FUNC_END(xsc3_flush_user_cache_all) +SYM_FUNC_ALIAS(xsc3_flush_user_cache_all, xsc3_flush_kern_cache_all) /* * flush_kern_cache_all() diff --git a/arch/arm/mm/proc-xscale.S b/arch/arm/mm/proc-xscale.S index 3e427db18d5b..05d9ed952983 100644 --- a/arch/arm/mm/proc-xscale.S +++ b/arch/arm/mm/proc-xscale.S @@ -199,9 +199,7 @@ SYM_FUNC_END(xscale_flush_icache_all) * Invalidate all cache entries in a particular address * space. */ -SYM_TYPED_FUNC_START(xscale_flush_user_cache_all) - b xscale_flush_kern_cache_all -SYM_FUNC_END(xscale_flush_user_cache_all) +SYM_FUNC_ALIAS(xscale_flush_user_cache_all, xscale_flush_kern_cache_all) /* * flush_kern_cache_all()