mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
8351badf34
commit
ef470a60e1
|
@ -27,8 +27,6 @@ void flush_user_dcache_range_asm(unsigned long, unsigned long);
|
||||||
void flush_kernel_dcache_range_asm(unsigned long, unsigned long);
|
void flush_kernel_dcache_range_asm(unsigned long, unsigned long);
|
||||||
void flush_kernel_dcache_page_asm(void *);
|
void flush_kernel_dcache_page_asm(void *);
|
||||||
void flush_kernel_icache_page(void *);
|
void flush_kernel_icache_page(void *);
|
||||||
void flush_user_dcache_range(unsigned long, unsigned long);
|
|
||||||
void flush_user_icache_range(unsigned long, unsigned long);
|
|
||||||
|
|
||||||
/* Cache flush operations */
|
/* Cache flush operations */
|
||||||
|
|
||||||
|
|
|
@ -573,24 +573,6 @@ void flush_cache_mm(struct mm_struct *mm)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
|
||||||
flush_user_dcache_range(unsigned long start, unsigned long end)
|
|
||||||
{
|
|
||||||
if ((end - start) < parisc_cache_flush_threshold)
|
|
||||||
flush_user_dcache_range_asm(start,end);
|
|
||||||
else
|
|
||||||
flush_data_cache();
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
|
||||||
flush_user_icache_range(unsigned long start, unsigned long end)
|
|
||||||
{
|
|
||||||
if ((end - start) < parisc_cache_flush_threshold)
|
|
||||||
flush_user_icache_range_asm(start,end);
|
|
||||||
else
|
|
||||||
flush_instruction_cache();
|
|
||||||
}
|
|
||||||
|
|
||||||
void flush_cache_range(struct vm_area_struct *vma,
|
void flush_cache_range(struct vm_area_struct *vma,
|
||||||
unsigned long start, unsigned long end)
|
unsigned long start, unsigned long end)
|
||||||
{
|
{
|
||||||
|
|
|
@ -232,6 +232,7 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
|
||||||
struct rt_sigframe __user *frame;
|
struct rt_sigframe __user *frame;
|
||||||
unsigned long rp, usp;
|
unsigned long rp, usp;
|
||||||
unsigned long haddr, sigframe_size;
|
unsigned long haddr, sigframe_size;
|
||||||
|
unsigned long start, end;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
#ifdef CONFIG_64BIT
|
#ifdef CONFIG_64BIT
|
||||||
struct compat_rt_sigframe __user * compat_frame;
|
struct compat_rt_sigframe __user * compat_frame;
|
||||||
|
@ -299,10 +300,10 @@ setup_rt_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs,
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
flush_user_dcache_range((unsigned long) &frame->tramp[0],
|
start = (unsigned long) &frame->tramp[0];
|
||||||
(unsigned long) &frame->tramp[TRAMP_SIZE]);
|
end = (unsigned long) &frame->tramp[TRAMP_SIZE];
|
||||||
flush_user_icache_range((unsigned long) &frame->tramp[0],
|
flush_user_dcache_range_asm(start, end);
|
||||||
(unsigned long) &frame->tramp[TRAMP_SIZE]);
|
flush_user_icache_range_asm(start, end);
|
||||||
|
|
||||||
/* TRAMP Words 0-4, Length 5 = SIGRESTARTBLOCK_TRAMP
|
/* TRAMP Words 0-4, Length 5 = SIGRESTARTBLOCK_TRAMP
|
||||||
* TRAMP Words 5-9, Length 4 = SIGRETURN_TRAMP
|
* TRAMP Words 5-9, Length 4 = SIGRETURN_TRAMP
|
||||||
|
@ -548,8 +549,8 @@ insert_restart_trampoline(struct pt_regs *regs)
|
||||||
WARN_ON(err);
|
WARN_ON(err);
|
||||||
|
|
||||||
/* flush data/instruction cache for new insns */
|
/* flush data/instruction cache for new insns */
|
||||||
flush_user_dcache_range(start, end);
|
flush_user_dcache_range_asm(start, end);
|
||||||
flush_user_icache_range(start, end);
|
flush_user_icache_range_asm(start, end);
|
||||||
|
|
||||||
regs->gr[31] = regs->gr[30] + 8;
|
regs->gr[31] = regs->gr[30] + 8;
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Reference in New Issue