Sophie

Sophie

distrib > Mageia > 3 > i586 > media > nonfree-release-src > by-pkgid > 56947f380f0d7e8591801ed0cc206ffb > files > 4

nvidia304-304.88-1.mga3.nonfree.src.rpm

--- NVIDIA-Linux-x86_64-275.09.04/kernel/nv-linux.h.orig	2011-06-02 21:51:49.000000000 +0200
+++ NVIDIA-Linux-x86_64-275.09.04/kernel/nv-linux.h	2011-06-07 17:31:41.463483940 +0200
@@ -260,7 +260,18 @@
 #endif
 #endif
 
-#if defined(CONFIG_PREEMPT_RT)
+#if defined(CONFIG_PREEMPT_RT) && LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 33)
+typedef raw_spinlock_t            nv_spinlock_t;
+#define NV_SPIN_LOCK_INIT(lock)   raw_spin_lock_init(lock)
+#define NV_SPIN_LOCK_IRQ(lock)    raw_spin_lock_irq(lock)
+#define NV_SPIN_UNLOCK_IRQ(lock)  raw_spin_unlock_irq(lock)
+#define NV_SPIN_LOCK_IRQSAVE(lock,flags) raw_spin_lock_irqsave(lock,flags)
+#define NV_SPIN_UNLOCK_IRQRESTORE(lock,flags) \
+  raw_spin_unlock_irqrestore(lock,flags)
+#define NV_SPIN_LOCK(lock)        raw_spin_lock(lock)
+#define NV_SPIN_UNLOCK(lock)      raw_spin_unlock(lock)
+#define NV_SPIN_UNLOCK_WAIT(lock) raw_spin_unlock_wait(lock)
+#elif defined(CONFIG_PREEMPT_RT)
 typedef atomic_spinlock_t         nv_spinlock_t;
 #define NV_SPIN_LOCK_INIT(lock)   atomic_spin_lock_init(lock)
 #define NV_SPIN_LOCK_IRQ(lock)    atomic_spin_lock_irq(lock)
@@ -853,7 +864,7 @@
 }
 
 #if defined(CONFIG_PREEMPT_RT)
-#define NV_INIT_MUTEX(mutex) semaphore_init(mutex)
+#define NV_INIT_MUTEX(mutex) sema_init(mutex, 1)
 #else
 #if !defined(__SEMAPHORE_INITIALIZER) && defined(__COMPAT_SEMAPHORE_INITIALIZER)
 #define __SEMAPHORE_INITIALIZER __COMPAT_SEMAPHORE_INITIALIZER