Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 419217cb authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'v2.6.24-lockdep' of...

Merge branch 'v2.6.24-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep

* 'v2.6.24-lockdep' of git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep:
  lockdep: annotate dir vs file i_mutex
  lockdep: per filesystem inode lock class
  lockdep: annotate kprobes irq fiddling
  lockdep: annotate rcu_read_{,un}lock{,_bh}
  lockdep: annotate journal_start()
  lockdep: s390: connect the sysexit hook
  lockdep: x86_64: connect the sysexit hook
  lockdep: i386: connect the sysexit hook
  lockdep: syscall exit check
  lockdep: fixup mutex annotations
  lockdep: fix mismatched lockdep_depth/curr_chain_hash
  lockdep: Avoid /proc/lockdep & lock_stat infinite output
  lockdep: maintainers
parents 4937ce87 14358e6d
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -2404,6 +2404,15 @@ M: khali@linux-fr.org
L:	lm-sensors@lm-sensors.org
S:	Maintained

LOCKDEP AND LOCKSTAT
P:	Peter Zijlstra
M:	peterz@infradead.org
P:	Ingo Molnar
M:	mingo@redhat.com
L:	linux-kernel@vger.kernel.org
T:	git://git.kernel.org/pub/scm/linux/kernel/git/peterz/linux-2.6-lockdep.git
S:	Maintained

LOGICAL DISK MANAGER SUPPORT (LDM, Windows 2000/XP/Vista Dynamic Disks)
P:	Richard Russon (FlatCap)
M:	ldm@flatcap.org
+12 −0
Original line number Diff line number Diff line
@@ -68,9 +68,15 @@ STACK_SIZE = 1 << STACK_SHIFT
	l	%r1,BASED(.Ltrace_irq_off)
	basr	%r14,%r1
	.endm

	.macro	LOCKDEP_SYS_EXIT
	l	%r1,BASED(.Llockdep_sys_exit)
	basr	%r14,%r1
	.endm
#else
#define TRACE_IRQS_ON
#define TRACE_IRQS_OFF
#define LOCKDEP_SYS_EXIT
#endif

/*
@@ -260,6 +266,7 @@ sysc_return:
	bno	BASED(sysc_leave)
	tm	__TI_flags+3(%r9),_TIF_WORK_SVC
	bnz	BASED(sysc_work)  # there is work to do (signals etc.)
	LOCKDEP_SYS_EXIT
sysc_leave:
	RESTORE_ALL __LC_RETURN_PSW,1

@@ -283,6 +290,7 @@ sysc_work:
	bo	BASED(sysc_restart)
	tm	__TI_flags+3(%r9),_TIF_SINGLE_STEP
	bo	BASED(sysc_singlestep)
	LOCKDEP_SYS_EXIT
	b	BASED(sysc_leave)

#
@@ -572,6 +580,7 @@ io_return:
#endif
	tm	__TI_flags+3(%r9),_TIF_WORK_INT
	bnz	BASED(io_work)		# there is work to do (signals etc.)
	LOCKDEP_SYS_EXIT
io_leave:
	RESTORE_ALL __LC_RETURN_PSW,0
io_done:
@@ -618,6 +627,7 @@ io_work_loop:
	bo	BASED(io_reschedule)
	tm	__TI_flags+3(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
	bnz	BASED(io_sigpending)
	LOCKDEP_SYS_EXIT
	b	BASED(io_leave)

#
@@ -1040,6 +1050,8 @@ cleanup_io_leave_insn:
.Ltrace_irq_on: .long	trace_hardirqs_on
.Ltrace_irq_off:
		.long	trace_hardirqs_off
.Llockdep_sys_exit:
		.long	lockdep_sys_exit
#endif
.Lcritical_start:
		.long	__critical_start + 0x80000000
+9 −0
Original line number Diff line number Diff line
@@ -66,9 +66,14 @@ _TIF_WORK_INT = (_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK | _TIF_NEED_RESCHED | \
	.macro	TRACE_IRQS_OFF
	 brasl	%r14,trace_hardirqs_off
	.endm

	.macro	LOCKDEP_SYS_EXIT
	 brasl	%r14,lockdep_sys_exit
	.endm
#else
#define TRACE_IRQS_ON
#define TRACE_IRQS_OFF
#define LOCKDEP_SYS_EXIT
#endif

	.macro	STORE_TIMER lc_offset
@@ -255,6 +260,7 @@ sysc_return:
	jno	sysc_leave
	tm	__TI_flags+7(%r9),_TIF_WORK_SVC
	jnz	sysc_work	# there is work to do (signals etc.)
	LOCKDEP_SYS_EXIT
sysc_leave:
	RESTORE_ALL __LC_RETURN_PSW,1

@@ -278,6 +284,7 @@ sysc_work:
	jo	sysc_restart
	tm	__TI_flags+7(%r9),_TIF_SINGLE_STEP
	jo	sysc_singlestep
	LOCKDEP_SYS_EXIT
	j	sysc_leave

#
@@ -558,6 +565,7 @@ io_return:
#endif
	tm	__TI_flags+7(%r9),_TIF_WORK_INT
	jnz	io_work 		# there is work to do (signals etc.)
	LOCKDEP_SYS_EXIT
io_leave:
	RESTORE_ALL __LC_RETURN_PSW,0
io_done:
@@ -605,6 +613,7 @@ io_work_loop:
	jo	io_reschedule
	tm	__TI_flags+7(%r9),(_TIF_SIGPENDING | _TIF_RESTORE_SIGMASK)
	jnz	io_sigpending
	LOCKDEP_SYS_EXIT
	j	io_leave

#
+4 −0
Original line number Diff line number Diff line
@@ -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
+11 −12
Original line number Diff line number Diff line
@@ -244,6 +244,7 @@ ret_from_sys_call:
	movl $_TIF_ALLWORK_MASK,%edi
	/* edi:	flagmask */
sysret_check:		
	LOCKDEP_SYS_EXIT
	GET_THREAD_INFO(%rcx)
	cli
	TRACE_IRQS_OFF
@@ -333,6 +334,7 @@ int_ret_from_sys_call:
	movl $_TIF_ALLWORK_MASK,%edi
	/* edi:	mask to check */
int_with_check:
	LOCKDEP_SYS_EXIT_IRQ
	GET_THREAD_INFO(%rcx)
	movl threadinfo_flags(%rcx),%edx
	andl %edi,%edx
@@ -544,11 +546,13 @@ exit_intr:
retint_with_reschedule:
	movl $_TIF_WORK_MASK,%edi
retint_check:
	LOCKDEP_SYS_EXIT_IRQ
	movl threadinfo_flags(%rcx),%edx
	andl %edi,%edx
	CFI_REMEMBER_STATE
	jnz  retint_careful
retint_swapgs:	 	

retint_swapgs:		/* return to user-space */
	/*
	 * The iretq could re-enable interrupts:
	 */
@@ -557,7 +561,7 @@ retint_swapgs:
	swapgs 
	jmp restore_args

retint_restore_args:				
retint_restore_args:	/* return to kernel space */
	cli
	/*
	 * The iretq could re-enable interrupts:
@@ -875,17 +879,12 @@ error_exit:
	GET_THREAD_INFO(%rcx)	
	testl %eax,%eax
	jne  retint_kernel
	LOCKDEP_SYS_EXIT_IRQ
	movl  threadinfo_flags(%rcx),%edx
	movl  $_TIF_WORK_MASK,%edi
	andl  %edi,%edx
	jnz  retint_careful
	/*
	 * The iret might restore flags:
	 */
	TRACE_IRQS_IRETQ
	swapgs 
	RESTORE_ARGS 0,8,0						
	jmp iret_label
	jmp retint_swapgs
	CFI_ENDPROC

error_kernelspace:
Loading