Jason, While working on the bnxt_re patches for implementing the new un-register APIs, I see a problem when the driver is unloaded while RoCE devices created over VFs and VF attached to the hypervisor itself. ib_unregister_driver call driver_dealloc in the order in which the devices are created. VFs gets added after PF. During unload, PFs gets cleared first. But since the PF provisioned the VF, destroying the PF device cleans up the VFs resources in the HW. When VF get de-allocated, device operations fails as the resources are already removed. Should the ib_unregister_driver invoke the de-alloc hooks in the reverse order or is the vendor drivers expected to handle this internally? Thanks, Selvin