从这个网页截图中,我们可以获取到以下关于漏洞的关键信息: 1. 漏洞描述: - 问题:在I2C总线控制器(例如Versaclock或AIC32x4 I2C codec)的情况下,当I2C传输从时钟控制器的clk_ops.prepare操作触发时,可能会导致死锁。 - 原因:时钟控制器首先获取prepare_lock互斥锁,然后执行准备操作,包括I2C访问。I2C访问通过.runtime_resume回调恢复时钟控制器,该回调尝试再次获取prepare_lock互斥锁,导致死锁。 2. 解决方案: - 修改:在I2C总线控制器的remove操作中,使用简单的clk_enable()/clk_disable()调用来在运行时挂起和恢复时,避免锁定prepare_lock互斥锁。 - 代码更改: - 删除了 的调用。 - 添加了 的调用。 3. 影响: - 修复的版本:此修复在v5.0+版本中实现。 - 相关补丁:此修复与补丁 相关。 4. 作者和贡献者: - 作者:Marek Vasut - 贡献者:Alain Volmat、Andi Shyti、Greg Kroah-Hartman 5. 补丁内容: - 文件:drivers/i2c/busses/i2c-stm32f7.c - 更改位置:第2351行和第2362行 - 更改内容:删除了 的调用,添加了 的调用。 这些信息表明,该漏洞与I2C总线控制器的时钟管理有关,修复了在运行时挂起和恢复时可能导致的死锁问题。