@@ -168,12 +168,6 @@ static void hfi1_ipoib_netdev_dtor(struct net_device *dev)
168
168
free_percpu (dev -> tstats );
169
169
}
170
170
171
- static void hfi1_ipoib_free_rdma_netdev (struct net_device * dev )
172
- {
173
- hfi1_ipoib_netdev_dtor (dev );
174
- free_netdev (dev );
175
- }
176
-
177
171
static void hfi1_ipoib_set_id (struct net_device * dev , int id )
178
172
{
179
173
struct hfi1_ipoib_dev_priv * priv = hfi1_ipoib_priv (dev );
@@ -211,24 +205,23 @@ static int hfi1_ipoib_setup_rn(struct ib_device *device,
211
205
priv -> port_num = port_num ;
212
206
priv -> netdev_ops = netdev -> netdev_ops ;
213
207
214
- netdev -> netdev_ops = & hfi1_ipoib_netdev_ops ;
215
-
216
208
ib_query_pkey (device , port_num , priv -> pkey_index , & priv -> pkey );
217
209
218
210
rc = hfi1_ipoib_txreq_init (priv );
219
211
if (rc ) {
220
212
dd_dev_err (dd , "IPoIB netdev TX init - failed(%d)\n" , rc );
221
- hfi1_ipoib_free_rdma_netdev (netdev );
222
213
return rc ;
223
214
}
224
215
225
216
rc = hfi1_ipoib_rxq_init (netdev );
226
217
if (rc ) {
227
218
dd_dev_err (dd , "IPoIB netdev RX init - failed(%d)\n" , rc );
228
- hfi1_ipoib_free_rdma_netdev ( netdev );
219
+ hfi1_ipoib_txreq_deinit ( priv );
229
220
return rc ;
230
221
}
231
222
223
+ netdev -> netdev_ops = & hfi1_ipoib_netdev_ops ;
224
+
232
225
netdev -> priv_destructor = hfi1_ipoib_netdev_dtor ;
233
226
netdev -> needs_free_netdev = true;
234
227
0 commit comments