|
@@ -1027,3 +1027,21 @@ struct ib_driver ipoib_driver __ib_driver = {
|
1027
|
1027
|
.notify = ipoib_notify,
|
1028
|
1028
|
.remove = ipoib_remove,
|
1029
|
1029
|
};
|
|
1030
|
+
|
|
1031
|
+/**
|
|
1032
|
+ * Find IPoIB network device
|
|
1033
|
+ *
|
|
1034
|
+ * @v ibdev Infiniband device
|
|
1035
|
+ * @ret netdev IPoIB network device, or NULL if not found
|
|
1036
|
+ */
|
|
1037
|
+struct net_device * ipoib_netdev ( struct ib_device *ibdev ) {
|
|
1038
|
+ struct ipoib_device *ipoib;
|
|
1039
|
+
|
|
1040
|
+ /* Find matching IPoIB device */
|
|
1041
|
+ list_for_each_entry ( ipoib, &ipoib_devices, list ) {
|
|
1042
|
+ if ( ipoib->ibdev != ibdev )
|
|
1043
|
+ continue;
|
|
1044
|
+ return ipoib->netdev;
|
|
1045
|
+ }
|
|
1046
|
+ return NULL;
|
|
1047
|
+}
|