diff -ur hsfmodem-7.80.02.06full.old/modules/GPL/oscompat.h hsfmodem-7.80.02.06full/modules/GPL/oscompat.h --- hsfmodem-7.80.02.06full.old/modules/GPL/oscompat.h 2009-10-21 23:35:59.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/GPL/oscompat.h 2011-04-22 16:01:16.547997780 +0100 @@ -197,7 +197,9 @@ * interrupt. */ -#ifdef STATIC_TQUEUE_LOCK +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) +static DEFINE_SPINLOCK(tqueue_lock); +#elif defined(STATIC_TQUEUE_LOCK) static spinlock_t tqueue_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED; #else extern spinlock_t tqueue_lock; diff -ur hsfmodem-7.80.02.06full.old/modules/GPL/serial_cnxt.c hsfmodem-7.80.02.06full/modules/GPL/serial_cnxt.c --- hsfmodem-7.80.02.06full.old/modules/GPL/serial_cnxt.c 2009-10-21 23:35:59.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/GPL/serial_cnxt.c 2011-04-22 16:01:16.551997780 +0100 @@ -1063,7 +1063,11 @@ #ifndef FOUND_UART_REGISTER_PORT +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37) static DECLARE_MUTEX(cnxt_port_sem); +#else +static DEFINE_SEMAPHORE(cnxt_port_sem); +#endif /** * uart_register_port - register a serial port diff -ur hsfmodem-7.80.02.06full.old/modules/osdcp.c hsfmodem-7.80.02.06full/modules/osdcp.c --- hsfmodem-7.80.02.06full.old/modules/osdcp.c 2007-05-07 21:31:57.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/osdcp.c 2011-04-22 16:01:16.551997780 +0100 @@ -28,7 +28,11 @@ #define DCP_SAMPLE_SIZE sizeof(INT16) static struct list_head dcp_instance_list = LIST_HEAD_INIT(dcp_instance_list); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) +static DEFINE_SPINLOCK(dcp_lock); +#else static spinlock_t dcp_lock = SPIN_LOCK_UNLOCKED; +#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,2) #ifdef FOUND_CLASS_SIMPLE static struct class_simple *dcp_class; diff -ur hsfmodem-7.80.02.06full.old/modules/osdiag.c hsfmodem-7.80.02.06full/modules/osdiag.c --- hsfmodem-7.80.02.06full.old/modules/osdiag.c 2006-08-14 13:38:52.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/osdiag.c 2011-04-22 16:01:16.551997780 +0100 @@ -30,7 +30,11 @@ #define DIAG_NOTIFY_RINGBUF_ELEMENTS 100 static struct list_head diag_instance_list = LIST_HEAD_INIT(diag_instance_list); +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) +static DEFINE_SPINLOCK(diag_lock); +#else static spinlock_t diag_lock = SPIN_LOCK_UNLOCKED; +#endif #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,2) #ifdef FOUND_CLASS_SIMPLE static struct class_simple *diag_class; @@ -599,7 +603,9 @@ static struct file_operations diag_fops = { .owner = THIS_MODULE, +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 36) .ioctl = diag_ioctl, +#endif .fasync = diag_fasync, .poll = diag_poll, .read = diag_read, diff -ur hsfmodem-7.80.02.06full.old/modules/osfloat.c hsfmodem-7.80.02.06full/modules/osfloat.c --- hsfmodem-7.80.02.06full.old/modules/osfloat.c 2008-06-20 17:48:28.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/osfloat.c 2011-04-22 16:01:16.559997780 +0100 @@ -36,7 +36,11 @@ static fpstate_t fpstates[NFPSTATES]; +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) +static DEFINE_SPINLOCK(fpstates_lock); +#else static spinlock_t fpstates_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED; +#endif static inline void hsf_kernel_fpu_begin(fpstate_t *fpstate) diff -ur hsfmodem-7.80.02.06full.old/modules/osnvm.c hsfmodem-7.80.02.06full/modules/osnvm.c --- hsfmodem-7.80.02.06full.old/modules/osnvm.c 2007-09-27 23:56:08.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/osnvm.c 2011-04-22 16:01:16.563997780 +0100 @@ -405,7 +405,11 @@ static LIST_HEAD(nvmelem_writelist); static LIST_HEAD(nvm_newinst_list); +#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 6, 37) static DECLARE_MUTEX(nvmelem_writelist_sem); +#else +static DEFINE_SEMAPHORE(nvmelem_writelist_sem); +#endif /* nvmelem_writelist_sem must be held by caller */ static BOOL NVM_WriteListAppend(const char *pathname, PVOID pBuf, UINT32 dwSize, enum NVM_FORMAT nvmFormat) diff -ur hsfmodem-7.80.02.06full.old/modules/osservices.c hsfmodem-7.80.02.06full/modules/osservices.c --- hsfmodem-7.80.02.06full.old/modules/osservices.c 2010-05-09 23:36:28.000000000 +0100 +++ hsfmodem-7.80.02.06full/modules/osservices.c 2011-04-22 18:05:11.199996262 +0100 @@ -48,7 +48,9 @@ #include #include #include +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) #include +#endif #include #include @@ -284,7 +286,12 @@ /********************************************************************/ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) +static DEFINE_SEMAPHORE(current_sem); +static DEFINE_SPINLOCK(atomic_lock); +#else static spinlock_t atomic_lock __attribute__((unused)) = SPIN_LOCK_UNLOCKED; +#endif /**************************************************************************************** The OsAtomicCompareAndSwap function compares the value at the specified address with @@ -465,7 +472,11 @@ #endif #endif +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) + down(¤t_sem); +#else lock_kernel(); +#endif #if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) ) exit_mm(current); @@ -499,7 +510,11 @@ #endif } +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39) + up(¤t_sem); +#else unlock_kernel(); +#endif #if ( LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0) ) flush_signals(current); /* must be called without spinlock */