Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux kernel 从内核设备驱动程序重新扫描PCIe_Linux Kernel - Fatal编程技术网

Linux kernel 从内核设备驱动程序重新扫描PCIe

Linux kernel 从内核设备驱动程序重新扫描PCIe,linux-kernel,Linux Kernel,我有一个PCIe板,带有FPGA和我自己的内核设备驱动程序 加载FPGA后,我需要重新扫描PCIe树。 我使用常规的/sys/bus/pci/devices/xxx/remove+/sys/bus/pci/rescan来实现这一点 对这些文件的访问必须以root权限完成,这可能会很痛苦 可以从我的内核设备驱动程序重新扫描吗 我试图在open调用中调用pci_remove_bus()+pci_rescan_bus(),但我遇到了内核死机 在哪里可以找到pci_remove_bus()+pci_re

我有一个PCIe板,带有FPGA和我自己的内核设备驱动程序

加载FPGA后,我需要重新扫描PCIe树。 我使用常规的/sys/bus/pci/devices/xxx/remove+/sys/bus/pci/rescan来实现这一点

对这些文件的访问必须以root权限完成,这可能会很痛苦

可以从我的内核设备驱动程序重新扫描吗

我试图在open调用中调用pci_remove_bus()+pci_rescan_bus(),但我遇到了内核死机

在哪里可以找到pci_remove_bus()+pci_rescan_bus()使用的示例

谢谢


弗雷德

你必须持有公共汽车锁。否则它会像您描述的那样工作。请检查
bus\u rescan\u store()
实现。非常感谢,它工作正常。我只是在这个顺序之前添加了<代码> PCIyStutySand和ReaveVBuxDeVice()/代码>。顺便说一下,考虑使用/实现来自FPGA侧的PCI交换机,这样您就可以利用PCI热插拔机制,而不必手动处理这个问题。我不知道这个机制,怎么办?您必须持有总线锁。否则它会像您描述的那样工作。请检查
bus\u rescan\u store()
实现。非常感谢,它工作正常。我只是在这个顺序之前添加了<代码> PCIyStutySand和ReaveVBuxDeVice()/代码>。顺便说一下,考虑使用/实现FPGA侧的PCI交换机,这样您就可以利用PCI热插拔机制,而不需要手动处理这个问题。我不知道这个机制,怎么办?