回答

8

不,ioctls通常運行在流程上下文中。如果驅動程序在ioctl處理過程中抓取自旋鎖,則驅動程序將進入原子上下文並保持原子上下文,直到釋放自旋鎖。

參見:http://lwn.net/Articles/274695/對原子上下文中的Linux

2

你開啓CONFIG_DEBUG_SPINLOCK_SLEEP了很好的討論,這可能會給你更多的信息,包括堆棧跟蹤的錯誤所在。

要看的另一個角度是你要調用的睡眠功能。示例爲msleep()mutex_lock(),copy_to_user()等。

相關問題