int i = 9;
//定义自旋锁
spinlock_t lock;
//用于保存中断屏蔽状态的变量
unsigned long flag;
//使用自旋锁之前必须初始化自旋锁
spin_lock_init(&lock);
//访问共享资源之前获得自旋锁,禁止中断,并将之前的中断屏蔽状态保存在flag变量中
spin_lock_irqsave(&lock,flag);
//访问共享资源
i++;
//共享资源访问完成之后释放自旋锁,用flag的值恢复中断屏蔽状态
spin_unlock_irqrestore(&lock,flag);
***************************************************************************
摘录嵌入式linux驱动开发教程
***************************************************************************