|
@@ -251,6 +251,7 @@ check_userspace:
|
|
|
jb resume_kernel # not returning to v8086 or userspace
|
|
|
|
|
|
ENTRY(resume_userspace)
|
|
|
+ LOCKDEP_SYS_EXIT
|
|
|
DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt
|
|
|
# setting need_resched or sigpending
|
|
|
# between sampling and the iret
|
|
@@ -338,6 +339,7 @@ sysenter_past_esp:
|
|
|
jae syscall_badsys
|
|
|
call *sys_call_table(,%eax,4)
|
|
|
movl %eax,PT_EAX(%esp)
|
|
|
+ LOCKDEP_SYS_EXIT
|
|
|
DISABLE_INTERRUPTS(CLBR_ANY)
|
|
|
TRACE_IRQS_OFF
|
|
|
movl TI_flags(%ebp), %ecx
|
|
@@ -377,6 +379,7 @@ syscall_call:
|
|
|
call *sys_call_table(,%eax,4)
|
|
|
movl %eax,PT_EAX(%esp) # store the return value
|
|
|
syscall_exit:
|
|
|
+ LOCKDEP_SYS_EXIT
|
|
|
DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt
|
|
|
# setting need_resched or sigpending
|
|
|
# between sampling and the iret
|
|
@@ -467,6 +470,7 @@ work_pending:
|
|
|
jz work_notifysig
|
|
|
work_resched:
|
|
|
call schedule
|
|
|
+ LOCKDEP_SYS_EXIT
|
|
|
DISABLE_INTERRUPTS(CLBR_ANY) # make sure we don't miss an interrupt
|
|
|
# setting need_resched or sigpending
|
|
|
# between sampling and the iret
|