king

Redhat/CentOS 6.x系统下报错kernel:do_IRQ: x.x No irq handler for vector (irq -1)

king 系统安装 2021-03-31 2004浏览 0

问题描述:

Redhat/CentOS 6.x系统下报错kernel:do_IRQ: x.x No irq handler for vector (irq -1)

问题原因:

驱动卸载函数中,忘记调用pci_disable_device()函数来关闭PCI设备,或者关闭PCI设备失败。导致request_irq()中申请到的中断向量vector与该PCI设备对应关系,可能不会被解除。于是当再次加载该PCI设备驱动后,PCI设备发出中断,内核仍然会以旧的中断向量vector来解析中断号。但此时vector是第一次驱动加载时,内核分配的vector;而驱动卸载调用free_irq()将vector与物理中断号irq对应关系解除。于是解析到的irq为0xffffffff。

解决方案:

编辑/etc/grub.conf文件,在kernel一行最后添加 pcie_aspm=off,保存重启生效。

Redhat/CentOS 6.x系统下报错kernel:do_IRQ: x.x No irq handler for vector (irq -1)

发表评论