Hi All, The PCIe spec defines the Data Link Layer State Changed Events - Link Up and Link Down. So the flows look like this: Link Down Flow: - Root Port driver is notified about the link down by the interrupt - Root Port driver notifies the device driver (struct pci_driver.remove() callback) - Host Driver cleanups all allocated resources - Root Port Driver removes the device object from the OS Link Up flow - Root Port driver is notified about the link up by the interrupt - Root Port Driver adds the device object to the OS - Root Port driver notifies the device driver (struct pci_driver.probe() callback) - Host Driver initializes all needed resources Do I miss something? Appreciate your notes. Thanks, Alexey