摘要: 不要在锁定状态下调用可能引起休眠的操作,以下这些操作就是目前可能因此休眠的函数:
1. 对用户内存的访问:copy_from_user()、copy_to_user()、get_user()、put_user()
2. kmalloc(GFP_KERNEL)
3. down_interruptible()和down(),如果需要在spinlock中使用信号量,可以选择down_trylock(),它不会引起挂起 printk()的灵巧设计使得它不会挂起,因此可以在任何上下文中使用。
阅读全文