Loading arch/powerpc/lib/locks.c +13 −14 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <asm/hvcall.h> #include <asm/hvcall.h> #include <asm/iseries/hv_call.h> #include <asm/iseries/hv_call.h> #include <asm/smp.h> #include <asm/smp.h> #include <asm/firmware.h> void __spin_yield(raw_spinlock_t *lock) void __spin_yield(raw_spinlock_t *lock) { { Loading @@ -39,13 +40,12 @@ void __spin_yield(raw_spinlock_t *lock) rmb(); rmb(); if (lock->slock != lock_value) if (lock->slock != lock_value) return; /* something has changed */ return; /* something has changed */ #ifdef CONFIG_PPC_ISERIES if (firmware_has_feature(FW_FEATURE_ISERIES)) HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, ((u64)holder_cpu << 32) | yield_count); ((u64)holder_cpu << 32) | yield_count); #else else plpar_hcall_norets(H_CONFER, get_hard_smp_processor_id(holder_cpu), plpar_hcall_norets(H_CONFER, yield_count); get_hard_smp_processor_id(holder_cpu), yield_count); #endif } } /* /* Loading @@ -69,13 +69,12 @@ void __rw_yield(raw_rwlock_t *rw) rmb(); rmb(); if (rw->lock != lock_value) if (rw->lock != lock_value) return; /* something has changed */ return; /* something has changed */ #ifdef CONFIG_PPC_ISERIES if (firmware_has_feature(FW_FEATURE_ISERIES)) HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, ((u64)holder_cpu << 32) | yield_count); ((u64)holder_cpu << 32) | yield_count); #else else plpar_hcall_norets(H_CONFER, get_hard_smp_processor_id(holder_cpu), plpar_hcall_norets(H_CONFER, yield_count); get_hard_smp_processor_id(holder_cpu), yield_count); #endif } } #endif #endif Loading Loading
arch/powerpc/lib/locks.c +13 −14 Original line number Original line Diff line number Diff line Loading @@ -23,6 +23,7 @@ #include <asm/hvcall.h> #include <asm/hvcall.h> #include <asm/iseries/hv_call.h> #include <asm/iseries/hv_call.h> #include <asm/smp.h> #include <asm/smp.h> #include <asm/firmware.h> void __spin_yield(raw_spinlock_t *lock) void __spin_yield(raw_spinlock_t *lock) { { Loading @@ -39,13 +40,12 @@ void __spin_yield(raw_spinlock_t *lock) rmb(); rmb(); if (lock->slock != lock_value) if (lock->slock != lock_value) return; /* something has changed */ return; /* something has changed */ #ifdef CONFIG_PPC_ISERIES if (firmware_has_feature(FW_FEATURE_ISERIES)) HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, ((u64)holder_cpu << 32) | yield_count); ((u64)holder_cpu << 32) | yield_count); #else else plpar_hcall_norets(H_CONFER, get_hard_smp_processor_id(holder_cpu), plpar_hcall_norets(H_CONFER, yield_count); get_hard_smp_processor_id(holder_cpu), yield_count); #endif } } /* /* Loading @@ -69,13 +69,12 @@ void __rw_yield(raw_rwlock_t *rw) rmb(); rmb(); if (rw->lock != lock_value) if (rw->lock != lock_value) return; /* something has changed */ return; /* something has changed */ #ifdef CONFIG_PPC_ISERIES if (firmware_has_feature(FW_FEATURE_ISERIES)) HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, HvCall2(HvCallBaseYieldProcessor, HvCall_YieldToProc, ((u64)holder_cpu << 32) | yield_count); ((u64)holder_cpu << 32) | yield_count); #else else plpar_hcall_norets(H_CONFER, get_hard_smp_processor_id(holder_cpu), plpar_hcall_norets(H_CONFER, yield_count); get_hard_smp_processor_id(holder_cpu), yield_count); #endif } } #endif #endif Loading