mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 18:41:23 +00:00
s390/bp: remove __bpon()
There is no point in changing branch prediction state of a cpu shortly before it enters stop state. Therefore remove __bpon(). Acked-by: Alexander Gordeev <agordeev@linux.ibm.com> Reviewed-by: Sven Schnelle <svens@linux.ibm.com> Signed-off-by: Heiko Carstens <hca@linux.ibm.com> Signed-off-by: Vasily Gorbik <gor@linux.ibm.com>
This commit is contained in:
parent
9b63fd2fc8
commit
69a407bf81
@ -99,7 +99,6 @@ void cpu_detect_mhz_feature(void);
|
||||
|
||||
extern const struct seq_operations cpuinfo_op;
|
||||
extern void execve_tail(void);
|
||||
extern void __bpon(void);
|
||||
unsigned long vdso_size(void);
|
||||
|
||||
/*
|
||||
|
@ -159,21 +159,15 @@ _LPP_OFFSET = __LC_LPP
|
||||
.section .kprobes.text, "ax"
|
||||
.Ldummy:
|
||||
/*
|
||||
* This nop exists only in order to avoid that __bpon starts at
|
||||
* the beginning of the kprobes text section. In that case we would
|
||||
* have several symbols at the same address. E.g. objdump would take
|
||||
* an arbitrary symbol name when disassembling this code.
|
||||
* With the added nop in between the __bpon symbol is unique
|
||||
* again.
|
||||
* The following nop exists only in order to avoid that the next
|
||||
* symbol starts at the beginning of the kprobes text section.
|
||||
* In that case there would be several symbols at the same address.
|
||||
* E.g. objdump would take an arbitrary symbol when disassembling
|
||||
* the code.
|
||||
* With the added nop in between this cannot happen.
|
||||
*/
|
||||
nop 0
|
||||
|
||||
ENTRY(__bpon)
|
||||
.globl __bpon
|
||||
BPON
|
||||
BR_EX %r14
|
||||
ENDPROC(__bpon)
|
||||
|
||||
/*
|
||||
* Scheduler resume function, called by switch_to
|
||||
* gpr2 = (task_struct *) prev
|
||||
|
@ -649,7 +649,6 @@ static struct kset *ipl_kset;
|
||||
|
||||
static void __ipl_run(void *unused)
|
||||
{
|
||||
__bpon();
|
||||
diag308(DIAG308_LOAD_CLEAR, NULL);
|
||||
}
|
||||
|
||||
|
@ -348,7 +348,6 @@ static void pcpu_delegate(struct pcpu *pcpu,
|
||||
abs_lc->restart_source = source_cpu;
|
||||
put_abs_lowcore(abs_lc);
|
||||
}
|
||||
__bpon();
|
||||
asm volatile(
|
||||
"0: sigp 0,%0,%2 # sigp restart to target cpu\n"
|
||||
" brc 2,0b # busy, try again\n"
|
||||
@ -986,7 +985,6 @@ void __cpu_die(unsigned int cpu)
|
||||
void __noreturn cpu_die(void)
|
||||
{
|
||||
idle_task_exit();
|
||||
__bpon();
|
||||
pcpu_sigp_retry(pcpu_devices + smp_processor_id(), SIGP_STOP, 0);
|
||||
for (;;) ;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user