x86: rename threadinfo to TI.
This is for consistency with i386. Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
9262875395
commit
26ccb8a718
|
@ -116,7 +116,7 @@ ENTRY(ia32_sysenter_target)
|
||||||
pushfq
|
pushfq
|
||||||
CFI_ADJUST_CFA_OFFSET 8
|
CFI_ADJUST_CFA_OFFSET 8
|
||||||
/*CFI_REL_OFFSET rflags,0*/
|
/*CFI_REL_OFFSET rflags,0*/
|
||||||
movl 8*3-THREAD_SIZE+threadinfo_sysenter_return(%rsp), %r10d
|
movl 8*3-THREAD_SIZE+TI_sysenter_return(%rsp), %r10d
|
||||||
CFI_REGISTER rip,r10
|
CFI_REGISTER rip,r10
|
||||||
pushq $__USER32_CS
|
pushq $__USER32_CS
|
||||||
CFI_ADJUST_CFA_OFFSET 8
|
CFI_ADJUST_CFA_OFFSET 8
|
||||||
|
@ -136,8 +136,9 @@ ENTRY(ia32_sysenter_target)
|
||||||
.quad 1b,ia32_badarg
|
.quad 1b,ia32_badarg
|
||||||
.previous
|
.previous
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
orl $TS_COMPAT,threadinfo_status(%r10)
|
orl $TS_COMPAT,TI_status(%r10)
|
||||||
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10)
|
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP), \
|
||||||
|
TI_flags(%r10)
|
||||||
CFI_REMEMBER_STATE
|
CFI_REMEMBER_STATE
|
||||||
jnz sysenter_tracesys
|
jnz sysenter_tracesys
|
||||||
sysenter_do_call:
|
sysenter_do_call:
|
||||||
|
@ -149,9 +150,9 @@ sysenter_do_call:
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
DISABLE_INTERRUPTS(CLBR_NONE)
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
|
||||||
jnz int_ret_from_sys_call
|
jnz int_ret_from_sys_call
|
||||||
andl $~TS_COMPAT,threadinfo_status(%r10)
|
andl $~TS_COMPAT,TI_status(%r10)
|
||||||
/* clear IF, that popfq doesn't enable interrupts early */
|
/* clear IF, that popfq doesn't enable interrupts early */
|
||||||
andl $~0x200,EFLAGS-R11(%rsp)
|
andl $~0x200,EFLAGS-R11(%rsp)
|
||||||
movl RIP-R11(%rsp),%edx /* User %eip */
|
movl RIP-R11(%rsp),%edx /* User %eip */
|
||||||
|
@ -240,8 +241,9 @@ ENTRY(ia32_cstar_target)
|
||||||
.quad 1b,ia32_badarg
|
.quad 1b,ia32_badarg
|
||||||
.previous
|
.previous
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
orl $TS_COMPAT,threadinfo_status(%r10)
|
orl $TS_COMPAT,TI_status(%r10)
|
||||||
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10)
|
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP), \
|
||||||
|
TI_flags(%r10)
|
||||||
CFI_REMEMBER_STATE
|
CFI_REMEMBER_STATE
|
||||||
jnz cstar_tracesys
|
jnz cstar_tracesys
|
||||||
cstar_do_call:
|
cstar_do_call:
|
||||||
|
@ -253,9 +255,9 @@ cstar_do_call:
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
DISABLE_INTERRUPTS(CLBR_NONE)
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
testl $_TIF_ALLWORK_MASK,threadinfo_flags(%r10)
|
testl $_TIF_ALLWORK_MASK,TI_flags(%r10)
|
||||||
jnz int_ret_from_sys_call
|
jnz int_ret_from_sys_call
|
||||||
andl $~TS_COMPAT,threadinfo_status(%r10)
|
andl $~TS_COMPAT,TI_status(%r10)
|
||||||
RESTORE_ARGS 1,-ARG_SKIP,1,1,1
|
RESTORE_ARGS 1,-ARG_SKIP,1,1,1
|
||||||
movl RIP-ARGOFFSET(%rsp),%ecx
|
movl RIP-ARGOFFSET(%rsp),%ecx
|
||||||
CFI_REGISTER rip,rcx
|
CFI_REGISTER rip,rcx
|
||||||
|
@ -333,8 +335,9 @@ ENTRY(ia32_syscall)
|
||||||
this could be a problem. */
|
this could be a problem. */
|
||||||
SAVE_ARGS 0,0,1
|
SAVE_ARGS 0,0,1
|
||||||
GET_THREAD_INFO(%r10)
|
GET_THREAD_INFO(%r10)
|
||||||
orl $TS_COMPAT,threadinfo_status(%r10)
|
orl $TS_COMPAT,TI_status(%r10)
|
||||||
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%r10)
|
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP), \
|
||||||
|
TI_flags(%r10)
|
||||||
jnz ia32_tracesys
|
jnz ia32_tracesys
|
||||||
ia32_do_syscall:
|
ia32_do_syscall:
|
||||||
cmpl $(IA32_NR_syscalls-1),%eax
|
cmpl $(IA32_NR_syscalls-1),%eax
|
||||||
|
|
|
@ -34,7 +34,7 @@ int main(void)
|
||||||
ENTRY(pid);
|
ENTRY(pid);
|
||||||
BLANK();
|
BLANK();
|
||||||
#undef ENTRY
|
#undef ENTRY
|
||||||
#define ENTRY(entry) DEFINE(threadinfo_ ## entry, offsetof(struct thread_info, entry))
|
#define ENTRY(entry) DEFINE(TI_ ## entry, offsetof(struct thread_info, entry))
|
||||||
ENTRY(flags);
|
ENTRY(flags);
|
||||||
ENTRY(addr_limit);
|
ENTRY(addr_limit);
|
||||||
ENTRY(preempt_count);
|
ENTRY(preempt_count);
|
||||||
|
|
|
@ -168,13 +168,13 @@ ENTRY(ret_from_fork)
|
||||||
CFI_ADJUST_CFA_OFFSET -4
|
CFI_ADJUST_CFA_OFFSET -4
|
||||||
call schedule_tail
|
call schedule_tail
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),threadinfo_flags(%rcx)
|
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT),TI_flags(%rcx)
|
||||||
jnz rff_trace
|
jnz rff_trace
|
||||||
rff_action:
|
rff_action:
|
||||||
RESTORE_REST
|
RESTORE_REST
|
||||||
testl $3,CS-ARGOFFSET(%rsp) # from kernel_thread?
|
testl $3,CS-ARGOFFSET(%rsp) # from kernel_thread?
|
||||||
je int_ret_from_sys_call
|
je int_ret_from_sys_call
|
||||||
testl $_TIF_IA32,threadinfo_flags(%rcx)
|
testl $_TIF_IA32,TI_flags(%rcx)
|
||||||
jnz int_ret_from_sys_call
|
jnz int_ret_from_sys_call
|
||||||
RESTORE_TOP_OF_STACK %rdi,ARGOFFSET
|
RESTORE_TOP_OF_STACK %rdi,ARGOFFSET
|
||||||
jmp ret_from_sys_call
|
jmp ret_from_sys_call
|
||||||
|
@ -243,7 +243,8 @@ ENTRY(system_call_after_swapgs)
|
||||||
movq %rcx,RIP-ARGOFFSET(%rsp)
|
movq %rcx,RIP-ARGOFFSET(%rsp)
|
||||||
CFI_REL_OFFSET rip,RIP-ARGOFFSET
|
CFI_REL_OFFSET rip,RIP-ARGOFFSET
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP),threadinfo_flags(%rcx)
|
testl $(_TIF_SYSCALL_TRACE|_TIF_SYSCALL_AUDIT|_TIF_SECCOMP), \
|
||||||
|
TI_flags(%rcx)
|
||||||
jnz tracesys
|
jnz tracesys
|
||||||
cmpq $__NR_syscall_max,%rax
|
cmpq $__NR_syscall_max,%rax
|
||||||
ja badsys
|
ja badsys
|
||||||
|
@ -262,7 +263,7 @@ sysret_check:
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
DISABLE_INTERRUPTS(CLBR_NONE)
|
DISABLE_INTERRUPTS(CLBR_NONE)
|
||||||
TRACE_IRQS_OFF
|
TRACE_IRQS_OFF
|
||||||
movl threadinfo_flags(%rcx),%edx
|
movl TI_flags(%rcx),%edx
|
||||||
andl %edi,%edx
|
andl %edi,%edx
|
||||||
jnz sysret_careful
|
jnz sysret_careful
|
||||||
CFI_REMEMBER_STATE
|
CFI_REMEMBER_STATE
|
||||||
|
@ -347,10 +348,10 @@ int_ret_from_sys_call:
|
||||||
int_with_check:
|
int_with_check:
|
||||||
LOCKDEP_SYS_EXIT_IRQ
|
LOCKDEP_SYS_EXIT_IRQ
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
movl threadinfo_flags(%rcx),%edx
|
movl TI_flags(%rcx),%edx
|
||||||
andl %edi,%edx
|
andl %edi,%edx
|
||||||
jnz int_careful
|
jnz int_careful
|
||||||
andl $~TS_COMPAT,threadinfo_status(%rcx)
|
andl $~TS_COMPAT,TI_status(%rcx)
|
||||||
jmp retint_swapgs
|
jmp retint_swapgs
|
||||||
|
|
||||||
/* Either reschedule or signal or syscall exit tracking needed. */
|
/* Either reschedule or signal or syscall exit tracking needed. */
|
||||||
|
@ -558,7 +559,7 @@ retint_with_reschedule:
|
||||||
movl $_TIF_WORK_MASK,%edi
|
movl $_TIF_WORK_MASK,%edi
|
||||||
retint_check:
|
retint_check:
|
||||||
LOCKDEP_SYS_EXIT_IRQ
|
LOCKDEP_SYS_EXIT_IRQ
|
||||||
movl threadinfo_flags(%rcx),%edx
|
movl TI_flags(%rcx),%edx
|
||||||
andl %edi,%edx
|
andl %edi,%edx
|
||||||
CFI_REMEMBER_STATE
|
CFI_REMEMBER_STATE
|
||||||
jnz retint_careful
|
jnz retint_careful
|
||||||
|
@ -654,9 +655,9 @@ retint_signal:
|
||||||
/* Returning to kernel space. Check if we need preemption */
|
/* Returning to kernel space. Check if we need preemption */
|
||||||
/* rcx: threadinfo. interrupts off. */
|
/* rcx: threadinfo. interrupts off. */
|
||||||
ENTRY(retint_kernel)
|
ENTRY(retint_kernel)
|
||||||
cmpl $0,threadinfo_preempt_count(%rcx)
|
cmpl $0,TI_preempt_count(%rcx)
|
||||||
jnz retint_restore_args
|
jnz retint_restore_args
|
||||||
bt $TIF_NEED_RESCHED,threadinfo_flags(%rcx)
|
bt $TIF_NEED_RESCHED,TI_flags(%rcx)
|
||||||
jnc retint_restore_args
|
jnc retint_restore_args
|
||||||
bt $9,EFLAGS-ARGOFFSET(%rsp) /* interrupts off? */
|
bt $9,EFLAGS-ARGOFFSET(%rsp) /* interrupts off? */
|
||||||
jnc retint_restore_args
|
jnc retint_restore_args
|
||||||
|
@ -819,7 +820,7 @@ paranoid_restore\trace:
|
||||||
jmp irq_return
|
jmp irq_return
|
||||||
paranoid_userspace\trace:
|
paranoid_userspace\trace:
|
||||||
GET_THREAD_INFO(%rcx)
|
GET_THREAD_INFO(%rcx)
|
||||||
movl threadinfo_flags(%rcx),%ebx
|
movl TI_flags(%rcx),%ebx
|
||||||
andl $_TIF_WORK_MASK,%ebx
|
andl $_TIF_WORK_MASK,%ebx
|
||||||
jz paranoid_swapgs\trace
|
jz paranoid_swapgs\trace
|
||||||
movq %rsp,%rdi /* &pt_regs */
|
movq %rsp,%rdi /* &pt_regs */
|
||||||
|
@ -917,7 +918,7 @@ error_exit:
|
||||||
testl %eax,%eax
|
testl %eax,%eax
|
||||||
jne retint_kernel
|
jne retint_kernel
|
||||||
LOCKDEP_SYS_EXIT_IRQ
|
LOCKDEP_SYS_EXIT_IRQ
|
||||||
movl threadinfo_flags(%rcx),%edx
|
movl TI_flags(%rcx),%edx
|
||||||
movl $_TIF_WORK_MASK,%edi
|
movl $_TIF_WORK_MASK,%edi
|
||||||
andl %edi,%edx
|
andl %edi,%edx
|
||||||
jnz retint_careful
|
jnz retint_careful
|
||||||
|
|
|
@ -40,7 +40,7 @@ ENTRY(copy_to_user)
|
||||||
movq %rdi,%rcx
|
movq %rdi,%rcx
|
||||||
addq %rdx,%rcx
|
addq %rdx,%rcx
|
||||||
jc bad_to_user
|
jc bad_to_user
|
||||||
cmpq threadinfo_addr_limit(%rax),%rcx
|
cmpq TI_addr_limit(%rax),%rcx
|
||||||
jae bad_to_user
|
jae bad_to_user
|
||||||
xorl %eax,%eax /* clear zero flag */
|
xorl %eax,%eax /* clear zero flag */
|
||||||
ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string
|
ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string
|
||||||
|
@ -65,7 +65,7 @@ ENTRY(copy_from_user)
|
||||||
movq %rsi,%rcx
|
movq %rsi,%rcx
|
||||||
addq %rdx,%rcx
|
addq %rdx,%rcx
|
||||||
jc bad_from_user
|
jc bad_from_user
|
||||||
cmpq threadinfo_addr_limit(%rax),%rcx
|
cmpq TI_addr_limit(%rax),%rcx
|
||||||
jae bad_from_user
|
jae bad_from_user
|
||||||
movl $1,%ecx /* set zero flag */
|
movl $1,%ecx /* set zero flag */
|
||||||
ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string
|
ALTERNATIVE_JUMP X86_FEATURE_REP_GOOD,copy_user_generic_unrolled,copy_user_generic_string
|
||||||
|
|
|
@ -37,7 +37,7 @@
|
||||||
ENTRY(__get_user_1)
|
ENTRY(__get_user_1)
|
||||||
CFI_STARTPROC
|
CFI_STARTPROC
|
||||||
GET_THREAD_INFO(%rdx)
|
GET_THREAD_INFO(%rdx)
|
||||||
cmpq threadinfo_addr_limit(%rdx),%rax
|
cmpq TI_addr_limit(%rdx),%rax
|
||||||
jae bad_get_user
|
jae bad_get_user
|
||||||
1: movzb (%rax),%edx
|
1: movzb (%rax),%edx
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
@ -50,7 +50,7 @@ ENTRY(__get_user_2)
|
||||||
addq $1,%rax
|
addq $1,%rax
|
||||||
jc bad_get_user
|
jc bad_get_user
|
||||||
GET_THREAD_INFO(%rdx)
|
GET_THREAD_INFO(%rdx)
|
||||||
cmpq threadinfo_addr_limit(%rdx),%rax
|
cmpq TI_addr_limit(%rdx),%rax
|
||||||
jae bad_get_user
|
jae bad_get_user
|
||||||
2: movzwl -1(%rax),%edx
|
2: movzwl -1(%rax),%edx
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
@ -63,7 +63,7 @@ ENTRY(__get_user_4)
|
||||||
addq $3,%rax
|
addq $3,%rax
|
||||||
jc bad_get_user
|
jc bad_get_user
|
||||||
GET_THREAD_INFO(%rdx)
|
GET_THREAD_INFO(%rdx)
|
||||||
cmpq threadinfo_addr_limit(%rdx),%rax
|
cmpq TI_addr_limit(%rdx),%rax
|
||||||
jae bad_get_user
|
jae bad_get_user
|
||||||
3: movl -3(%rax),%edx
|
3: movl -3(%rax),%edx
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
@ -76,7 +76,7 @@ ENTRY(__get_user_8)
|
||||||
addq $7,%rax
|
addq $7,%rax
|
||||||
jc bad_get_user
|
jc bad_get_user
|
||||||
GET_THREAD_INFO(%rdx)
|
GET_THREAD_INFO(%rdx)
|
||||||
cmpq threadinfo_addr_limit(%rdx),%rax
|
cmpq TI_addr_limit(%rdx),%rax
|
||||||
jae bad_get_user
|
jae bad_get_user
|
||||||
4: movq -7(%rax),%rdx
|
4: movq -7(%rax),%rdx
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
ENTRY(__put_user_1)
|
ENTRY(__put_user_1)
|
||||||
CFI_STARTPROC
|
CFI_STARTPROC
|
||||||
GET_THREAD_INFO(%r8)
|
GET_THREAD_INFO(%r8)
|
||||||
cmpq threadinfo_addr_limit(%r8),%rcx
|
cmpq TI_addr_limit(%r8),%rcx
|
||||||
jae bad_put_user
|
jae bad_put_user
|
||||||
1: movb %dl,(%rcx)
|
1: movb %dl,(%rcx)
|
||||||
xorl %eax,%eax
|
xorl %eax,%eax
|
||||||
|
@ -48,7 +48,7 @@ ENTRY(__put_user_2)
|
||||||
GET_THREAD_INFO(%r8)
|
GET_THREAD_INFO(%r8)
|
||||||
addq $1,%rcx
|
addq $1,%rcx
|
||||||
jc 20f
|
jc 20f
|
||||||
cmpq threadinfo_addr_limit(%r8),%rcx
|
cmpq TI_addr_limit(%r8),%rcx
|
||||||
jae 20f
|
jae 20f
|
||||||
decq %rcx
|
decq %rcx
|
||||||
2: movw %dx,(%rcx)
|
2: movw %dx,(%rcx)
|
||||||
|
@ -64,7 +64,7 @@ ENTRY(__put_user_4)
|
||||||
GET_THREAD_INFO(%r8)
|
GET_THREAD_INFO(%r8)
|
||||||
addq $3,%rcx
|
addq $3,%rcx
|
||||||
jc 30f
|
jc 30f
|
||||||
cmpq threadinfo_addr_limit(%r8),%rcx
|
cmpq TI_addr_limit(%r8),%rcx
|
||||||
jae 30f
|
jae 30f
|
||||||
subq $3,%rcx
|
subq $3,%rcx
|
||||||
3: movl %edx,(%rcx)
|
3: movl %edx,(%rcx)
|
||||||
|
@ -80,7 +80,7 @@ ENTRY(__put_user_8)
|
||||||
GET_THREAD_INFO(%r8)
|
GET_THREAD_INFO(%r8)
|
||||||
addq $7,%rcx
|
addq $7,%rcx
|
||||||
jc 40f
|
jc 40f
|
||||||
cmpq threadinfo_addr_limit(%r8),%rcx
|
cmpq TI_addr_limit(%r8),%rcx
|
||||||
jae 40f
|
jae 40f
|
||||||
subq $7,%rcx
|
subq $7,%rcx
|
||||||
4: movq %rdx,(%rcx)
|
4: movq %rdx,(%rcx)
|
||||||
|
|
Loading…
Reference in New Issue