问题描述:
问题原因:
驱动卸载函数中,忘记调用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,保存重启生效。
发表评论