aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--arch/parisc/include/asm/cacheflush.h2
-rw-r--r--arch/parisc/kernel/cache.c18
-rw-r--r--arch/parisc/kernel/signal.c13
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);
27void flush_kernel_dcache_range_asm(unsigned long, unsigned long); 27void flush_kernel_dcache_range_asm(unsigned long, unsigned long);
28void flush_kernel_dcache_page_asm(void *); 28void flush_kernel_dcache_page_asm(void *);
29void flush_kernel_icache_page(void *); 29void flush_kernel_icache_page(void *);
30void flush_user_dcache_range(unsigned long, unsigned long);
31void 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
576void
577flush_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
585void
586flush_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
594void flush_cache_range(struct vm_area_struct *vma, 576void 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;