(unnamed)

text/plain

Filename: (unnamed)
Type: text/plain
Part: 0
Message: Spinlocks, yet again: analysis and proposed patches
*** REL8_0/src/include/storage/s_lock.h	Sun Aug 28 20:41:44 2005
--- new/s_lock.h	Fri Sep  9 14:58:44 2005
***************
*** 120,132 ****
  {
  	register slock_t _res = 1;
  
! 	/* Use a non-locking test before asserting the bus lock */
  	__asm__ __volatile__(
- 		"	cmpb	$0,%1	\n"
- 		"	jne		1f		\n"
- 		"	lock			\n"
  		"	xchgb	%0,%1	\n"
- 		"1: \n"
  :		"+q"(_res), "+m"(*lock)
  :
  :		"memory", "cc");
--- 120,128 ----
  {
  	register slock_t _res = 1;
  
! 	/* xchg implies a LOCK prefix, so no need to say LOCK explicitly */
  	__asm__ __volatile__(
  		"	xchgb	%0,%1	\n"
  :		"+q"(_res), "+m"(*lock)
  :
  :		"memory", "cc");