Unfortunately I'm under NDA for the vendor's code, except for our parts of it, of course. I'm unsure why they have an NDA, they give the drivers to OEMs who use their hardware. Just SOP I guess. Anyway, the kernel's core pci bus probe will not be able to "see" beyond the fabric bridge, just the bridge card itself: 08:01.0 Bridge: Stargen Inc. SG2010 PCI to Starfabric Gateway It would have to use the methods the driver supplies to pci_register_driver, and pci_proc_attach_device and pci_enable_device in the pci_driver struct. Perhaps it would be easier to show you the modules file for the drivers in our stack responsible for the kernel interface. I've only included the relevant dependencies. pci_add_new_bus pci_bus_assign_resources pci_enable_device pci_mem_start pci_proc_attach_device pci_proc_detach_bus pci_root_buses pci_scan_slot pci_set_master Looking at the above list, I notice a few asymmetries. pci_add_new_bus is called but not pci_proc_attach_bus. pci_proc_attach_device is called but not pci_proc_detach_device when the driver is unloaded. Perhaps you can see a call that should be made. A prime suspect is enhanced error checking in 2.6. For example, the buses added by the drivers have no parent. While this wasn't a problem in 2.4, the 2.6 kernel may reject that. I don't think this is the case but just an example. There were a number of changes concerning hotplug in 2.6. Since the fabric drivers are loadable modules, the devices added during initialization are added after boot has completed. I look at the hotplug functions, as you have suggested Thanks, John Greg KH wrote:
It's the core pci bus probing code that does this. Do you have a pointer to your driver so that we can take a look at it to see what you are doing? The pci core probing logic changed a _lot_ from 2.4 to 2.6. Take a look at the pci hotplug drivers for examples of what I think you are wanting to do. thanks, greg k-h
-- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/