Skip to content

Commit

Permalink
ARM: 9386/2: mm: Use symbol alias for cache functions
Browse files Browse the repository at this point in the history
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 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 <samitolvanen@google.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Russell King (Oracle) <rmk+kernel@armlinux.org.uk>
  • Loading branch information
Linus Walleij authored and Russell King (Oracle) committed Apr 29, 2024
1 parent 1036b89 commit 2074bee
Show file tree
Hide file tree
Showing 19 changed files with 22 additions and 54 deletions.
4 changes: 1 addition & 3 deletions arch/arm/mm/cache-fa.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 4 additions & 0 deletions arch/arm/mm/cache-nop.S
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/cache-v4.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/cache-v4wb.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/cache-v4wt.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm1020.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm1020e.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm1022.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm1026.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm920.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm922.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm925.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm926.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm940.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-arm946.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-feroceon.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-mohawk.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-xsc3.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down
4 changes: 1 addition & 3 deletions arch/arm/mm/proc-xscale.S
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand Down

0 comments on commit 2074bee

Please sign in to comment.