从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在kthread_unpark函数中,如果kthread是per-CPU的,且kthread未被parked,那么调用kthread_stop会导致一个警告。 - 原因:kthread_stop函数在per-CPU kthread上执行时,会调用kthread_bind,而kthread_bind期望kthread处于inactive状态并处于TASK_PARKED状态,但未parked的kthread显然不符合这个条件。 2. 修复措施: - 解决方案:在停止kthread时,应跳过不必要的unparking操作。 - 代码修改:在kthread_stop函数中添加了一个条件检查,以避免在未parked的kthread上执行unparking操作。 3. 补丁链接: - 链接:https://lkml.kernel.org/r/20240913214634.12557-1-frederic@kernel.org 4. 相关补丁: - 补丁ID:5c25b5ff89f0 - 问题描述:工作队列:标记与KTHREAD_IS_PER_CPU相关的绑定工作者。 5. 作者和贡献者: - 作者:Frederic Weisbecker - 贡献者:Greg Kroah-Hartman、Andrew Morton、Thomas Gleixner、Hillf Danton、Tejun Heo 6. 代码更改: - 文件:kernel/kthread.c - 行数:-578,6 +578,8 - 更改内容:在kthread_unpark函数中添加了一个条件检查,以避免在未parked的kthread上执行unparking操作。 这些信息表明,该漏洞与kthread的parking和unparking操作有关,特别是当kthread是per-CPU的且未被parked时。修复措施是通过在kthread_stop函数中添加条件检查来避免不必要的unparking操作。