要在内核 v4.19-rc5 中初始化自旋锁,必须使用spin_lock_init如下定义的宏:
#define spin_lock_init(_lock) \
do { \
spinlock_check(_lock); \
raw_spin_lock_init(&(_lock)->rlock); \
} while (0)
Run Code Online (Sandbox Code Playgroud)
该函数spinlock_check(_lock)只是返回&lock->rlock。本文解释说:
spinlock_check 的实现非常简单,这个函数只是返回给定自旋锁的 raw_spinlock_t 以确保我们得到完全正常的原始自旋锁我不明白这个函数如何执行检查。我期待
ifcckeck 函数中的一些语句。抱歉,我是内核编程新手。