mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 00:53:34 +02:00
s390/bp: remove TIF_ISOLATE_BP
TIF_ISOLATE_BP is unused since it was introduced with commit 6b73044b2b
("s390: run user space and KVM guests with modified branch prediction").
Given that there is no use case remove it again.
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
fed626db8b
commit
f33f2d4c7c
|
|
@ -329,7 +329,6 @@ static __always_inline void __noreturn disabled_wait(void)
|
||||||
|
|
||||||
#define ARCH_LOW_ADDRESS_LIMIT 0x7fffffffUL
|
#define ARCH_LOW_ADDRESS_LIMIT 0x7fffffffUL
|
||||||
|
|
||||||
extern int s390_isolate_bp(void);
|
|
||||||
extern int s390_isolate_bp_guest(void);
|
extern int s390_isolate_bp_guest(void);
|
||||||
|
|
||||||
static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
|
static __always_inline bool regs_irqs_disabled(struct pt_regs *regs)
|
||||||
|
|
|
||||||
|
|
@ -70,7 +70,6 @@ void arch_setup_new_exec(void);
|
||||||
#define TIF_PATCH_PENDING 5 /* pending live patching update */
|
#define TIF_PATCH_PENDING 5 /* pending live patching update */
|
||||||
#define TIF_PGSTE 6 /* New mm's will use 4K page tables */
|
#define TIF_PGSTE 6 /* New mm's will use 4K page tables */
|
||||||
#define TIF_NOTIFY_SIGNAL 7 /* signal notifications exist */
|
#define TIF_NOTIFY_SIGNAL 7 /* signal notifications exist */
|
||||||
#define TIF_ISOLATE_BP 8 /* Run process with isolated BP */
|
|
||||||
#define TIF_ISOLATE_BP_GUEST 9 /* Run KVM guests with isolated BP */
|
#define TIF_ISOLATE_BP_GUEST 9 /* Run KVM guests with isolated BP */
|
||||||
#define TIF_PER_TRAP 10 /* Need to handle PER trap on exit to usermode */
|
#define TIF_PER_TRAP 10 /* Need to handle PER trap on exit to usermode */
|
||||||
|
|
||||||
|
|
@ -94,7 +93,6 @@ void arch_setup_new_exec(void);
|
||||||
#define _TIF_UPROBE BIT(TIF_UPROBE)
|
#define _TIF_UPROBE BIT(TIF_UPROBE)
|
||||||
#define _TIF_GUARDED_STORAGE BIT(TIF_GUARDED_STORAGE)
|
#define _TIF_GUARDED_STORAGE BIT(TIF_GUARDED_STORAGE)
|
||||||
#define _TIF_PATCH_PENDING BIT(TIF_PATCH_PENDING)
|
#define _TIF_PATCH_PENDING BIT(TIF_PATCH_PENDING)
|
||||||
#define _TIF_ISOLATE_BP BIT(TIF_ISOLATE_BP)
|
|
||||||
#define _TIF_ISOLATE_BP_GUEST BIT(TIF_ISOLATE_BP_GUEST)
|
#define _TIF_ISOLATE_BP_GUEST BIT(TIF_ISOLATE_BP_GUEST)
|
||||||
#define _TIF_PER_TRAP BIT(TIF_PER_TRAP)
|
#define _TIF_PER_TRAP BIT(TIF_PER_TRAP)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -227,7 +227,7 @@ ENTRY(__sie64a)
|
||||||
TSTMSK __LC_CPU_FLAGS,_CIF_FPU
|
TSTMSK __LC_CPU_FLAGS,_CIF_FPU
|
||||||
jo .Lsie_skip # exit if fp/vx regs changed
|
jo .Lsie_skip # exit if fp/vx regs changed
|
||||||
lg %r14,__SF_SIE_CONTROL_PHYS(%r15) # get sie block phys addr
|
lg %r14,__SF_SIE_CONTROL_PHYS(%r15) # get sie block phys addr
|
||||||
BPEXIT __SF_SIE_FLAGS(%r15),(_TIF_ISOLATE_BP|_TIF_ISOLATE_BP_GUEST)
|
BPEXIT __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST
|
||||||
.Lsie_entry:
|
.Lsie_entry:
|
||||||
sie 0(%r14)
|
sie 0(%r14)
|
||||||
# Let the next instruction be NOP to avoid triggering a machine check
|
# Let the next instruction be NOP to avoid triggering a machine check
|
||||||
|
|
@ -235,7 +235,7 @@ ENTRY(__sie64a)
|
||||||
nopr 7
|
nopr 7
|
||||||
.Lsie_leave:
|
.Lsie_leave:
|
||||||
BPOFF
|
BPOFF
|
||||||
BPENTER __SF_SIE_FLAGS(%r15),(_TIF_ISOLATE_BP|_TIF_ISOLATE_BP_GUEST)
|
BPENTER __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST
|
||||||
.Lsie_skip:
|
.Lsie_skip:
|
||||||
lg %r14,__SF_SIE_CONTROL(%r15) # get control block pointer
|
lg %r14,__SF_SIE_CONTROL(%r15) # get control block pointer
|
||||||
ni __SIE_PROG0C+3(%r14),0xfe # no longer in SIE
|
ni __SIE_PROG0C+3(%r14),0xfe # no longer in SIE
|
||||||
|
|
@ -291,11 +291,9 @@ ENTRY(system_call)
|
||||||
.Lsysc_per:
|
.Lsysc_per:
|
||||||
STBEAR __LC_LAST_BREAK
|
STBEAR __LC_LAST_BREAK
|
||||||
lctlg %c1,%c1,__LC_KERNEL_ASCE
|
lctlg %c1,%c1,__LC_KERNEL_ASCE
|
||||||
lg %r12,__LC_CURRENT
|
|
||||||
lg %r15,__LC_KERNEL_STACK
|
lg %r15,__LC_KERNEL_STACK
|
||||||
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
||||||
stmg %r0,%r7,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
stmg %r0,%r7,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
||||||
BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
|
|
||||||
# clear user controlled register to prevent speculative use
|
# clear user controlled register to prevent speculative use
|
||||||
xgr %r0,%r0
|
xgr %r0,%r0
|
||||||
xgr %r1,%r1
|
xgr %r1,%r1
|
||||||
|
|
@ -314,7 +312,7 @@ ENTRY(system_call)
|
||||||
brasl %r14,__do_syscall
|
brasl %r14,__do_syscall
|
||||||
lctlg %c1,%c1,__LC_USER_ASCE
|
lctlg %c1,%c1,__LC_USER_ASCE
|
||||||
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
||||||
BPEXIT __TI_flags(%r12),_TIF_ISOLATE_BP
|
BPON
|
||||||
LBEAR STACK_FRAME_OVERHEAD+__PT_LAST_BREAK(%r15)
|
LBEAR STACK_FRAME_OVERHEAD+__PT_LAST_BREAK(%r15)
|
||||||
lmg %r0,%r15,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
lmg %r0,%r15,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
||||||
stpt __LC_EXIT_TIMER
|
stpt __LC_EXIT_TIMER
|
||||||
|
|
@ -329,7 +327,7 @@ ENTRY(ret_from_fork)
|
||||||
brasl %r14,__ret_from_fork
|
brasl %r14,__ret_from_fork
|
||||||
lctlg %c1,%c1,__LC_USER_ASCE
|
lctlg %c1,%c1,__LC_USER_ASCE
|
||||||
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
||||||
BPEXIT __TI_flags(%r12),_TIF_ISOLATE_BP
|
BPON
|
||||||
LBEAR STACK_FRAME_OVERHEAD+__PT_LAST_BREAK(%r15)
|
LBEAR STACK_FRAME_OVERHEAD+__PT_LAST_BREAK(%r15)
|
||||||
lmg %r0,%r15,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
lmg %r0,%r15,STACK_FRAME_OVERHEAD+__PT_R0(%r15)
|
||||||
stpt __LC_EXIT_TIMER
|
stpt __LC_EXIT_TIMER
|
||||||
|
|
@ -344,7 +342,6 @@ ENTRY(pgm_check_handler)
|
||||||
stpt __LC_SYS_ENTER_TIMER
|
stpt __LC_SYS_ENTER_TIMER
|
||||||
BPOFF
|
BPOFF
|
||||||
stmg %r8,%r15,__LC_SAVE_AREA_SYNC
|
stmg %r8,%r15,__LC_SAVE_AREA_SYNC
|
||||||
lg %r12,__LC_CURRENT
|
|
||||||
lghi %r10,0
|
lghi %r10,0
|
||||||
lmg %r8,%r9,__LC_PGM_OLD_PSW
|
lmg %r8,%r9,__LC_PGM_OLD_PSW
|
||||||
tmhh %r8,0x0001 # coming from user space?
|
tmhh %r8,0x0001 # coming from user space?
|
||||||
|
|
@ -355,7 +352,7 @@ ENTRY(pgm_check_handler)
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
#if IS_ENABLED(CONFIG_KVM)
|
||||||
# cleanup critical section for program checks in __sie64a
|
# cleanup critical section for program checks in __sie64a
|
||||||
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,1f
|
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,1f
|
||||||
BPENTER __SF_SIE_FLAGS(%r15),(_TIF_ISOLATE_BP|_TIF_ISOLATE_BP_GUEST)
|
BPENTER __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST
|
||||||
SIEEXIT
|
SIEEXIT
|
||||||
lghi %r10,_PIF_GUEST_FAULT
|
lghi %r10,_PIF_GUEST_FAULT
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -367,8 +364,7 @@ ENTRY(pgm_check_handler)
|
||||||
aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
|
aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
|
||||||
# CHECK_VMAP_STACK branches to stack_overflow or 4f
|
# CHECK_VMAP_STACK branches to stack_overflow or 4f
|
||||||
CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,4f
|
CHECK_VMAP_STACK __LC_SAVE_AREA_SYNC,4f
|
||||||
3: BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
|
3: lg %r15,__LC_KERNEL_STACK
|
||||||
lg %r15,__LC_KERNEL_STACK
|
|
||||||
4: la %r11,STACK_FRAME_OVERHEAD(%r15)
|
4: la %r11,STACK_FRAME_OVERHEAD(%r15)
|
||||||
stg %r10,__PT_FLAGS(%r11)
|
stg %r10,__PT_FLAGS(%r11)
|
||||||
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
||||||
|
|
@ -390,7 +386,7 @@ ENTRY(pgm_check_handler)
|
||||||
tmhh %r8,0x0001 # returning to user space?
|
tmhh %r8,0x0001 # returning to user space?
|
||||||
jno .Lpgm_exit_kernel
|
jno .Lpgm_exit_kernel
|
||||||
lctlg %c1,%c1,__LC_USER_ASCE
|
lctlg %c1,%c1,__LC_USER_ASCE
|
||||||
BPEXIT __TI_flags(%r12),_TIF_ISOLATE_BP
|
BPON
|
||||||
stpt __LC_EXIT_TIMER
|
stpt __LC_EXIT_TIMER
|
||||||
.Lpgm_exit_kernel:
|
.Lpgm_exit_kernel:
|
||||||
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
mvc __LC_RETURN_PSW(16),STACK_FRAME_OVERHEAD+__PT_PSW(%r15)
|
||||||
|
|
@ -420,20 +416,18 @@ ENTRY(\name)
|
||||||
STBEAR __LC_LAST_BREAK
|
STBEAR __LC_LAST_BREAK
|
||||||
BPOFF
|
BPOFF
|
||||||
stmg %r8,%r15,__LC_SAVE_AREA_ASYNC
|
stmg %r8,%r15,__LC_SAVE_AREA_ASYNC
|
||||||
lg %r12,__LC_CURRENT
|
|
||||||
lmg %r8,%r9,\lc_old_psw
|
lmg %r8,%r9,\lc_old_psw
|
||||||
tmhh %r8,0x0001 # interrupting from user ?
|
tmhh %r8,0x0001 # interrupting from user ?
|
||||||
jnz 1f
|
jnz 1f
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
#if IS_ENABLED(CONFIG_KVM)
|
||||||
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,0f
|
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,0f
|
||||||
BPENTER __SF_SIE_FLAGS(%r15),(_TIF_ISOLATE_BP|_TIF_ISOLATE_BP_GUEST)
|
BPENTER __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST
|
||||||
SIEEXIT
|
SIEEXIT
|
||||||
#endif
|
#endif
|
||||||
0: CHECK_STACK __LC_SAVE_AREA_ASYNC
|
0: CHECK_STACK __LC_SAVE_AREA_ASYNC
|
||||||
aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
|
aghi %r15,-(STACK_FRAME_OVERHEAD + __PT_SIZE)
|
||||||
j 2f
|
j 2f
|
||||||
1: BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
|
1: lctlg %c1,%c1,__LC_KERNEL_ASCE
|
||||||
lctlg %c1,%c1,__LC_KERNEL_ASCE
|
|
||||||
lg %r15,__LC_KERNEL_STACK
|
lg %r15,__LC_KERNEL_STACK
|
||||||
2: xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
2: xc __SF_BACKCHAIN(8,%r15),__SF_BACKCHAIN(%r15)
|
||||||
la %r11,STACK_FRAME_OVERHEAD(%r15)
|
la %r11,STACK_FRAME_OVERHEAD(%r15)
|
||||||
|
|
@ -457,7 +451,7 @@ ENTRY(\name)
|
||||||
tmhh %r8,0x0001 # returning to user ?
|
tmhh %r8,0x0001 # returning to user ?
|
||||||
jno 2f
|
jno 2f
|
||||||
lctlg %c1,%c1,__LC_USER_ASCE
|
lctlg %c1,%c1,__LC_USER_ASCE
|
||||||
BPEXIT __TI_flags(%r12),_TIF_ISOLATE_BP
|
BPON
|
||||||
stpt __LC_EXIT_TIMER
|
stpt __LC_EXIT_TIMER
|
||||||
2: LBEAR __PT_LAST_BREAK(%r11)
|
2: LBEAR __PT_LAST_BREAK(%r11)
|
||||||
lmg %r0,%r15,__PT_R0(%r11)
|
lmg %r0,%r15,__PT_R0(%r11)
|
||||||
|
|
@ -502,7 +496,6 @@ ENTRY(mcck_int_handler)
|
||||||
spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # validate cpu timer
|
spt __LC_CPU_TIMER_SAVE_AREA-4095(%r1) # validate cpu timer
|
||||||
LBEAR __LC_LAST_BREAK_SAVE_AREA-4095(%r1) # validate bear
|
LBEAR __LC_LAST_BREAK_SAVE_AREA-4095(%r1) # validate bear
|
||||||
lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)# validate gprs
|
lmg %r0,%r15,__LC_GPREGS_SAVE_AREA-4095(%r1)# validate gprs
|
||||||
lg %r12,__LC_CURRENT
|
|
||||||
lmg %r8,%r9,__LC_MCK_OLD_PSW
|
lmg %r8,%r9,__LC_MCK_OLD_PSW
|
||||||
TSTMSK __LC_MCCK_CODE,MCCK_CODE_SYSTEM_DAMAGE
|
TSTMSK __LC_MCCK_CODE,MCCK_CODE_SYSTEM_DAMAGE
|
||||||
jo .Lmcck_panic # yes -> rest of mcck code invalid
|
jo .Lmcck_panic # yes -> rest of mcck code invalid
|
||||||
|
|
@ -531,16 +524,13 @@ ENTRY(mcck_int_handler)
|
||||||
TSTMSK __LC_MCCK_CODE,MCCK_CODE_PSW_IA_VALID
|
TSTMSK __LC_MCCK_CODE,MCCK_CODE_PSW_IA_VALID
|
||||||
jno .Lmcck_panic
|
jno .Lmcck_panic
|
||||||
#if IS_ENABLED(CONFIG_KVM)
|
#if IS_ENABLED(CONFIG_KVM)
|
||||||
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,.Lmcck_stack
|
OUTSIDE %r9,.Lsie_gmap,.Lsie_done,.Lmcck_user
|
||||||
OUTSIDE %r9,.Lsie_entry,.Lsie_leave,4f
|
OUTSIDE %r9,.Lsie_entry,.Lsie_leave,4f
|
||||||
oi __LC_CPU_FLAGS+7, _CIF_MCCK_GUEST
|
oi __LC_CPU_FLAGS+7, _CIF_MCCK_GUEST
|
||||||
4: BPENTER __SF_SIE_FLAGS(%r15),(_TIF_ISOLATE_BP|_TIF_ISOLATE_BP_GUEST)
|
4: BPENTER __SF_SIE_FLAGS(%r15),_TIF_ISOLATE_BP_GUEST
|
||||||
SIEEXIT
|
SIEEXIT
|
||||||
j .Lmcck_stack
|
|
||||||
#endif
|
#endif
|
||||||
.Lmcck_user:
|
.Lmcck_user:
|
||||||
BPENTER __TI_flags(%r12),_TIF_ISOLATE_BP
|
|
||||||
.Lmcck_stack:
|
|
||||||
lg %r15,__LC_MCCK_STACK
|
lg %r15,__LC_MCCK_STACK
|
||||||
la %r11,STACK_FRAME_OVERHEAD(%r15)
|
la %r11,STACK_FRAME_OVERHEAD(%r15)
|
||||||
stctg %c1,%c1,__PT_CR1(%r11)
|
stctg %c1,%c1,__PT_CR1(%r11)
|
||||||
|
|
@ -568,7 +558,7 @@ ENTRY(mcck_int_handler)
|
||||||
mvc __LC_RETURN_MCCK_PSW(16),__PT_PSW(%r11) # move return PSW
|
mvc __LC_RETURN_MCCK_PSW(16),__PT_PSW(%r11) # move return PSW
|
||||||
tm __LC_RETURN_MCCK_PSW+1,0x01 # returning to user ?
|
tm __LC_RETURN_MCCK_PSW+1,0x01 # returning to user ?
|
||||||
jno 0f
|
jno 0f
|
||||||
BPEXIT __TI_flags(%r12),_TIF_ISOLATE_BP
|
BPON
|
||||||
stpt __LC_EXIT_TIMER
|
stpt __LC_EXIT_TIMER
|
||||||
0: ALTERNATIVE "nop", __stringify(lghi %r12,__LC_LAST_BREAK_SAVE_AREA),193
|
0: ALTERNATIVE "nop", __stringify(lghi %r12,__LC_LAST_BREAK_SAVE_AREA),193
|
||||||
LBEAR 0(%r12)
|
LBEAR 0(%r12)
|
||||||
|
|
|
||||||
|
|
@ -365,15 +365,6 @@ const struct seq_operations cpuinfo_op = {
|
||||||
.show = show_cpuinfo,
|
.show = show_cpuinfo,
|
||||||
};
|
};
|
||||||
|
|
||||||
int s390_isolate_bp(void)
|
|
||||||
{
|
|
||||||
if (!test_facility(82))
|
|
||||||
return -EOPNOTSUPP;
|
|
||||||
set_thread_flag(TIF_ISOLATE_BP);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(s390_isolate_bp);
|
|
||||||
|
|
||||||
int s390_isolate_bp_guest(void)
|
int s390_isolate_bp_guest(void)
|
||||||
{
|
{
|
||||||
if (!test_facility(82))
|
if (!test_facility(82))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user