This gives upper-level protocols a chance to unregister while the device
is still usable.
Signed-off-by: Bryan O'Sullivan <bryan.osullivan@qlogic.com>
Signed-off-by: Roland Dreier <rolandd@cisco.com>
return;
dd = pci_get_drvdata(pdev);
- ipath_unregister_ib_device(dd->verbs_dev);
+
+ if (dd->verbs_dev) {
+ ipath_unregister_ib_device(dd->verbs_dev);
+ dd->verbs_dev = NULL;
+ }
+
ipath_diag_remove(dd);
ipath_user_remove(dd);
ipathfs_remove_device(dd);
list_for_each_entry_safe(dd, tmp, &ipath_dev_list, ipath_list) {
spin_unlock_irqrestore(&ipath_devs_lock, flags);
+ if (dd->verbs_dev) {
+ ipath_unregister_ib_device(dd->verbs_dev);
+ dd->verbs_dev = NULL;
+ }
+
if (dd->ipath_kregbase)
cleanup_device(dd);