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驅動開發教程
***************************************************************************