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