Linux驱动程序PCI错误检测

时间:2014-09-16 23:18:41

标签: linux compiler-errors linux-device-driver pci pci-e

在某个pcie设备的Linux pcie驱动程序中,我实现了pcie错误 处理函数(error_detected,slot_reset方法等)。我想要 触发pci错误让我练习那些处理程序并观察 它的行为。我从pci错误恢复内核中读到了 文档,第一步是使用error_detected方法,调用 系统如果检测到与pci设备有关的任何错误。该 好的是系统会为驱动程序检测它, 简化事物。但我遇到错误检测问题 本身。

我试图通过PCIe设备触发错误。在它的FW,我 触发了其PCIe子系统的重置。结果,I / O率 降至零,驱动程序现在无法发送到设备。 他们的PCIe连接确实发生了一些事情。但是,我 我没看到我的error_detected方法被调用了 期望内核将检测PCI错误并调用处理程序。 相反,控制台中出现了一些警告消息,如下所示:

irq 16:没有人关心 处理:
< ...>
< ...>
禁用IRQ#16

令我感到困惑的是注入的PCI错误似乎带来了 那个IRQ 16设备也是如此 - 这绝对不是irq# 我的驱动程序/设备。这看起来像是公共汽车上的破坏性事件。这个结果是否会导致PCI错误?有关内核未检测到这一点的任何想法 PCI错误?我有什么可能错过的吗? 注册错误处理程序方法?

如果是这样,我想问其他注射PCI的方法 错误,为了让我练习我的错误处理程序。谢谢!

0 个答案:

没有答案