从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 标题: - 描述:当回调正在被取消时, 函数会失败。这会导致一个死锁,因为两个回调都在等待对方完成执行。 2. 问题背景: - 上游提交: - 作者:Kumar Kartikeya Dwivedi - 提交时间:2024-07-09 18:54:38 +0000 - 修复者:Kumar Kartikeya Dwivedi - 修复时间:2024-07-18 13:22:40 +0200 3. 修复措施: - 添加一个名为 的 atomic_t 计数器,用于跟踪所有在飞行中的取消请求。 - 在取消 BPF 计时器时,检查是否有未完成的取消请求,如果有,则返回错误 (-EDEADLK)。 - 在取消计时器时,等待回调完成执行,以避免死锁。 4. 已知问题: - 先前尝试:早期版本的补丁使用了一个名为 的布尔位,并使用了 来发布取消状态。 - 报告者:Dohyun Kim 和 Neel Natu - 修复者:Kumar Kartikeya Dwivedi、Alexei Starovoitov 和 Sasha Levin 5. 补丁内容: - 文件: - 更改内容: - 添加了一个名为 的 atomic_t 计数器。 - 在 函数中,检查 计数器,并在必要时返回错误。 - 在 函数中,清除 计数器。 6. 修复状态: - 状态:已修复 - 提交时间:2024-07-18 13:22:40 +0200 这些信息可以帮助我们理解漏洞的背景、修复过程以及修复后的状态。