4

我正在为必须可热插拔的 PCIe 设备编写 Linux PCI 驱动程序。

该设备通过电缆连接到适合 PCIe 插槽的 PCIe 转接驱动卡。

当设备在启动时插入时,我可以找到它lspci,并且驱动程序探测成功。但是,如果在运行时拔下电缆,lspci仍然显示设备存在,并且remove即使在将“1”回显到 后,也不会调用驱动程序的 PCI 方法/sys/bus/pci/rescan

lspci如果设备在启动时未插入,则此问题会自行反转:即使在连接电缆后也不会显示,并且probe不会调用该方法。

我的模块使用pci_register_driver()andpci_unregister_driver()库;驱动程序仅使用probeandremove方法(no suspendor resume),并id_table初始化vendor idand device id

Linux 内核中是否有需要调用的函数来注册 PCI 设备以进行热插拔

4

0 回答 0