diff --git a/components/esp_wifi/src/wifi_netif.c b/components/esp_wifi/src/wifi_netif.c index e6b8e409d7..cc3672f459 100644 --- a/components/esp_wifi/src/wifi_netif.c +++ b/components/esp_wifi/src/wifi_netif.c @@ -133,10 +133,13 @@ esp_err_t esp_wifi_register_if_rxcb(wifi_netif_driver_t ifx, esp_netif_receive_t return ESP_ERR_NOT_SUPPORTED; } + /* Interface must be set before registering Wi-Fi RX callback */ + set_wifi_netif(wifi_interface, esp_netif_get_netif_impl(arg)); + if ((ret = esp_wifi_internal_reg_rxcb(wifi_interface, rxcb)) != ESP_OK) { ESP_LOGE(TAG, "esp_wifi_internal_reg_rxcb for if=%d failed with %d", wifi_interface, ret); return ESP_ERR_INVALID_STATE; } - set_wifi_netif(wifi_interface, esp_netif_get_netif_impl(arg)); + return ESP_OK; }