diff for duplicates of <201009071517.43009.ptesarik@suse.cz> diff --git a/a/1.txt b/N1/1.txt index 291f5f8..74be632 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -78,10 +78,10 @@ __ticket_spin_trylock(arch_spinlock_t *lock) int tmp = ACCESS_ONCE(lock->lock); - if (!(((tmp >> TICKET_SHIFT) ^ tmp) & TICKET_MASK)) -- return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) = tmp; +- return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) == tmp; + if (__ticket_spin_is_unlocked(tmp, tmp)) + return ia64_cmpxchg(acq, &lock->lock, tmp, tmp + (1 << TICKET_HSHIFT), -sizeof (tmp)) = tmp; +sizeof (tmp)) == tmp; return 0; } diff --git a/a/content_digest b/N1/content_digest index fc81168..61909de 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -3,7 +3,7 @@ "ref\0201009061647.02345.ptesarik@suse.cz\0" "From\0Petr Tesarik <ptesarik@suse.cz>\0" "Subject\0Re: Serious problem with ticket spinlocks on ia64\0" - "Date\0Tue, 07 Sep 2010 13:17:41 +0000\0" + "Date\0Tue, 7 Sep 2010 15:17:41 +0200\0" "To\0Tony Luck <tony.luck@gmail.com>\0" "Cc\0linux-ia64@vger.kernel.org <linux-ia64@vger.kernel.org>" " linux-kernel@vger.kernel.org <linux-kernel@vger.kernel.org>\0" @@ -89,10 +89,10 @@ " \tint tmp = ACCESS_ONCE(lock->lock);\n" " \n" "-\tif (!(((tmp >> TICKET_SHIFT) ^ tmp) & TICKET_MASK))\n" - "-\t\treturn ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) = tmp;\n" + "-\t\treturn ia64_cmpxchg(acq, &lock->lock, tmp, tmp + 1, sizeof (tmp)) == tmp;\n" "+\tif (__ticket_spin_is_unlocked(tmp, tmp))\n" "+\t\treturn ia64_cmpxchg(acq, &lock->lock, tmp, tmp + (1 << TICKET_HSHIFT), \n" - "sizeof (tmp)) = tmp;\n" + "sizeof (tmp)) == tmp;\n" " \treturn 0;\n" " }\n" " \n" @@ -150,4 +150,4 @@ " typedef struct {\n" " \tvolatile unsigned int read_counter\t: 31;" -047471718226d49097484c3292e249561e9a8ef2b38c4b2051f1ca8c12860de4 +63862a9524c0c048dc259396e81706bcda905e15aed3fc0177662ea2237d9045
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.