diff options
1 files changed, 3 insertions, 0 deletions
diff --git a/Makefile b/Makefile
index 2d16f5a..835d263 100644
--- a/Makefile
+++ b/Makefile
@@ -16,3 +16,6 @@ uninstall:
@echo " $(TARGETS)"
@rmdir --ignore-fail-on-non-empty $(BINDIR)
@for s in $(TARGETS); do rm -f "$(BINDIR)/$${s}"; done
+ @rm -f *.pyc
he lock release happens before the next lock acquisition: spin_unlock() -> spin_lock() <next holder> which means the "nop" ll/sc happens before the next lock acquisition: "nop" ll/sc -> spin_unlock() -> spin_lock() <next holder> With a smp_mb() preceding spin_unlock_wait(), the store of object is guaranteed to be observed by the next lock holder: STORE -> smp_mb() -> "nop" ll/sc -> spin_unlock() -> spin_lock() <next holder> This patch therefore fixes the issue and also cleans the arch_spin_unlock_wait() a little bit by removing superfluous memory barriers in loops and consolidating the implementations for PPC32 and PPC64 into one. Suggested-by: "Paul E. McKenney" <> Signed-off-by: Boqun Feng <> Reviewed-by: "Paul E. McKenney" <> [mpe: Inline the "nop" ll/sc loop and set EH=0, munge change log] Signed-off-by: Michael Ellerman <> 2015-03-25cpufreq/ppc: Add missing #include <asm/smp.h>Geert Uytterhoeven1-0/+1 If CONFIG_SMP=n, <linux/smp.h> does not include <asm/smp.h>, causing: drivers/cpufreq/ppc-corenet-cpufreq.c: In function 'corenet_cpufreq_cpu_init': drivers/cpufreq/ppc-corenet-cpufreq.c:173:3: error: implicit declaration of function 'get_hard_smp_processor_id' [-Werror=implicit-funcuresh E. Warrier" <> X-Patchwork-Id: 443703 Message-Id: <> To: Date: Wed, 25 Feb 2015 17:23:53 -0600 Export __spin_yield so that the arch_spin_unlock() function can be invoked from a module. This will be required for modules where we want to take a lock that is also is acquired in hypervisor real mode. Because we want to avoid running any lockdep code (which may not be safe in real mode), this lock needs to be an arch_spinlock_t instead of a normal spinlock. Signed-off-by: Suresh Warrier <> Acked-by: Paul Mackerras <> Signed-off-by: Benjamin Herrenschmidt <> 2014-08-13powerpc: Add smp_mb()s to arch_spin_unlock_wait()Michael Ellerman1-0/+4 Similar to the previous commit which described why we need to add a barrier to arch_spin_is_locked(), we have a similar problem with spin_unlock_wait(). We need a barrier on entry to ensure any spinlock we have previously taken is visibly locked prior to the load of lock->slock. It's also not clear if spin_unlock_wait() is intended to have ACQUIRE semantics. For now be conservative and add a barrier on exit to give it ACQUIRE semantics. Signed-off-by: Michael Ellerman <> Signed-off-by: Benjamin Herrenschmidt <> 2013-08-14powerpc: Fix little endian lppaca, slb_shadow and dtl_entryAnton Blanchard1-2/+2 The lppaca, slb_shadow and dtl_entry hypervisor structures are big endian, so we have to byte swap them in little endian builds. LE KVM hosts will also need to be fixed but for now add an #error to remind us. Signed-off-by: Anton Blanchard <> Signed-off-by: Benjamin Herrenschmidt <> 2012-03-21powerpc: Remove FW_FEATURE ISERIES from arch codeStephen Rothwell1-19/+5 This is no longer selectable, so just remove all the dependent code. Signed-off-by: Stephen Rothwell <> Signed-off-by: Benjamin Herrenschmidt <> 2011-10-31powerpc: various straight conversions from module.h --> export.hPaul Gortmaker1-1/+1 All these files were including module.h just for the basic EXPORT_SYMBOL infrastructure. We can shift them off to the export.h header which is a way smaller footprint and thus realize some compile time gains. Signed-off-by: Paul Gortmaker <> 2010-09-02powerpc: Abstract indexing of lppaca structsPaul Mackerras1-2/+2 Currently we have the lppaca structs as a simple array of NR_CPUS entries, taking up space in the data section of the kernel image. In future we would like to allocate them dynamically, so this abstracts out the accesses to the array, making it easier to change how we locate the lppaca for a given cpu in future. Specifically, lppaca[cpu] changes to lppaca_of(cpu). Signed-off-by: Paul Mackerras <> Signed-off-by: Benjamin Herrenschmidt <>