对__might_sleep的一个疑问
- void __might_sleep(char *file, int line)
- {
- #if defined(in_atomic)
- static unsigned long prev_jiffy; /* ratelimiting */
-
- if ((in_atomic() || irqs_disabled()) &&
- system_state == SYSTEM_RUNNING) {
- if (time_before(jiffies, prev_jiffy + HZ) && prev_jiffy)
- return;
- prev_jiffy = jiffies;
- printk(KERN_ERR "Debug: sleeping function called from invalid"
- " context at %s:%d\n", file, line);
- printk("in_atomic():%d, irqs_disabled():%d\n",
- in_atomic(), irqs_disabled());
- dump_stack();
- }
- #endif
- }
作者: amarant 发布时间: 2011-02-15
看一下这个变量的类型
QUOTE:
static unsigned long prev_jiffy; /* ratelimiting */
作者: Godbach 发布时间: 2011-02-15
回复 Godbach
明白了,刚才只想到static初始化的值为0,忘记了static会一直存在不会释放的了
明白了,刚才只想到static初始化的值为0,忘记了static会一直存在不会释放的了
作者: amarant 发布时间: 2011-02-15
是的。
作者: Godbach 发布时间: 2011-02-15