|
@@ -47,27 +47,15 @@ static void ib_sma_get_node_info ( struct ib_sma *sma,
|
47
|
47
|
union ib_smp_data *get ) {
|
48
|
48
|
struct ib_device *ibdev = sma->ibdev;
|
49
|
49
|
struct ib_node_info *node_info = &get->node_info;
|
50
|
|
- struct ib_device *tmp;
|
51
|
50
|
|
52
|
51
|
memset ( node_info, 0, sizeof ( *node_info ) );
|
53
|
52
|
node_info->base_version = IB_MGMT_BASE_VERSION;
|
54
|
53
|
node_info->class_version = IB_SMP_CLASS_VERSION;
|
55
|
54
|
node_info->node_type = IB_NODE_TYPE_HCA;
|
56
|
|
- /* Search for IB devices with the same physical device to
|
57
|
|
- * identify port count and a suitable Node GUID.
|
58
|
|
- */
|
59
|
|
- for_each_ibdev ( tmp ) {
|
60
|
|
- if ( tmp->dev != ibdev->dev )
|
61
|
|
- continue;
|
62
|
|
- if ( node_info->num_ports == 0 ) {
|
63
|
|
- memcpy ( node_info->sys_guid, &tmp->gid.u.half[1],
|
64
|
|
- sizeof ( node_info->sys_guid ) );
|
65
|
|
- memcpy ( node_info->node_guid, &tmp->gid.u.half[1],
|
66
|
|
- sizeof ( node_info->node_guid ) );
|
67
|
|
- }
|
68
|
|
- node_info->num_ports++;
|
69
|
|
- }
|
70
|
|
- memcpy ( node_info->port_guid, &ibdev->gid.u.half[1],
|
|
55
|
+ node_info->num_ports = ib_get_hca_info ( ibdev, &node_info->sys_guid );
|
|
56
|
+ memcpy ( &node_info->node_guid, &node_info->sys_guid,
|
|
57
|
+ sizeof ( node_info->node_guid ) );
|
|
58
|
+ memcpy ( &node_info->port_guid, &ibdev->gid.u.half[1],
|
71
|
59
|
sizeof ( node_info->port_guid ) );
|
72
|
60
|
node_info->partition_cap = htons ( 1 );
|
73
|
61
|
node_info->local_port_num = ibdev->port;
|