From e94acaa6409e61c377c0e58cf0ae47455c74c42b Mon Sep 17 00:00:00 2001 From: Francisco Javier Trujillo Mata <fjtrujy@gmail.com> Date: Fri, 10 Jan 2025 22:51:06 +0100 Subject: [PATCH] Delete semaphore on E_SIF_PKT_SEND error --- ee/kernel/src/sifrpc.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/ee/kernel/src/sifrpc.c b/ee/kernel/src/sifrpc.c index 5324227895c..9ac33c73628 100644 --- a/ee/kernel/src/sifrpc.c +++ b/ee/kernel/src/sifrpc.c @@ -148,6 +148,7 @@ int SifBindRpc(SifRpcClientData_t *cd, int sid, int mode) if (!SifSendCmd(SIF_CMD_RPC_BIND, bind, RPC_PACKET_SIZE, NULL, NULL, 0)) { rpc_packet_free(bind); + DeleteSema(cd->hdr.sema_id); return -E_SIF_PKT_SEND; } @@ -214,6 +215,7 @@ int SifCallRpc(SifRpcClientData_t *cd, int rpc_number, int mode, if (!SifSendCmd(SIF_CMD_RPC_CALL, call, RPC_PACKET_SIZE, sendbuf, cd->buff, ssize)) { rpc_packet_free(call); + DeleteSema(cd->hdr.sema_id); return -E_SIF_PKT_SEND; } @@ -263,6 +265,7 @@ int SifRpcGetOtherData(SifRpcReceiveData_t *rd, void *src, void *dest, if (!SifSendCmd(SIF_CMD_RPC_RDATA, other, RPC_PACKET_SIZE, NULL, NULL, 0)) { rpc_packet_free(other); + DeleteSema(rd->hdr.sema_id); return -E_SIF_PKT_SEND; }