diff options
Diffstat (limited to 'arch/powerpc/lib/locks.c')
| -rw-r--r-- | arch/powerpc/lib/locks.c | 30 | 
1 files changed, 8 insertions, 22 deletions
diff --git a/arch/powerpc/lib/locks.c b/arch/powerpc/lib/locks.c index 9b8182e8216..0c9c8d7d073 100644 --- a/arch/powerpc/lib/locks.c +++ b/arch/powerpc/lib/locks.c @@ -14,16 +14,14 @@  #include <linux/kernel.h>  #include <linux/spinlock.h> -#include <linux/module.h> +#include <linux/export.h>  #include <linux/stringify.h>  #include <linux/smp.h>  /* waiting for a spinlock... */ -#if defined(CONFIG_PPC_SPLPAR) || defined(CONFIG_PPC_ISERIES) +#if defined(CONFIG_PPC_SPLPAR)  #include <asm/hvcall.h> -#include <asm/iseries/hv_call.h>  #include <asm/smp.h> -#include <asm/firmware.h>  void __spin_yield(arch_spinlock_t *lock)  { @@ -34,20 +32,14 @@ void __spin_yield(arch_spinlock_t *lock)  		return;  	holder_cpu = lock_value & 0xffff;  	BUG_ON(holder_cpu >= NR_CPUS); -	yield_count = lppaca_of(holder_cpu).yield_count; +	yield_count = be32_to_cpu(lppaca_of(holder_cpu).yield_count);  	if ((yield_count & 1) == 0)  		return;		/* virtual cpu is currently running */  	rmb();  	if (lock->slock != lock_value)  		return;		/* something has changed */ -	if (firmware_has_feature(FW_FEATURE_ISERIES)) -		HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, -			((u64)holder_cpu << 32) | yield_count); -#ifdef CONFIG_PPC_SPLPAR -	else -		plpar_hcall_norets(H_CONFER, -			get_hard_smp_processor_id(holder_cpu), yield_count); -#endif +	plpar_hcall_norets(H_CONFER, +		get_hard_smp_processor_id(holder_cpu), yield_count);  }  /* @@ -65,20 +57,14 @@ void __rw_yield(arch_rwlock_t *rw)  		return;		/* no write lock at present */  	holder_cpu = lock_value & 0xffff;  	BUG_ON(holder_cpu >= NR_CPUS); -	yield_count = lppaca_of(holder_cpu).yield_count; +	yield_count = be32_to_cpu(lppaca_of(holder_cpu).yield_count);  	if ((yield_count & 1) == 0)  		return;		/* virtual cpu is currently running */  	rmb();  	if (rw->lock != lock_value)  		return;		/* something has changed */ -	if (firmware_has_feature(FW_FEATURE_ISERIES)) -		HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, -			((u64)holder_cpu << 32) | yield_count); -#ifdef CONFIG_PPC_SPLPAR -	else -		plpar_hcall_norets(H_CONFER, -			get_hard_smp_processor_id(holder_cpu), yield_count); -#endif +	plpar_hcall_norets(H_CONFER, +		get_hard_smp_processor_id(holder_cpu), yield_count);  }  #endif  | 
