Messages in this thread | ![/](/images/icornerl.gif) | | Date | Sat, 13 Nov 2010 23:34:06 +0100 | From | Paolo Bonzini <> | Subject | Re: [PATCH 03/20] x86/ticketlock: Use C for __ticket_spin_unlock |
| |
On 11/13/2010 11:05 AM, Américo Wang wrote: > On Wed, Nov 03, 2010 at 10:59:44AM -0400, Jeremy Fitzhardinge wrote: >> * On PPro SMP or if we are using OOSTORE, we use a locked operation to unlock >> * (PPro errata 66, 92) >> */ >> -# define UNLOCK_LOCK_PREFIX LOCK_PREFIX >> +static __always_inline void __ticket_unlock_release(struct arch_spinlock *lock) >> +{ >> + if (sizeof(lock->tickets.head) == sizeof(u8)) >> + asm (LOCK_PREFIX "incb %0" >> + : "+m" (lock->tickets.head) : : "memory"); >> + else >> + asm (LOCK_PREFIX "incw %0" >> + : "+m" (lock->tickets.head) : : "memory"); > > This 'if/else' really should be done with #ifdef, even though > the compiler may be smart enough to remove it.
That's a sure path to bitrot.
Paolo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| ![\](/images/icornerr.gif) |