diff options
author | John David Anglin <dave.anglin@bell.net> | 2017-02-20 14:02:46 -0500 |
---|---|---|
committer | Helge Deller <deller@gmx.de> | 2017-02-25 16:30:20 -0500 |
commit | ef470a60e10eb12635d7b84c9502cea3028d44e8 (patch) | |
tree | 37b33290e4c950aa653e9369c4e84270ee0857bc | |
parent | 8351badf349b22b47c9696f54656db65d7834e42 (diff) |
parisc: Remove flush_user_dcache_range and flush_user_icache_range
The functions flush_user_dcache_range() and flush_user_icache_range()
are only used by the parisc signal handling code. This code only needs
to flush a couple of lines, so the threshold check is unnecessary
overhead.
Signed-off-by: John David Anglin <dave.anglin@bell.net>
Signed-off-by: Helge Deller <deller@gmx.de>
-rw-r--r-- | arch/parisc/include/asm/cacheflush.h | 2 | ||||
-rw-r--r-- | arch/parisc/kernel/cache.c | 18 | ||||
-rw-r--r-- | arch/parisc/kernel/signal.c | 13 |
3 files changed, 7 insertions, 26 deletions
diff --git a/arch/parisc/include/asm/cacheflush.h b/arch/parisc/include/asm/cacheflush.h index 7bd69bd43a01..19c9c3c5f267 100644 --- a/arch/parisc/include/asm/cacheflush.h +++ b/arch/parisc/include/asm/cacheflush.h | |||
@@ -27,8 +27,6 @@ void flush_user_dcache_range_asm(unsigned long, unsigned long); | |||
27 | void flush_kernel_dcache_range_asm(unsigned long, unsigned long); | 27 | void flush_kernel_dcache_range_asm(unsigned long, unsigned long); |
28 | void flush_kernel_dcache_page_asm(void *); | 28 | void flush_kernel_dcache_page_asm(void *); |
29 | void flush_kernel_icache_page(void *); | 29 | void flush_kernel_icache_page(void *); |
30 | void flush_user_dcache_range(unsigned long, unsigned long); | ||
31 | void flush_user_icache_range(unsigned long, unsigned long); | ||
32 | 30 | ||
33 | /* Cache flush operations */ | 31 | /* Cache flush operations */ |
34 | 32 | ||
diff --git a/arch/parisc/kernel/cache.c b/arch/parisc/kernel/cache.c index 977f0a4f5ecf..20b013cbd297 100644 --- a/arch/parisc/kernel/cache.c +++ b/arch/parisc/kernel/cache.c | |||
@@ -573,24 +573,6 @@ void flush_cache_mm(struct mm_struct *mm) | |||
573 | } | 573 | } |
574 | } | 574 | } |
575 | 575 | ||
576 | void | ||
577 | flush_user_dcache_range(unsigned long start, unsigned long end) | ||
578 | { | ||
579 | if ((end - start) < parisc_cache_flush_threshold) | ||
580 | flush_user_dcache_range_asm(start,end); | ||
581 | else | ||
582 | flush_data_cache(); | ||
583 | } | ||
584 | |||
585 | void | ||
586 | flush_user_icache_range(unsigned long start, unsigned long end) | ||
587 | { | ||
588 | if ((end - start) < parisc_cache_flush_threshold) | ||
589 | flush_user_icache_range_asm(start,end); | ||
590 | else | ||
591 | flush_instruction_cache(); | ||
592 | } | ||
593 | |||
594 | void flush_cache_range(struct vm_area_struct *vma, | 576 | void flush_cache_range(struct vm_area_struct *vma, |
595 | unsigned long start, unsigned long end) | 577 | unsigned long start, unsigned long end) |
596 | { | 578 | { |
diff --git a/arch/parisc/kernel/signal.c b/arch/parisc/kernel/signal.c index e58925ac64d1..f6aaca27ac4e 100644 --- a/arch/parisc/kernel/signal.c +++ b/arch/parisc/kernel/signal.c | |||
@@ -232,6 +232,7 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, | |||
232 | struct rt_sigframe __user *frame; | 232 | struct rt_sigframe __user *frame; |
233 | unsigned long rp, usp; | 233 | unsigned long rp, usp; |
234 | unsigned long haddr, sigframe_size; | 234 | unsigned long haddr, sigframe_size; |
235 | unsigned long start, end; | ||
235 | int err = 0; | 236 | int err = 0; |
236 | #ifdef CONFIG_64BIT | 237 | #ifdef CONFIG_64BIT |
237 | struct compat_rt_sigframe __user * compat_frame; | 238 | struct compat_rt_sigframe __user * compat_frame; |
@@ -299,10 +300,10 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs, | |||
299 | } | 300 | } |
300 | #endif | 301 | #endif |
301 | 302 | ||
302 | flush_user_dcache_range((unsigned long) &frame->tramp[0], | 303 | start = (unsigned long) &frame->tramp[0]; |
303 | (unsigned long) &frame->tramp[TRAMP_SIZE]); | 304 | end = (unsigned long) &frame->tramp[TRAMP_SIZE]; |
304 | flush_user_icache_range((unsigned long) &frame->tramp[0], | 305 | flush_user_dcache_range_asm(start, end); |
305 | (unsigned long) &frame->tramp[TRAMP_SIZE]); | 306 | flush_user_icache_range_asm(start, end); |
306 | 307 | ||
307 | /* TRAMP Words 0-4, Length 5 = SIGRESTARTBLOCK_TRAMP | 308 | /* TRAMP Words 0-4, Length 5 = SIGRESTARTBLOCK_TRAMP |
308 | * TRAMP Words 5-9, Length 4 = SIGRETURN_TRAMP | 309 | * TRAMP Words 5-9, Length 4 = SIGRETURN_TRAMP |
@@ -548,8 +549,8 @@ insert_restart_trampoline(struct pt_regs *regs) | |||
548 | WARN_ON(err); | 549 | WARN_ON(err); |
549 | 550 | ||
550 | /* flush data/instruction cache for new insns */ | 551 | /* flush data/instruction cache for new insns */ |
551 | flush_user_dcache_range(start, end); | 552 | flush_user_dcache_range_asm(start, end); |
552 | flush_user_icache_range(start, end); | 553 | flush_user_icache_range_asm(start, end); |
553 | 554 | ||
554 | regs->gr[31] = regs->gr[30] + 8; | 555 | regs->gr[31] = regs->gr[30] + 8; |
555 | return; | 556 | return; |