From d6a4d74d10e3a6b3a50eace351bcb478cd57a046 Mon Sep 17 00:00:00 2001 From: DH Date: Mon, 13 Nov 2023 21:36:59 +0300 Subject: [PATCH] [orbis-kernel] ipmi: ignore kid destroy --- orbis-kernel/src/ipmi.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/orbis-kernel/src/ipmi.cpp b/orbis-kernel/src/ipmi.cpp index 774edf1a7..b81c5f284 100644 --- a/orbis-kernel/src/ipmi.cpp +++ b/orbis-kernel/src/ipmi.cpp @@ -211,17 +211,20 @@ orbis::SysResult orbis::sysIpmiCreateSession(Thread *thread, ptr result, orbis::SysResult orbis::sysIpmiDestroyClient(Thread *thread, ptr result, uint kid, ptr params, uint64_t paramsSz) { - return ErrorCode::NOSYS; + ORBIS_LOG_TODO(__FUNCTION__); + return uwrite(result, 0); } orbis::SysResult orbis::sysIpmiDestroyServer(Thread *thread, ptr result, uint kid, ptr params, uint64_t paramsSz) { - return ErrorCode::NOSYS; + ORBIS_LOG_TODO(__FUNCTION__); + return uwrite(result, 0); } orbis::SysResult orbis::sysIpmiDestroySession(Thread *thread, ptr result, uint kid, ptr params, uint64_t paramsSz) { - return ErrorCode::NOSYS; + ORBIS_LOG_TODO(__FUNCTION__); + return uwrite(result, 0); } orbis::SysResult orbis::sysIpmiServerReceivePacket(Thread *thread, @@ -343,6 +346,8 @@ orbis::SysResult orbis::sysIpmiSessionRespondSync(Thread *thread, std::lock_guard lock(session->mutex); + ORBIS_LOG_ERROR(__FUNCTION__, _params.errorCode); + session->messageResponses.push_front({ .errorCode = _params.errorCode, .data = std::move(data), @@ -502,7 +507,7 @@ orbis::sysIpmiClientInvokeSyncMethod(Thread *thread, ptr result, uint kid, session->expectedOutput = _params.numOutData > 0; server->packets.push_back( {{.type = type, .clientKid = kid}, std::move(message)}); - server->receiveCv.notify_one(server->mutex); + server->receiveCv.notify_all(server->mutex); } while (session->messageResponses.empty()) { @@ -523,8 +528,8 @@ orbis::sysIpmiClientInvokeSyncMethod(Thread *thread, ptr result, uint kid, _params.pOutData->size = response.data.size(); } - ORBIS_LOG_TODO(__FUNCTION__, "sync message response", client->name, _params.method, - response.errorCode, response.data.size()); + ORBIS_LOG_TODO(__FUNCTION__, "sync message response", client->name, + _params.method, response.errorCode, response.data.size()); return uwrite(result, 0); }