|
|
@@ -123,13 +123,13 @@ static int ib_smc_get_pkey_table ( struct ib_device *ibdev,
|
|
123
|
123
|
}
|
|
124
|
124
|
|
|
125
|
125
|
/**
|
|
126
|
|
- * Get MAD parameters
|
|
|
126
|
+ * Get Infiniband parameters using SMC
|
|
127
|
127
|
*
|
|
128
|
128
|
* @v ibdev Infiniband device
|
|
129
|
129
|
* @v local_mad Method for issuing local MADs
|
|
130
|
130
|
* @ret rc Return status code
|
|
131
|
131
|
*/
|
|
132
|
|
-int ib_smc_update ( struct ib_device *ibdev, ib_local_mad_t local_mad ) {
|
|
|
132
|
+static int ib_smc_get ( struct ib_device *ibdev, ib_local_mad_t local_mad ) {
|
|
133
|
133
|
union ib_mad mad;
|
|
134
|
134
|
struct ib_port_info *port_info = &mad.smp.smp_data.port_info;
|
|
135
|
135
|
struct ib_guid_info *guid_info = &mad.smp.smp_data.guid_info;
|
|
|
@@ -174,3 +174,40 @@ int ib_smc_update ( struct ib_device *ibdev, ib_local_mad_t local_mad ) {
|
|
174
|
174
|
|
|
175
|
175
|
return 0;
|
|
176
|
176
|
}
|
|
|
177
|
+
|
|
|
178
|
+/**
|
|
|
179
|
+ * Initialise Infiniband parameters using SMC
|
|
|
180
|
+ *
|
|
|
181
|
+ * @v ibdev Infiniband device
|
|
|
182
|
+ * @v local_mad Method for issuing local MADs
|
|
|
183
|
+ * @ret rc Return status code
|
|
|
184
|
+ */
|
|
|
185
|
+int ib_smc_init ( struct ib_device *ibdev, ib_local_mad_t local_mad ) {
|
|
|
186
|
+ int rc;
|
|
|
187
|
+
|
|
|
188
|
+ /* Get MAD parameters */
|
|
|
189
|
+ if ( ( rc = ib_smc_get ( ibdev, local_mad ) ) != 0 )
|
|
|
190
|
+ return rc;
|
|
|
191
|
+
|
|
|
192
|
+ return 0;
|
|
|
193
|
+}
|
|
|
194
|
+
|
|
|
195
|
+/**
|
|
|
196
|
+ * Update Infiniband parameters using SMC
|
|
|
197
|
+ *
|
|
|
198
|
+ * @v ibdev Infiniband device
|
|
|
199
|
+ * @v local_mad Method for issuing local MADs
|
|
|
200
|
+ * @ret rc Return status code
|
|
|
201
|
+ */
|
|
|
202
|
+int ib_smc_update ( struct ib_device *ibdev, ib_local_mad_t local_mad ) {
|
|
|
203
|
+ int rc;
|
|
|
204
|
+
|
|
|
205
|
+ /* Get MAD parameters */
|
|
|
206
|
+ if ( ( rc = ib_smc_get ( ibdev, local_mad ) ) != 0 )
|
|
|
207
|
+ return rc;
|
|
|
208
|
+
|
|
|
209
|
+ /* Notify Infiniband core of potential link state change */
|
|
|
210
|
+ ib_link_state_changed ( ibdev );
|
|
|
211
|
+
|
|
|
212
|
+ return 0;
|
|
|
213
|
+}
|