diff options
author | Simon Lin <simonlin@google.com> | 2021-08-13 06:41:12 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-12 15:41:12 -0700 |
commit | bbb40c820930b80731576ddb6eae83a67272f2e2 (patch) | |
tree | e5e92b1cba655f9f223bcbd5b6b5fe204b42b3b1 /src/agent | |
parent | f84ef41247ae2649289b3f05e02a4bb7aa8a9562 (diff) | |
download | ot-br-posix-bbb40c820930b80731576ddb6eae83a67272f2e2.tar.gz |
[agent] fix initialization issue for openthread#6886 (#954)
Diffstat (limited to 'src/agent')
-rw-r--r-- | src/agent/main.cpp | 3 | ||||
-rw-r--r-- | src/agent/ncp_openthread.cpp | 6 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/agent/main.cpp b/src/agent/main.cpp index a429a5b2..32c27e51 100644 --- a/src/agent/main.cpp +++ b/src/agent/main.cpp @@ -309,9 +309,10 @@ exit: void otPlatReset(otInstance *aInstance) { + OT_UNUSED_VARIABLE(aInstance); + gPlatResetReason = OT_PLAT_RESET_REASON_SOFTWARE; - otInstanceFinalize(aInstance); otSysDeinit(); longjmp(sResetJump, 1); diff --git a/src/agent/ncp_openthread.cpp b/src/agent/ncp_openthread.cpp index 26c7f8d5..36be79de 100644 --- a/src/agent/ncp_openthread.cpp +++ b/src/agent/ncp_openthread.cpp @@ -80,7 +80,6 @@ ControllerOpenThread::ControllerOpenThread(const char * aInt ControllerOpenThread::~ControllerOpenThread(void) { - otInstanceFinalize(mInstance); otSysDeinit(); } @@ -116,6 +115,8 @@ otbrError ControllerOpenThread::Init(void) VerifyOrExit(otLoggingSetLevel(level) == OT_ERROR_NONE, error = OTBR_ERROR_OPENTHREAD); mInstance = otSysInit(&mConfig); + assert(mInstance != nullptr); + #if OTBR_ENABLE_LEGACY otLegacyInit(); #endif @@ -213,8 +214,9 @@ void ControllerOpenThread::Reset(void) { gPlatResetReason = OT_PLAT_RESET_REASON_SOFTWARE; - otInstanceFinalize(mInstance); otSysDeinit(); + mInstance = nullptr; + Init(); for (auto &handler : mResetHandlers) { |