發現從 kernel 2.6.36 之後, DECLARE_MUTEX 有些變化
在include/linux/semaphore.h 中
#define DECLARE_MUTEX(name);
改成
#define DEFINE_SEMAPHORE(name);
去除了
Void init_MUTEX(struct semaphore *sem);
void init_MUTEX_LOCKED(struct semaphore *sem);
改用
void sema_init(struct semaphore *sem, int val);
修改Driver :
#if LINUX_VERSION_CODE = KERNEL_VERSION(2,6,37))
sema_init(&entry->sem,1);
#else
init_MUTEX(&entry->sem);
#endif
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37))
sema_init(&tmp->xxx.irq,0);
#else
init_MUTEX_LOCKED(&tmp->xxx.irq);
#endif
全站熱搜