]> err.no Git - linux-2.6/blobdiff - include/asm-i386/mc146818rtc.h
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[linux-2.6] / include / asm-i386 / mc146818rtc.h
index 99a890047023c71ff33671a5d7ef47e9e9541d7a..1613b42eaf5837a2db14c86cc0c45e0c0816f398 100644 (file)
@@ -6,6 +6,7 @@
 
 #include <asm/io.h>
 #include <asm/system.h>
+#include <asm/processor.h>
 #include <linux/mc146818rtc.h>
 
 #ifndef RTC_PORT
@@ -43,8 +44,10 @@ static inline void lock_cmos(unsigned char reg)
        unsigned long new;
        new = ((smp_processor_id()+1) << 8) | reg;
        for (;;) {
-               if (cmos_lock)
+               if (cmos_lock) {
+                       cpu_relax();
                        continue;
+               }
                if (__cmpxchg(&cmos_lock, 0, new, sizeof(cmos_lock)) == 0)
                        return;
        }