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 @@ -139,13 +139,10 @@ static int mlxbf_gige_open(struct net_device *netdev)
139139 control |= MLXBF_GIGE_CONTROL_PORT_EN ;
140140 writeq (control , priv -> base + MLXBF_GIGE_CONTROL );
141141
142- err = mlxbf_gige_request_irqs (priv );
143- if (err )
144- return err ;
145142 mlxbf_gige_cache_stats (priv );
146143 err = mlxbf_gige_clean_port (priv );
147144 if (err )
148- goto free_irqs ;
145+ return err ;
149146
150147 /* Clear driver's valid_polarity to match hardware,
151148 * since the above call to clean_port() resets the
@@ -166,6 +163,10 @@ static int mlxbf_gige_open(struct net_device *netdev)
166163 napi_enable (& priv -> napi );
167164 netif_start_queue (netdev );
168165
166+ err = mlxbf_gige_request_irqs (priv );
167+ if (err )
168+ goto napi_deinit ;
169+
169170 /* Set bits in INT_EN that we care about */
170171 int_en = MLXBF_GIGE_INT_EN_HW_ACCESS_ERROR |
171172 MLXBF_GIGE_INT_EN_TX_CHECKSUM_INPUTS |
@@ -182,14 +183,17 @@ static int mlxbf_gige_open(struct net_device *netdev)
182183
183184 return 0 ;
184185
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+
185192tx_deinit :
186193 mlxbf_gige_tx_deinit (priv );
187194
188195phy_deinit :
189196 phy_stop (phydev );
190-
191- free_irqs :
192- mlxbf_gige_free_irqs (priv );
193197 return err ;
194198}
195199
You can’t perform that action at this time.
0 commit comments