Return ERROR_NOT_SUPPORTED when configureChip() is used for reconfiguration
Bug: 36562856
Bug: 37446050
Test: compile, VTS test fail as expected
Change-Id: I895dd0d6e96b0d0a2b429c3a68be1f7c7e32a7e3
diff --git a/wifi/1.0/default/wifi_chip.cpp b/wifi/1.0/default/wifi_chip.cpp
index 319e126..770c83f 100644
--- a/wifi/1.0/default/wifi_chip.cpp
+++ b/wifi/1.0/default/wifi_chip.cpp
@@ -804,14 +804,12 @@
WifiStatus WifiChip::handleChipConfiguration(ChipModeId mode_id) {
// If the chip is already configured in a different mode, stop
// the legacy HAL and then start it after firmware mode change.
+ // Currently the underlying implementation has a deadlock issue.
+ // We should return ERROR_NOT_SUPPORTED if chip is already configured in
+ // a different mode.
if (current_mode_id_ != kInvalidModeId) {
- invalidateAndRemoveAllIfaces();
- legacy_hal::wifi_error legacy_status = legacy_hal_.lock()->stop([]() {});
- if (legacy_status != legacy_hal::WIFI_SUCCESS) {
- LOG(ERROR) << "Failed to stop legacy HAL: "
- << legacyErrorToString(legacy_status);
- return createWifiStatusFromLegacyError(legacy_status);
- }
+ // TODO(b/37446050): Fix the deadlock.
+ return createWifiStatus(WifiStatusCode::ERROR_NOT_SUPPORTED);
}
bool success;
if (mode_id == kStaChipModeId) {