我浏览了pci-driver.c中的__pci_register_driver(),但找不到在那里调用pci驱动程序的probe()。哪个内核函数会调用这个probe()?谢谢!
最佳答案
在同一个文件 pci-driver.c 中,有一个名为的函数
static long local_pci_probe(void *_ddi)
{
...
rc = ddi->drv->probe(ddi->dev, ddi->id);
...
}
调用源自struct bus_type pci_bus_type = { .probe = pci_device_probe }
。首先,pci_device_probe()
调用__pci_device_probe()
,__pci_device_probe()
调用pci_call_probe()
,pci_call_probe()
调用local_pci_probe()
,然后调用 pci 驱动程序的 probe()
。
关于linux - linux内核中调用的pci驱动的probe函数在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25554034/