File tree 1 file changed +11
-7
lines changed
drivers/net/ethernet/mellanox/mlxbf_gige
1 file changed +11
-7
lines changed Original file line number Diff line number Diff line change @@ -139,13 +139,10 @@ static int mlxbf_gige_open(struct net_device *netdev)
139
139
control |= MLXBF_GIGE_CONTROL_PORT_EN ;
140
140
writeq (control , priv -> base + MLXBF_GIGE_CONTROL );
141
141
142
- err = mlxbf_gige_request_irqs (priv );
143
- if (err )
144
- return err ;
145
142
mlxbf_gige_cache_stats (priv );
146
143
err = mlxbf_gige_clean_port (priv );
147
144
if (err )
148
- goto free_irqs ;
145
+ return err ;
149
146
150
147
/* Clear driver's valid_polarity to match hardware,
151
148
* since the above call to clean_port() resets the
@@ -166,6 +163,10 @@ static int mlxbf_gige_open(struct net_device *netdev)
166
163
napi_enable (& priv -> napi );
167
164
netif_start_queue (netdev );
168
165
166
+ err = mlxbf_gige_request_irqs (priv );
167
+ if (err )
168
+ goto napi_deinit ;
169
+
169
170
/* Set bits in INT_EN that we care about */
170
171
int_en = MLXBF_GIGE_INT_EN_HW_ACCESS_ERROR |
171
172
MLXBF_GIGE_INT_EN_TX_CHECKSUM_INPUTS |
@@ -182,14 +183,17 @@ static int mlxbf_gige_open(struct net_device *netdev)
182
183
183
184
return 0 ;
184
185
186
+ napi_deinit :
187
+ netif_stop_queue (netdev );
188
+ napi_disable (& priv -> napi );
189
+ netif_napi_del (& priv -> napi );
190
+ mlxbf_gige_rx_deinit (priv );
191
+
185
192
tx_deinit :
186
193
mlxbf_gige_tx_deinit (priv );
187
194
188
195
phy_deinit :
189
196
phy_stop (phydev );
190
-
191
- free_irqs :
192
- mlxbf_gige_free_irqs (priv );
193
197
return err ;
194
198
}
195
199
You can’t perform that action at this time.
0 commit comments