--- 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