|
@@ -1575,8 +1575,6 @@ static int ena_up_complete(struct ena_adapter *adapter)
|
|
|
if (rc)
|
|
|
return rc;
|
|
|
|
|
|
- ena_init_napi(adapter);
|
|
|
-
|
|
|
ena_change_mtu(adapter->netdev, adapter->netdev->mtu);
|
|
|
|
|
|
ena_refill_all_rx_bufs(adapter);
|
|
@@ -1730,6 +1728,13 @@ static int ena_up(struct ena_adapter *adapter)
|
|
|
|
|
|
ena_setup_io_intr(adapter);
|
|
|
|
|
|
+ /* napi poll functions should be initialized before running
|
|
|
+ * request_irq(), to handle a rare condition where there is a pending
|
|
|
+ * interrupt, causing the ISR to fire immediately while the poll
|
|
|
+ * function wasn't set yet, causing a null dereference
|
|
|
+ */
|
|
|
+ ena_init_napi(adapter);
|
|
|
+
|
|
|
rc = ena_request_io_irq(adapter);
|
|
|
if (rc)
|
|
|
goto err_req_irq;
|