diff options
Diffstat (limited to 'arch/tile/lib')
| -rw-r--r-- | arch/tile/lib/Makefile | 1 | ||||
| -rw-r--r-- | arch/tile/lib/spinlock_32.c | 23 | ||||
| -rw-r--r-- | arch/tile/lib/spinlock_64.c | 22 | 
3 files changed, 1 insertions, 45 deletions
| diff --git a/arch/tile/lib/Makefile b/arch/tile/lib/Makefile index c4211cbb2021..815a1fdeb2e4 100644 --- a/arch/tile/lib/Makefile +++ b/arch/tile/lib/Makefile @@ -1,3 +1,4 @@ +# SPDX-License-Identifier: GPL-2.0  #  # Makefile for TILE-specific library files..  # diff --git a/arch/tile/lib/spinlock_32.c b/arch/tile/lib/spinlock_32.c index 076c6cc43113..db9333f2447c 100644 --- a/arch/tile/lib/spinlock_32.c +++ b/arch/tile/lib/spinlock_32.c @@ -62,29 +62,6 @@ int arch_spin_trylock(arch_spinlock_t *lock)  }  EXPORT_SYMBOL(arch_spin_trylock); -void arch_spin_unlock_wait(arch_spinlock_t *lock) -{ -	u32 iterations = 0; -	int curr = READ_ONCE(lock->current_ticket); -	int next = READ_ONCE(lock->next_ticket); - -	/* Return immediately if unlocked. */ -	if (next == curr) -		return; - -	/* Wait until the current locker has released the lock. */ -	do { -		delay_backoff(iterations++); -	} while (READ_ONCE(lock->current_ticket) == curr); - -	/* -	 * The TILE architecture doesn't do read speculation; therefore -	 * a control dependency guarantees a LOAD->{LOAD,STORE} order. -	 */ -	barrier(); -} -EXPORT_SYMBOL(arch_spin_unlock_wait); -  /*   * The low byte is always reserved to be the marker for a "tns" operation   * since the low bit is set to "1" by a tns.  The next seven bits are diff --git a/arch/tile/lib/spinlock_64.c b/arch/tile/lib/spinlock_64.c index a4b5b2cbce93..de414c22892f 100644 --- a/arch/tile/lib/spinlock_64.c +++ b/arch/tile/lib/spinlock_64.c @@ -62,28 +62,6 @@ int arch_spin_trylock(arch_spinlock_t *lock)  }  EXPORT_SYMBOL(arch_spin_trylock); -void arch_spin_unlock_wait(arch_spinlock_t *lock) -{ -	u32 iterations = 0; -	u32 val = READ_ONCE(lock->lock); -	u32 curr = arch_spin_current(val); - -	/* Return immediately if unlocked. */ -	if (arch_spin_next(val) == curr) -		return; - -	/* Wait until the current locker has released the lock. */ -	do { -		delay_backoff(iterations++); -	} while (arch_spin_current(READ_ONCE(lock->lock)) == curr); - -	/* -	 * The TILE architecture doesn't do read speculation; therefore -	 * a control dependency guarantees a LOAD->{LOAD,STORE} order. -	 */ -	barrier(); -} -EXPORT_SYMBOL(arch_spin_unlock_wait);  /*   * If the read lock fails due to a writer, we retry periodically |